about AAC and multi-channel Audio


繼上一篇提到video 的部份,這篇要提的是AAC
目前來說AAC 有很多版本,就opensource 來說 libfdk_aac 是最好的
所以這篇主要針對libfdk_aac 的設定來著手,另外順便談multi-channel的問題

libfdk_aac 有五種profile

其中比較常用的三種是aac_he、aac_he_v2、aac_low
要使用哪個主要看的是要給多少流量

aac_he_v2 適合於24kbps (per-channel) 以下
aac_he 適合於24kbps~40kbps (per-channel)
aac_low 適合於64kbps (per-channel) 以上

40kbps~64kbps,aac_he_v2、aac_he表現幾乎一樣,個人建議用aac_he

aac_he、aac_he_v2 與aac_low(LC-AAC) 聽覺上最大的不同在於transparency
所以高流量(單聲道大於64kbps)的情形 建議profile採取aac_low
libfdk_aac 預設值是aac_low
另外profile 採aac_he 或 aac_he_v2 最多單聲道流量上限就64kbps per-channel
再多也沒有意義(實際上程式最多就給到64k),流量再多請改採aac_low

profile 採用aac_low 時,可以使用vbr模式 (可變流量)
vbr 有五種設定 分別是
1 20-32 kbps/channel
2 32-40 kbps/channel
3 48-56 kbps/channel
4 64-72 kbps/channel
5 96-112 kbps/channel

舉例
ffmpeg -i <input> -c:a libfdk_aac -flags +qscale -vbr 5 -afterburner 1 <output>

Downmix 主要是在多音軌下 輸出stereo


一般而言 常見的downmix設定是
FL = FL + 0.707FC + 0.707BL
FR = FR + 0.707FC + 0.707BR
但是這樣環繞的聲音太明顯,所以有人採下面的方案(個人比較喜歡)
FL = FL + 1.414FC + 0.5BL + 0.5SL
FR = FR + 1.414FC + 0.5BR+ 0.5SR
用在ffmpeg 上則是
ffmpeg -i <input> -b:a 256k -ac 2 -clev 1.414 -slev .5 <output>
或者
ffmpeg -i <input> -b:a 256k -ac 2 -clev 3dB -slev -6dB <output>
或者
ffmpeg -i <input> -b:a 256k -filter:a “pan=stereo|FL < FL + 1.414FC + .5BL + .5SL|FR < FR + 1.414FC + .5BR + .5SR"  <output>

multi-channel encode

當影片來源是一個video (0:0) 卻有兩個audio(0:1、0:2)時
只需要0:2 這個音軌,那就下面這樣
ffmpeg -i <input> -map 0:0 -map 0:2 -c:v copy -c:a copy <output>
兩個音軌都要就
ffmpeg -i <input> -map 0:0 -map 0:1 -map 0:2 -c:v copy -c:a:0 copy -c:a:1 copy <output>

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

%d 位部落客按了讚: