AAC(高级音频编码)
也称为 MPEG-4 音频。数码音频压缩和编码的标准方式。AAC 编码文件可与音乐光盘的质量相匹敌,且声音质量通常等同于或高于以相同或甚至更高的位速率编码的 MP3 文件。
我们按这样的顺序讨论 :
1、 封装格式的作用
2、 AAC的一些特殊限制
3、 AAC与其他编码格式的选择
封装格式的作用
一个视频或音频文件实际上是分三层的:封装、编码、基础数据。
而编码的作用,是为了压缩数据,限制最终文件的大小。
我们举个例子,音频是由一个个采样组成的,如果采样的位深度为16bit的话,一个采样的大小即为16bit。
如果音频长度1分钟,采样率为48KHz、双声道的话,则理论音频文件大小为10MB左右。
一般除了无损音频文件,是没这么大的,因为音频编码阶段会压缩数据。
这里顺便一提,即使是无损音频文件,编码阶段也会压缩数据,只是压缩算法是无损的,保证能还原成原始数据。
另外,一般只有对音频文件大小产生影响的基础参数才会作用在编码阶段,如码率、最大码率等。
除去无损音频编码格式外,编码阶段会按这些参数限制文件大小,但同时也可能会产生有损压缩,影响声音质量。
其他参数如采样率、位深度等,都不是编码阶段处理的,需要转码程序对原始音频数据进行处理。
关于音频相关参数的讲解以及推荐设置,如音频帧、采样、位深度、采样率、声道等,这里不作展开。
AAC的一些特殊限制
音频编码格式的不同,意味着压缩算法的区别。具体压缩算法是不需要搞清楚的,但是需要清楚具体编码格式的一些特殊限制。
AAC编码的话,音频采样率限制在8KHz-96KHz之间。
另外,AAC编码一般以1024个采样为一个音频帧,如果是双通道、采样率为48KHz的话,则一个音频帧的长度大约为0.01秒。
如果每个音频帧的采样数不对,则可能会造成播放过快或过慢的问题。
这里需要注意的是,AAC实际上有多种规格的,不同规格可以理解为AAC编码的不同行为,以上介绍的一些特殊限制都是基于最常用的AAC-LC规格。
不同规格下,支持的采样率、最大码率、每帧采样数都是有区别的。另外,在低码率,128Kbps以下,不同模式的主观音质会有所区别,AAC-HE会比常用的AAC-LC更加优秀。
但一般音频码率都会在128Kbps以上,所以一般选用常规的AAC-LC即可。
AAC与其他编码格式的选择
AAC是很常用的编码格式,无论是视频文件、还是单纯的音频文件,采用AAC编码格式,都有很高的兼容性。
如果是要求无损音质,则选择PCM等编码格式。
当然,音频编码格式的选择,更多是以实际情况为依据的,在明确音质要求前提下,需要考虑数据量/流量等成本问题。
但比这些都重要的是,兼容目标用户群体的播放设备/软件,毕竟编码格式再优秀,用户播不了也是没用的。
本文福利, 免费领取C++音视频学习资料包+学习路线大纲、技术视频/代码,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,编解码,推拉流,srs)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