90.4 Video Concatenate or Join


Two or more mp4 video files can be joined using mkvmerge to output a Matroska (mkv) file:

mkvmerge -o output.mkv input1.mp4 + input2.mp4 + input3.mp4

We can also use ffmpeg with the concat filter. This filter expects the argument to -i to name a text file which will list the files to be concatenated, like concat.txt

file 'input1.mp4'
file 'input2.mp4'
file 'input3.mp4'

Using -f to identify the filter as concat and -c to identify the encoder for the video and audio as a copy (i.e., no re-encoding).

$ ffmpeg -f concat -i concat.txt -c copy output.mp4

Other options include using mencoder.

$ mencoder -ovc copy -oac copy video1.avi video2.avi -o video.avi

To join multiple avi files into one avi file we can utilise avimerge:

$ avimerge -i a1.avi a2.avi a3.avi -o a.avi

Experience with this latter approach has the audio of the second file out of sync!

Your donation will support ongoing availability and give you access to the PDF version of this book. Desktop Survival Guides include Data Science, GNU/Linux, and MLHub. Books available on Amazon include Data Mining with Rattle and Essentials of Data Science. Popular open source software includes rattle, wajig, and mlhub. Hosted by Togaware, a pioneer of free and open source software since 1984. Copyright © 1995-2022 Graham.Williams@togaware.com Creative Commons Attribution-ShareAlike 4.0