音频解码

ffmpeg命令详解(转)

谁都会走 提交于 2020-01-18 05:14:14
摘自:https://www.cnblogs.com/AllenChou/p/7048528.html FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。[百度百科] ffmpeg使用语法 ffmpeg使用语法: ffmpeg [[options][`-i' input_file]]... {[options] output_file}... 如果没有输入文件,那么视音频捕捉就会起作用。 作为通用的规则,选项一般用于下一个特定的文件。如果你给 –b 64选项,改选会设置下一个视频速率。对于原始输入文件,格式选项可能是需要的。 缺省情况下,ffmpeg试图尽可能的无损转换,采用与输入同样的音频视频参数来输出。 3.选项 a) 通用选项 -L license -h 帮助 -fromats 显示可用的格式,编解码的,协议的。。。 -f fmt 强迫采用格式fmt -I filename 输入文件 -y 覆盖输出文件 -t duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持 -ss position

ffmpeg参数说明

独自空忆成欢 提交于 2020-01-17 02:29:30
ffmpeg.exe -i F:\慶哥\慶哥之歌.mp3 -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 f:\11.flv ffmpeg -i F:\01.wmv -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 f:\test.flv 使用-ss参数 作用(time_off set the start time offset),可以从指定时间点开始转换任务。如: 转换文件格式的同时抓缩微图: ffmpeg -i "test.avi" -y -f image2 -ss 8 -t 0.001 -s 350x240 'test.jpg' 对已有flv抓图: ffmpeg -i "test.flv" -y -f image2 -ss 8 -t 0.001 -s 350x240 'test.jpg' -ss后跟的时间单位为秒 Ffmpeg转换命令 ffmpeg -y -i test.mpeg -bitexact -vcodec h263 -b 128 -r 15 -s 176x144 -acodec aac -ac 2 -ar 22500 -ab 24 -f 3gp test.3gp 或者 ffmpeg -y -i test.mpeg -ac 1 -acodec amr_nb -ar 8000 -s 176x144 -b

AAC及其封装格式

走远了吗. 提交于 2020-01-13 02:27:31
背景 最近在媒体库中需要加AAC,要求能与华为的一个IP语音电话型号,通过AAC对通。 这个需求的功能并不复杂,而难在对于AAC的封装格式标准及对于AAC编解码库的使用,需要有一个系统性的认识。AAC标准光编码规格就有好几种,并且针对不同的场景衍生出的封装格式也有好几种。应用到流媒体,rfc也有几个。所以是细节特别多。很容易走错方向。这里做个总结,这将是一系列文章,先介绍AAC封装标准,RTP封包标准,再讲解libfdk-aac的用法,及在RTP流媒体中应用时所需注意的细节。 AAC AAC是在MPEG-2和MPEG-4中定义的,是一系列编码规格的统称。 AAC标准包括一系列编码规格,这里只列出常用的几种AAC-LC,AAC-LD,AAC-ELD,HE-AAC。你可以将它们之间的关系理解成H264中base,main,high profile的关系。AAC-LC定义在MPEG-2中。AAC-LD,AAC-ELD,HE-AAC定义在MPEG-4中 既然是一种音频编码格式,它有两大基本应用场景:媒体文件(storage),流媒体(stream)。比如经常见的h264+aac的map4文件,rtp 携带aac媒体流。WAV格式是封装的PCM 音频码流(封装格式是记录码流中的信息,比如采样率,声道数等),那么对于的AAC也有封装格式,并且对不同的场景有不同的封装格式。封装格式有:ADIF

移动开发者的必知音视频基础知识

≯℡__Kan透↙ 提交于 2020-01-07 12:07:35
作为移动开发者,大多数时候会需要接触到音视频相关的开发,而其实严格意义上我也并不是专职的音视频开发工程师,只是在 2016 因为业务需要接触到音视频相关的领域,而开源的 GSYVideoPlayer 恰好火起来之后,为了解决系列问题成了“半桶水”的音视频开发工程师。 在维护 GSYVideoPlayer 的这几年里,我发现很多开发者对于音视频领域相关的基本概念还是不清楚,所以我也经常可以收获这样的 issue: “为什 么xxx 可以播而 GSY 不能播?” “我两个视频都是 mp4 为什么其中一个播放不了?” “为什么缓冲过的视频 seek 完还要重新请求数据?” “为什么播放有黑边?” “····” 而这些其实都是音视频开发过程中的常识性问题,所以本篇将通过 基本概念 、 常见问题 、 应用场景 来科普音视频开发的基础知识。 基本概念 首先,如下图所示是一个 .MOV 的视频文件,可以看到更多信息栏里编码器有 AAC 、 HEVC ,而这个就是视频的 音频编码 和 视频编码 ,而 MOV 其实就是 封装协议 ,这其实就是我们接下来要介绍的基本概念。 一般情况下,视频流从加载都准备播放是需要经过 解协议、解封装、解编码 这样的过程,其中 协议指的就是流媒体协议;封装是的是视频的封装格式;编码又分为视频编码和音频编码 。 协议 一般有 HTTP 、 RTSP 、 RTMP 等

