我有一些 mp4,有两个音轨,一个是 aac 的英语轨道,一个是 dts 的法语轨道。
现在我只想使用单个 ffmpeg 命令将法语 dts转换为 eac3。
我用
ffmpeg -hide_banner -i input.mp4 ^
-map_metadata -1 ^
-map 0:0 -c:v copy ^
-map 0:1 -c:a copy ^
-map 0:2 -c:a eac3 -b:a 1536k ^
-metadata:s:a:0 language=eng ^
-metadata:s:a:0 title="Stereo" ^
-metadata:s:a:1 language=fra ^
-metadata:s:a:1 title="Stereo" ^
output.mp4
这工作得很好,但它将两个音轨转换为 eac3,而不是让第一个音轨保持不变......命令中有什么问题?
(Windows 10下ffmpeg版本2023-12-23-git-f5f414d9c4-full_build-www.gyan.dev)
经过一番研究(阿兰让我找到了正确的方法),正确的命令是
-c :a:1 eac3和-b:a:1 1536k都是需要的,如果您只使用 -b:a 而不是 -b:a:1,则无论编解码器如何,所有音轨都会设置为 1536k...
仅当您重新映射轨道和/或设置元数据时才需要-map和-metadata语句。