我遇到一個奇怪的聲音問題:傳給 handbrake CLI 的聲音參數與設定檔不符。
這是我的設定檔:
[HEVC MKV - HB x265 10bit Q21med AC3 640]
Description=HEVC in MKV (H.265/AC3) conversion. Creates a smaller file (50% smaller than H.264) with comparable quality but very slow.
order=handbrake
handbrake-VideoOptimized=true
handbrake-general=–loose-anamorphic --verbose=2
handbrake-video=–start-at duration:0 -e x265_10bit --encoder-preset medium -q 21 --encoder-profile main10 --cfr
handbrake-audio=-E ffac3 -R auto -B 192 -D 0 -a 1,2,3,4,5
handbrake-audioac3=-E ffac3 -R auto -B 640 -D 0 -a 1,2,3,4,5
handbrake-ext=.mkv
handbrake-audiodelay=skip
PreConversionCommercialRemover=false
這是我在 log 裡看到 mcebuddy 實際傳給 CLI 的內容:
–loose-anamorphic --verbose=2 --start-at duration:0 -e x265_10bit --encoder-preset medium -q 21 --encoder-profile main10 --cfr -E ffac3 -R auto -B 192 -D 0 -a 1 -6 6ch
我已勾選「multi channel audio」,因此 AC3 已啟用,6ch 旗標也確實存在,但位元率卻取自 2 聲道的設定。我試過各種數值,結果都是:CLI 拿到的是 2 聲道的位元率,AC3 的位元率完全被忽略。
所以,在啟用多聲道的情況下:
handbrake-audio=-E ffac3 -R auto -B 640 -D 0 -a 1,2,3,4,5
handbrake-audioac3=-E ffac3 -R auto -B 129 -D 0 -a 1,2,3,4,5
實際會產生 6 聲道 AC3 音軌,位元率 640。CLI 收到的 -B 確實是 640;不論我怎麼改 AC3 的數值,都沒有影響,似乎完全被忽略。
奇怪的是,這個設定檔前幾週都跑得好好的。我為了找出畫質與檔案大小的甜蜜點,調整過各種參數,跑了約 50 部 Blu-ray remux 都正常。這幾天我大量實驗,可能不小心把錯誤的預設值寫進 HandBrake 或 FFmpeg,或者……我也不知道。我已升級到最新的 4.11 穩定版,並做了完整移除重裝(含 HB CLI),問題依舊。
我也試過 FFmpeg,但碰到 7.1 聲道就立即出錯;2 聲道在 8 與 10bit x265 下則正常。