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

Aar*_*kon 10 audio encoding ffmpeg

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

我的问题似乎是我要么错过了将曲目的正确映射交给 ffmpeg(该文件已经有两个音轨和一些子图块,这似乎也很重要),所以我收到了“流图的数量必须匹配输出流的数量”(从内存中引用),或者我什至把整个流/映射概念都弄错了。

我正在尝试做的事情有什么好的解释吗?我什至阅读了有关该主题的整篇文章,ffmpeg.org 中的文档在这种情况下并没有那么有用。

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

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

llo*_*gan 16

ffmpeg -i input.mkv -i audio.dts -map 0 -map 1 -c copy output.mkv
Run Code Online (Sandbox Code Playgroud)

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

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

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