音频压缩
消除冗余信息
无损压缩(熵编码:哈夫曼编码,算术编码,香农编码)
音频压缩技术是在保证信号在听觉方面不产生失真的前提下,对音频数据信号进行尽可能大的压缩。
压缩的主要方法是去除采集到的音频冗余信息。冗余信息包括人耳听觉范围外的音频信号以及被掩蔽掉的音频信号,信号的遮蔽可以分为频域遮蔽和时域遮蔽。
音频编码过程
AAC规格描述
AAC LC:低复杂度规格,码流是128k,音质好。
AAC HE:AAC LC+SBR,低频编码保存主要成分,高频单独放大编码保存音质,码流在64k左右。
AAC HE V2:AAC LC+SBR+PS,其核心思想是双声道中的声音存在某种相似性,只需存储一个声道的全部信息,然后花很少的字节用参数描述另一个声道和它不同的地方。
AAC格式
ADIF:这种格式的特征是可以确定的找到这个音频数据的开始,只能从头开始解码,不能在音频数据流中间开始。这种格式常用在磁盘文件中。
ADTS:这种格式的特征是每一帧都有一个同步字,所以可以在音频流的任何位置开始解码。它类似于数据流格式。
ffmpeg生成AAC文件
ffmpeg -i xxx.mp4 -vn -c:a libfdk_aac -ar 44100 -channels 2 -profile:a aac_he_v2 xxx.aac
音频重采样
音频重采样就是将音频三元组(采样率,采样大小和通道数)的值转成另一组值,例如44100/16/2转成48000/16/2。
为什么要重采样?
从设备采集的音频数据与编码器要求的数据不一致
扬声器要求的音频数据与要播放的音频数据不一致
更方便运算
如何知道是否需要进行重采样?
要了解音频设备的参数
查看ffmpeg源码
重采样的步骤
创建重采样上下文
设置参数
初始化重采样
进行重采样