Concat multiple video and audio files with ffmpeg

2019-06-27 04:11发布

I have an array of audio and video clips, where each audio clip has a 1:1 correlation with it's video clip. The encoding of each video and each audio clip are the same. How can I concat all of the audio clips, and all the video clips, then merge them together to output a video. As of now I only figured out how to merge 1 audio clip with 1 video clip:

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

Update I just came across mkvmerge would this possibly be a better option?

标签: ffmpeg codec
2条回答
SAY GOODBYE
2楼-- · 2019-06-27 05:07

If all the files are encoded with the same codecs then it's easy to do. First merge the audio and video files as you have already done so each pair of files is contained in one mkv. Then you can concatenate them with the concat demuxer like this:

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

or:

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

You could also list one file per line in a text file called mergelist.txt (or whatever you want to call it), i.e.:

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

Then use that as the input, a la:

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

This is by far the easiest and fastest way to do what you want since it won't re-encode the files, just line them up one after another.

查看更多
Emotional °昔
3楼-- · 2019-06-27 05:12

You can find your answer here in this old question:

Concatenate two mp4 files using ffmpeg

This answer is not restricted to MP4. But it will depend on the file format you wanna concatenate!

Once you have your new VIDEO file and AUDIO file, to merge them together:

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

查看更多
登录 后发表回答