參考文章: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