FFMPEG音视频解码

ぃ、小莉子 提交于 2020-01-04 15:58:32
文章转自: https://www.cnblogs.com/CoderTian/p/6791638.html 1.播放多媒体文件步骤 通常情况下,我们下载的视频文件如MP4,MKV、FLV等都属于封装格式,就是把音视频数据按照相应的规范,打包成一个文本文件。我们可以使用MediaInfo这个工具查看媒体文件的相关信息。 所以当我们播放一个媒体文件时,通常需要经过以下几个步骤 ①解封装(Demuxing):就是将输入的封装格式的数据,分离成为音频流压缩编码数据和视频流压缩编码数据。封装格式种类很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。例如,FLV格式的数据,经过解封装操作后,输出H.264编码的视频码流和AAC编码的音频码流。 ②解码(Decode):就是将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始数据。音频的压缩编码标准包含AAC,MP3等,视频的压缩编码标准则包含H.264,MPEG2等。解码是整个系统中最重要也是最复杂的一个环节。通过解码,压缩编码的视频数据输出成为非压缩的颜色数据,例如YUV、RGB等等;压缩编码的音频数据输出成为非压缩的音频抽样数据,例如PCM数据。 ③音视频同步:就是根据解封装模块处理过程中获取到的参数信息,同步解码出来的音频和视频数据

iOS 直播类APP开发流程分解:

北战南征 提交于 2019-12-31 00:39:05
1 . 音视频处理的一般流程: 数据采集→数据编码→数据传输(流媒体服务器) →解码数据→播放显示 1、 数据采集: 摄像机及拾音器收集视频及音频数据,此时得到的为原始数据 涉及技术或协议: 摄像机:CCD、CMOS 拾音器:声电转换装置(咪头)、音频放大电路 2、 数据编码: 使用相关硬件或软件对音视频原始数据进行编码处理(数字化)及加工(如音视频混合、打包封装等),得到可用的音视频数据 涉及技术或协议: 编码方式:CBR、VBR 编码格式 视频:H.265、H.264、MPEG-4等,封装容器有TS、MKV、AVI、MP4等 音频:G.711μ、AAC、Opus等,封装有MP3、OGG、AAC等 3、 数据传输: 将编码完成后的音视频数据进行传输,早期的音视频通过同轴电缆之类的线缆进行传输,IP网络发展后,使用IP网络优传输 涉及技术或协议: 传输协议:RTP与RTCP、RTSP、RTMP、HTTP、HLS(HTTP Live Streaming)等 控制信令:SIP和SDP、SNMP等 4、 解码数据: 使用相关硬件或软件对接收到的编码后的音视频数据进行解码,得到可以直接显示的图像/声音 涉及技术或协议: 一般对应的编码器都会带有相应的解码器,也有一些第三方解码插件等 5、 播放显示: 在显示器(电视、监视屏等)或扬声器(耳机、喇叭等)里,显示相应的图像画面或声音

python基础实验:模拟音频播放器

∥☆過路亽.° 提交于 2019-12-21 08:33:11
假设用程序播放音频。一个播放器对象(mediaplayerobject)创建AudioFile 对象,执行 play 方法。play()方法负责解码音频文件,并播放,其行为可简单 描述为audio-file.play()。但解码音频文件,需要根据不同的文件使用不同的 算法,wav,mp3,wma,ogg,显然不能用同一种算法解码。如果,要为每种文件定 义一个play()方法,那得定义很多少个方法?!而且,随着技术发展,出现新的 音频文件格式怎么办,定义多少个方法够用呢?使用继承和多态可以简化设计。 思路是这样的,每种格式用 AudioFile 的一个子类表示,如 WavFile、MP3File 等。每个子类都有自己的play()方法,但该方法根据不同子类实现不同的解码算 法和播放功能。而播放器对象永远不必知道 AudioFile 指的是哪个子类,播放器 只需调用play()方法,让对象的多态机制处理具体的解码播放即可。 本练习涵盖继承、覆盖、多态技术 # polymorphism exercise class AudioFile: def __init__(self, filename): if not filename.endswith(filename[-3:]): raise Exception("Invalid file format") self.filename =

