參考維基百科、知乎問題等資料對AAC格式進行總結,沒有特別深刻到細節,目的是讓你們對AAC有一個整體的認識。html
高級音頻編碼(英語:Advanced Audio Coding,AAC),出現於1997年,基於MPEG-2的音頻編碼技術。由Fraunhofer IIS、杜比實驗室、AT&T、Sony、Nokia等公司共同開發。2000年,MPEG-4標準出現後,AAC從新集成了其特性,加入了SBR技術和PS技術,爲了區別於傳統的MPEG-2 AAC又稱爲MPEG-4 AAC。git
(參考鵬小鶘在問題AAC-LC 是什麼格式?和 AAC 有什麼區別?中的回答)github
參考知乎的問題,AAC的音頻文件格式經常使用的有如下兩種:性能
因此在直播等領域用的最多的仍是ADTS。編碼
ADTS的頭信息分爲兩部分,一個是固定頭信息、緊接着是可變頭信息。 固定頭信息spa
合起來.net
更直觀一點:orm
因此必需要了解ADTS封裝的格式,不然就不能本身講AAC打包到ADTS。cdn
在FFmpeg的adtsenc.c 中定義了adts_write_frame_header方法,能夠寫ADTS頭,你們能夠參考。
序號5的profile是AOT - 1,AOT參考這裏
0: Null 1: AAC Main 2: AAC LC (Low Complexity) 3: AAC SSR (Scalable Sample Rate) 4: AAC LTP (Long Term Prediction) 5: SBR (Spectral Band Replication) 6: AAC Scalable 7: TwinVQ 8: CELP (Code Excited Linear Prediction) ....省略若干type
adts_buffer_fullness:0x7FF 說明是碼率可變的碼流。
由於AAC是一個龐你們族,他們共分爲9種規格,以適應不一樣場合的須要,也正是因爲AAC的規格(Profile)繁多,致使普通電腦用戶感受十分困擾: MPEG-2 AAC LC低複雜度規格(Low Complexity) MPEG-2 AAC Main主規格 MPEG-2 AAC SSR可變採樣率規格(Scaleable Sample Rate) MPEG-4 AAC LC低複雜度規格(Low Complexity),如今的手機比較常見的MP4文件中的音頻部分就包括了該規格音頻文件 MPEG-4 AAC Main主規格 MPEG-4 AAC SSR可變採樣率規格(Scaleable Sample Rate) MPEG-4 AAC LTP長時期預測規格(Long Term Predicition) MPEG-4 AAC LD低延遲規格(Low Delay) MPEG-4 AAC HE高效率規格(High Efficiency) 上述的規格中,主規格(Main)包含了除增益控制以外的所有功能,其音質最好,而低複雜度規格(LC)則是比較簡單,沒有了增益控制,但提升了編碼效率,至「SSR」對「LC」規格大致是相同,可是多了增益的控制功能,另外,MPEG-4 AAC/LTP/LD/HE,都是用在低比特率下編碼,特別是「HE」是有Nero AAC編碼器支持,是近來經常使用的一種編碼器,不過一般來講,Main規格和LC規格的音質相差不大,所以目前使用最多的AAC規格多數是「LC」規格,由於要考慮手機目前的內存能力未達合理水準。 MPEG-4 AAC LC(Low Complexity)是最經常使用的規格,咱們叫「低複雜度規格」,咱們簡稱「LC-AAC」,這種規格在中等碼率的編碼效率以及音質方面,都能找到平衡點。所謂中等碼率,就是指:96kbps-192kbps之間的碼率。所以,若是要使用LC-AAC規格,請儘量把碼率控制在以前說的那個區間內。 附加一篇參考文章:AAC規格(LC,HE,HEv2)及性能對比
參考
ADTS: