我正在为可以在 Apple TV 和 iOS 设备上播放的电影创建音轨。Handbrake 可以使用 Pro Logic II 矩阵编码将 5.1 音频混音为立体声。如何使用 ffmpeg 做到这一点?
我找到了这个ffmpeg Trac 上的链接提到我可以用进行矩阵编码libswresample
,但进一步搜索并没有显示如何在命令行中实际使用它。
我试过
ffmpeg -i test.mkv -map 0:1 -c libfdk_aac -ac 2 -af aresample -matrix_encoding dplii out.aac
其中源文件中唯一的音轨test.mkv
是 5.1ch DTS H MA,但生成的 AAC 音频似乎不是矩阵编码的。
答案1
根据手动输入aresample
,您必须以不同的格式提供重采样器选项:
该过滤器接受语法
[sample_rate:]resampler_options
,其中sample_rate
表示采样率和resampler_options
是一个key=value
由“ ”分隔的对的列表:
。
这意味着你需要像这样调用它:
-af "aresample=matrix_encoding=dplii"
答案2
答案3
把这里的几个答案放在一起,看起来这是最好的答案:
ffmpeg -i SourceVideoWithFivePointOne.mkv -map 0:1 \
-c libfdk_aac -ac 2 -af "aresample=matrix_encoding=dplii" \
DestinationAudioWithDolbyPLII.aac
为了获得加分,将现有的 5.1 声道降级为声道 2,并将立体声升级为声道 1,结果将是:
ffmpeg -i SourceWithFivePointOne.mkv -c:v copy -map 0:0 -map 0:1 -map 0:1 \
-c:a:0 libfdk_aac -ac 2 -af "aresample=matrix_encoding=dplii" \
-c:a:1 copy \
DestinationVideoWithSurroundAndStereo.mkv