soruly 发表于 2015-8-20 22:01:05

如何使用ffmpeg把5.1/7.1聲道壓制成雙聲道

本帖最后由 soruly 于 2015-8-20 22:13 编辑

前言。
播放5.1/7.1聲道的影片時,經常會出現人聲很細,背景效果聲很大的情況。
這個情況在XBMC經常出現,即使設定了volume normalize,對白的音量還是很細。
較好的播放器例如VLC, MPC-HC會再加上volume boost提高音量,但在其他播放器例如手機播就有機會出現問題。

為確保所以設備都能用正確音量播放,這裡就介紹如何用ffmpeg預先壓成雙聲道。

我個人習慣使用ffmpeg,對其他軟件不熟識,因此這裡只使用ffmpeg作示範
不過因為ffmpeg沒有圖形介面,全部也需要用指令行輸入,所以只建議進階使用者使用

ffmpeg可以在這裡下載
https://www.ffmpeg.org/download.html

官方介紹的方法,是按照Digital Audio Compression Standard (Document A/52:2012),所範定的公式而合成聲道。
這個合成方式只需要一個簡單的 -ac 2 指令就可以了,但效果很差,人聲完全聽不到,背景聲也變得很小。
https://trac.ffmpeg.org/wiki/AudioChannelManipulation

後來我發現使用audio pan filter壓出來的效果更好,左邊使用100%左聲道+100%中間聲道,其餘50%。右邊使用100%右聲道+100%中間聲道,其餘50%。
LFE低音不需要合成,直接設定0%或忽略掉就可。
最後要把整體音量提高300%。
最終音量算出來的方式是所有左/右邊聲道系數總和:1.0+1.0+0.5+0.5=3.0

示範指令如下:
ffmpeg --i "input.mkv" -c:v copy -c:a libfdk_aac -af "pan=stereo| FL < 1.0*FL + 1.0*FC + 0.5*BL + 0.5*SL + 0*LFE | FR < 1.0*FR + 1.0*FC + 0.5*BR + 0.5*SR + 0*LFE ,volume=3.0" "output.mkv"

我也不確定這樣的合成方法音量是否正確,畢竟如何在雙聲道模擬5.1/7.1聲道不止一種方法,但至少聽起來各個聲道的音量總算平衡,音量不會過低,也沒有爆音的情況。

暗騎 发表于 2015-8-20 22:26:32

vx2240w 发表于 2020-8-6 02:07:41

唔识用ffmpeg嚟压制音轨,希望有大神可以帮下你~

chiben1996 发表于 2020-8-6 22:36:47

唔係咁清楚,幫你唔到
页: [1]
查看完整版本: 如何使用ffmpeg把5.1/7.1聲道壓制成雙聲道