5

我有一组音频和视频剪辑,其中每个音频剪辑与其视频剪辑具有 1:1 的相关性。每个视频和每个音频剪辑的编码都是相同的。如何连接所有音频剪辑和所有视频剪辑,然后将它们合并在一起以输出视频。到目前为止,我只知道如何将 1 个音频剪辑与 1 个视频剪辑合并:

$ ffmpeg -i video_1.webm -i audio_1.wav -acodec copy -vcodec copy output.mkv

我刚刚遇到的更新mkvmerge这可能是一个更好的选择吗?

4

2 回答 2

8

如果所有文件都使用相同的编解码器编码,那么很容易做到。首先像您已经完成的那样合并音频和视频文件,这样每对文件都包含在一个 mkv 中。然后你可以像这样使用 concat demuxer 连接它们:

ffmpeg -f concat -i <(printf "file '%s'\n" ./file1.mkv ./file2.mkv ./file3.mkv) -c copy merged.mkv

或者:

ffmpeg -f concat -i <(printf "file '%s'\n" ./*.mkv) -c copy merged.mkv

您还可以在名为 mergelist.txt 的文本文件(或您想调用的任何名称)中每行列出一个文件,即:

file './file1.mkv'
file './file2.mkv'
file './file3.mkv'

然后将其用作输入,例如:

ffmpeg -f concat -i mergelist.txt -c copy merged.mkv

这是迄今为止做你想做的最简单和最快的方法,因为它不会重新编码文件,只需将它们一个接一个地排列。

于 2014-02-20T02:55:33.367 回答
4

您可以在这个老问题中找到答案:

使用 ffmpeg 连接两个 mp4 文件

这个答案不限于 MP4。但这取决于您要连接的文件格式!

获得新的 VIDEO 文件和 AUDIO 文件后,将它们合并在一起:

ffmpeg -i 音频 -i 视频 -acodec 复制 -vcodec 复制 OUTPUT

于 2013-09-10T05:36:53.843 回答