FFMPEG 在复制流时设置音频流顺序

FFMPEG 在复制流时设置音频流顺序

好奇是否有人可以在这里帮助我,我有一个视频文件

流 0 视频
流 1 DTS-HD 音频

我想要创建第二个 eac3 音频,这将是 DTS-HD 音轨的副本。它看起来会像这样。

流 0 视频
流 1 DTS-HD 音频
流 2 EAC3 音频(流 1 的副本)

我得到的是

流 0 视频
流 1 EAC3 音频(流 2 的副本)
流 2 DTS-HD 音频

看起来不错,只是音频流的顺序不对

这是命令,有人可以提供任何帮助吗?

ffmpeg -i "input.mp4" -map 0:v -map 0:a -map 0:a -c:v copy -c:a:0 eac3 -ab:a:0 640k -c:a:1 copy -c:s copy "output.mp4"

答案1

是的,这确实有道理,它不会按照你预期的方式工作!

尝试改变这种情况:

ffmpeg -i "input.mp4" -map 0:v -map 0:a -map 0:a -c:v copy -c:a:0 eac3 -ab:a:0 640k -c:a:1 copy -c:s copy "output.mp4"

到:

ffmpeg -i "input.mp4" -map 0:v -map 0:a -map 0:a -c:v copy -c:a:1 eac3 -ab:a:1 640k -c:a:0 copy -c:s copy "output.mp4"

我已经测试过了,它确实有效!如果您想知道,请添加,-t 10s [before..filename]这样您就可以将 10 秒转换为测试目的。

原因是,即使你在这里做得正确-map 0:v -map 0:a -map 0:a这里 -c:a:0 eac3您正在将 [新转换的] 映射到第一个位置,而它应该位于-c:a:1第二个位置,正如您所希望的那样,并且肯定-c:a:1 copy原始的 [第二个位置] 位于第一个位置-c:a:0 copy

相关内容