AAC音訊格式簡析

2021-08-04 18:51:44 字數 1722 閱讀 1830



1.adts是個啥

adts全稱是(audio data transport stream),是aac的一種十分常見的傳輸格式。

adts aac

adts_header

aac es

adts_header

aac es

...

adts_header

aac es

adts 頭中相對有用的資訊取樣率、聲道數、幀長度。想想也是,我要是解碼器的話,你給我一堆得aac音訊es流我也解不出來。每乙個帶adts頭資訊的aac流會清晰的告送解碼器他需要的這些資訊。

一般情況下adts的頭資訊都是7個位元組,分為2部分:

syncword:同步頭 總是0xfff, all bits must be 1,代表著乙個adts幀的開始

id:mpeg version: 0 for mpeg-4, 1 for mpeg-2

layer:always: '00'

profile:表示使用哪個級別的aac,有些晶元只支援aac lc 。在mpeg-2 aac中定義了3種:

sampling_frequency_index:表示使用的取樣率下標,通過這個下標在sampling frequencies[ ]陣列中查詢得知取樣率的值。

there are 13 supported frequencies:

channel_configuration:

表示聲道數 

frame_length: 乙個adts幀的長度包括adts頭和aac原始流.

adts_buffer_fullness:0x7ff 說明是位元速率可變的碼流

如果是通過嵌入式高畫質解碼晶元做產品的話,一般情況的解碼工作都是由硬體來完成的。所以大部分的工作是把aac原始流打包成adts的格式,然後丟給硬體就行了。

通過對adts格式的了解,很容易就能把aac打包成adts。我們只需得到封裝格式裡面關於音訊取樣率、聲道數、元資料長度、aac格式型別等資訊。然後在每個aac原始流前面加上個adts頭就ok了。

貼上ffmpeg中新增adts頭的**,就可以很清晰的了解adts頭的結構:

[html]view plain

copy

int ff_adts_write_frame_header(adtscontext *ctx,  

uint8_t *buf, int size, int pce_size)  

AAC音訊格式(把AAC打包成ADTS)

1 aac aac advanced audio coding 中文名 高階音訊 編碼,出現於1997年,基於mpeg 2的音訊編碼技術。由fraunhofer iis 杜比實驗室 at t sony等公司共同開發,目的是取代 格式。2000年,mpeg 4標準出現後,aac重新整合了其特性,加入了...

mpeg 音訊格式科普

mpeg的音訊格式蠻多的,又是 又是aac,有些地方用mpga,mp4a表示mpeg的音訊,這之間到底有什麼區別和聯絡呢?最近花了兩天時間,通過網上的零散資料整理了一下。mpeg 1 part 3 也就是mpeg標準第1版的第3部分 定義了mpeg audio version 1,而其又包含3個la...

AMR音訊格式分析

amr,全稱是 adaptive multi rate,自適應多速率,是一種音訊編碼檔案格式,專用於有效地壓縮語音頻率。amr音訊主要用於移動裝置的音訊壓縮,壓縮比非常高,但是音質比較差,主要用於語音類的音訊壓縮,不適合對音質要求較高的 類音訊的壓縮。1.1 amr分類 1.amr 又稱為amr n...