AAC(Advanced Audio Coding,译为:高级音频编码),是由Fraunhofer IIS、杜比实验室、AT&T、Sony、Nokia等公司共同开发的有损音频编码和文件格式。
AAC被设计为MP3格式的后继产品,通常在相同的比特率下可以获得比MP3更高的声音质量,是iPhone、iPod、iPad、iTunes的标准音频格式。
AAC相较于MP3的改进包含:
AAC是一个庞大家族,为了适应不同场合的需要,它有很多种规格可供选择。下面列举其中的9种规格(Profile):
最早是基于MPEG-2标准,称为:MPEG-2 AAC。后来MPEG-4标准在原来基础上增加了一些新技术,称为:MPEG-4 AAC。
虽然上面列举了9种规格,但我们目前只需要把注意力放在常用的LC和HE上。下图很好的展示了从LC到HE的发展历程。
LC适合中等比特率,比如96kbps ~ 192kbps之间。
MPEG-4 AAC LC等价于:
HE有v1和v2两个版本,适合低比特率:
MPEG-4 AAC HE v1的别名:
MPEG-4 AAC HE v1等价于:
SBR(Spectral Band Replication)译为:频段复制。
MPEG-4 AAC HE v2的别名:
MPEG-4 AAC HE v2等价于:
PS(Parametric Stereo)译为:参数立体声。
如果想对PCM数据进行AAC编码压缩,那么就要用到AAC编码器(encoder)。
如果想将AAC编码后的数据解压出PCM数据,那么就要用到AAC解码器(decoder)。
这里只列举几款常用的AAC编解码器:
FFmpeg AAC
FAAC(Freeware Advanced Audio Coder)
编码质量排名:Fraunhofer FDK AAC > FFmpeg AAC > FAAC。
在网上下载的编译版FFmpeg,通常都是没有内置libfdk_aac的。可以通过命令行查看FFmpeg目前内置的AAC编解码器。
# windows
ffmpeg -codecs | findstr aac
# mac
ffmpeg -codecs | grep aac
我这边的输出结果是:
DEAIL. aac AAC (Advanced Audio Coding) (decoders: aac aac_fixed )
D.AIL. aac_latm AAC LATM (Advanced Audio Coding LATM syntax)
很显然,并没有包含libfdk_aac。这里给出2个解决方案:
原文:https://www.cnblogs.com/mjios/p/14633516.html