ffmpeg:向现有文件添加新音轨

ffmpeg:向现有文件添加新音轨

我手动创建了一些 5.1 DTS 音轨的立体声混音。现在我想将新音轨添加到原始电影文件中,而不删除旧音轨。

我的问题似乎是我要么忘记向 ffmpeg 提供正确的音轨映射(该文件已经有两个音轨和多个字幕,似乎也算在内),所以我收到“流映射的数量必须与输出流的数量匹配”(从内存中引用),或者我甚至误解了整个流/映射概念。

对于我要做的事情,有什么好的解释吗?我甚至读过关于这个主题的整篇文章,但 ffmpeg.org 中的文档在这种情况下并没有那么有用。

更具体地说:我想知道是否有任何方法可以让 ffmpeg 显示文件的实际流映射,以及如何将我的立体声音轨合并到其中?

到目前为止我发现的所有内容都与静音视频或替换音轨有关,这不是我想要做的。

答案1

ffmpeg -i input.mkv -i audio.dts -map 0 -map 1 -c copy output.mkv

默认流选择行为只为每个流类型选择一个流,因此在这种情况下你必须使用-map告诉它你想要哪些流。

输入文件索引从 0 开始计数,因此使用-map 0将从第一个输入(input.mkv)中选择所有流,并将从第二个输入( )-map 1中选择所有流。audio.dts

结果是output.mkv将包含来自两个输入的所有流。使用-c copy流复制流,因此它们将被简单地重新混合而无需额外的重新编码。

相关内容