CentOs 下安装 ffmpeg 以及添加 ogg 音频支持

微笑、不失礼 提交于 2019-12-07 08:03:26
简单介绍 FFmpeg 是一个 自由软件 ,可以运行音频和视频多种格式的录影、转换、流功能 [1] ,包含了libavcodec ─这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式转换库。(来自维基百科) 安装前提 由于在centos下使用 yum install ffmpeg 是找不到安装包的,所以需要通过其他方法来安装:(以下摘自网络 http://aqbjzxl.iteye.com/blog/1408478 ) 一、安装ffmpeg 操作系统:centos 5.6 (一)安装编译环境 #yum install -y automake autoconf libtool gcc gcc-c++ (二)安装所需程序库的RPM包到 centos(因为centos自带的库中没有ffmpeg包,这里相当于是扩展) view plaincopy to clipboardprint? #rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm (三)安装 Install ffmpeg 等模块 yum -y install ffmpeg ffmpeg-devel 本人就是使用以上方法安装成功的。

将音频编解码器整合进新一代SoC的技术挑战和设计实现

£可爱£侵袭症+ 提交于 2019-12-06 06:39:20
在当今的多媒体系统级芯片中整合进经过硅验证并针对特定音频功能优化过的音频IP,有利于降低功耗、减少体积、缩减成本。但随着下一代设计走向28nm工艺技术,也随之出现了新的挑战。音频编解??码器中的音频设计包括了很多模拟电路,它不随着工艺技术的发展而与时俱“小”,因此并不遵循传统的摩尔定律。 28nm工艺技术增加了晶圆成本,系统架构师和SoC设计师必须要考虑这对将音频编解码器整合进SoC的经济性产生了何种影响。Synopsys公司测试了几款目前在市场上出售的移动多媒体设备,发现目前多数智能手机和平板电脑可以支持用28nm工艺开发的音频编解码器。 本文介绍了测试结果还讨论了将音频功能整合进28nm移动多媒体SoC所面临的商业和技术挑战,同时阐述了如何克服这些挑战的见解。本文还解释了一些关键的设计考虑,包括缩放限制、电源电压的要求和系统划分选择等。 音频编解码器基础:为解释清楚和便于讨论,可使用下图1描述的一款音频编解码器。音频编解??码器包含麦克风和线输入、信号流送和混合、放大器模块、多通道ADC和DAC。它还包括各种输出驱动器,包括线输出、耳机和扬声器驱动器以及一个包含抽取/插值滤波器的小数字信号处理模块和一个标准的I2S数字音频接口。 图1:典型的音频编解码器方框图。 28nm工艺技术的成本考虑:在28nm工艺技术,晶圆成本比65nm技术高得多。对遵循摩尔定律的数字电路来说

视频播放器实现原理

匿名 (未验证) 提交于 2019-12-03 00:22:01
最近刚刚开始接触视频,对于视频本身的基础知识非常匮乏,搜集整理一下自己的学习过程。这篇视频播放器实现的文章对于理解视频是如何传输、编码、解码、播放整个流程有不少帮助: 原文地址: http://blog.csdn.net/l_yangliu/article/details/13503823 ES流(Elementary Stream): 也叫基本码流,包含视频、音频或数据的连续码流. PES流(Packet Elementary Stream): 也叫打包的基本码流, 是将基本的码流ES流根据需要分成长 度不等的数据包, 并加上包头就形成了打包的基本码流PES流. TS流(Transport Stream): 也叫传输流, 是由固定长度为188字节的包组成, 含有独立时基的一个或 多个program, 一个program又可以包含多个视频、音频、和文字信息的ES流; 每个ES流会有不同的 PID标示. 而又为了可以分析这些ES流, TS有一些固定的PID用来间隔发送program和ES流信息的表格: PAT和PMT表. (在MPEG-2系统中,由视频, 音频的ES流和辅助数据复接生成的用于实际传输的标准信息流称为MPEG-2传送流) 封装 : 就是捆绑打包, 将画面视频文件和音轨文件打包在一起, 并按照一定规则建立排序和索引, 便 于播放器或播放软件来索引播放. 包括AVI \