使用ffmpeg Concat多个视频和音频文件

时间:2013-09-10 05:10:00

标签: ffmpeg codec

我有一系列音频和视频片段,其中每个音频片段与其视频片段具有1:1的相关性。每个视频和每个音频剪辑的编码是相同的。如何连接所有音频剪辑和所有视频剪辑,然后将它们合并在一起以输出视频。截至目前,我只想出了如何将1个音频剪辑与1个视频剪辑合并:

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

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

2 个答案:

答案 0 :(得分: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'

然后使用它作为输入,la:

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

这是迄今为止最简单,最快捷的方式,因为它不会对文件进行重新编码,只需将它们一个接一个地排列。

答案 1 :(得分:4)

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

  

Concatenate two mp4 files using ffmpeg

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

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

  

ffmpeg -i AUDIO -i VIDEO -acodec copy -vcodec copy OUTPUT