Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Concat multiple video and audio files with ffmpeg

Tags:

ffmpeg

codec

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?

like image 248
Dan Ramos Avatar asked Sep 10 '13 05:09

Dan Ramos


People also ask

How do I combine two videos in android programmatically ffmpeg?

ffmpeg -f concat -i mylist.txt -c copy output.mp4 This process is a way of concatenating the files and not re-encoding. Hence, it should be done speedily & conveniently. If there is no error message, you are sure to receive a final merged video named by 'output. mp4' in the MP4 folder.


2 Answers

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.

like image 176
Justin Buser Avatar answered Sep 22 '22 07:09

Justin Buser


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

like image 41
Wagner Patriota Avatar answered Sep 22 '22 07:09

Wagner Patriota