音频压缩的方法
如果不对音频进行压缩,产生的pcm数据很大,在网络上传输对网络负担很大
有损压缩
消除冗余信息:人的听觉范围是20hz-20kHz,将超过这个范围的剔除出去,是一种有损压缩。
音频遮蔽
频域遮蔽效应:人的说话是一种复合声音,其中掺杂着其他的声音。将时域的声音转化到频域,如傅立叶变换。如何,在静音门限之下的声音,都是遮蔽的声音,人听不到。
在频率相近的音频,分贝高的的会遮蔽分贝低的音频,如图,遮蔽源的声音强度最高,在遮蔽门限中,附件的三个音频声音分贝低于其遮蔽门限,声音被遮蔽,而0.5khz的声音则没有被遮蔽。原因是,首先距离远,其次分贝高。
时域遮蔽效应:在0-0的范围内,分贝高的压制分贝低的
无损压缩
音频编码过程
常见的音频编解码器
opus最近性能最高的编解码器,延迟小,压缩率高。AAC是应用最广泛的。speex支持回音消除。
纵轴是质量,横轴是比特流
可以看到opus的支持最高
纵轴是延迟。横轴是码流
AAC编码器
最成熟、使用最广泛。
ffmpeg命令生成aac格式
xxx.mp4 输入文件,必须包含音频
-vn v指的是vedio n指的是none 也就是没有vedio 过滤掉视频
-c:a -c 指codec :a指的是audio 音频编码器
libfdk_acc 使用的acc编码器 fdk_aac是acc编码器中性能较好的编码器
ffmpeg -i ~/Downloads/1.mp4 -vn -c:a libfdk_aac -ar 44100 -channels 2 -profile:a aac_he_v2 1.aac
修复ffmepg load x264失败
brew install ffmpeg --build-from-source
brew link --overwrite ffmpeg