参考文章:https://www.cnblogs.com/lidabo/p/7324369.html
flv文件格式:https://www.cnblogs.com/musicfans/archive/2012/11/07/2819291.html
rtmp封装AAC第一帧数据时,需要音频同步包,里面包含AAC的相关信息。音频同步包大小固定为 4 个字节。前两个字节被称为 [AACDecoderSpecificInfo],用于描述这个音频包应当如何被解析。后两个字节称为 [AudioSpecificConfig],更加详细的指定了音频格式。
下图为前两个字节 0xAF 0x00
由上图可知,AAC的soundRate固定为3
由上图可知:
后两个字节需要指定AAC的类型和采样率,
AAC sequence header也就是包含了AudioSpecificConfig,AudioSpecificConfig包含着一些更加详细音频的信息,AudioSpecificConfig的定义在ISO14496-3中1.6.2.1 AudioSpecificConfig,这里就不详细贴了。摘抄自https://www.cnblogs.com/musicfans/archive/2012/11/07/2819291.html)
查看ISO文档可知
1.6.3.3 samplingFrequencyIndex
1.5.1 MPEG-4 audio object types:
AAC-LC的type为2
根据上述图标,举例:
AAC LC 8000Hz,则第一帧配置为
body[i++] = 0xAF;
body[i++] = 0x00;
body[i++] = 0x15;
body[i++] = 0x90;
后两个字节为
00010 1011 0010 0 0 0
AACLC 8000hz stereo