AAC及其封装格式
背景 最近在媒体库中需要加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