22

I have two *.avi files:

sequence1.avi
sequence2.avi

How do I merge these two files using a command-line or GUI?

  • me curious why prefer ffmpeg? – Tshepang Dec 31 '10 at 7:32
  • ffmpeg is a very powerfull tool, so I thought it would be capable of merging two files together. However, as you can see from Micheal's answer we went with Avimerge. – Stefan Dec 31 '10 at 8:33
  • 1
    You can use ffmpeg command if you like (as it is not GUI I don't post it as answer) IIRC. – Maciej Piechotka Dec 31 '10 at 9:59
  • @Maciej You might post your answer here. – Tshepang Dec 31 '10 at 11:36
  • excuse me, but you still didn't tell me why ffmpeg – Tshepang Dec 31 '10 at 12:29
30

There's a dedicated tool to do this, avimerge:

avimerge -o cd.avi -i cd1.avi cd2.avi

If not installed, install transcode: Avimerge is part of transcode package: https://manpages.debian.org/jessie/transcode/avimerge.1.en.html http://manpages.ubuntu.com/manpages/bionic/man1/avimerge.1.html

10

Easy with mencoder (shipped with mplayer in Arch Linux):

$ mencoder -oac copy -ovc copy video1.avi video2.avi -o final.avi
1

Avidemux can paste two videos together, at least if they have the same resolution and a few other constraints. Use “Append” from the “File” menu.

1

You can merge avi files with avimerge from Transcode package:

avimerge -i file1.avi file2.avi -o output.avi

I know that it isn't GUI tool, but to have GUI you could use that script:

#!/bin/bash
file1=`kdialog --getopenfilename ~/ \*.avi`
file2=`kdialog --getopenfilename ~/ \*.avi`
output=`kdialog --getsavefilename ~/ \*.avi`
avimerge -i $file1 $file2 -o $output

It uses kdialog so it's for KDE users, GNOME users should modify it to use Zenity...

  • Your thirst for going ahead and give the Answer regardless should have been quenched by going here: unix.stackexchange.com/questions/2273/…. Also, see my Comment on the Accepted Answer. – Tshepang Jan 2 '11 at 7:43
  • Oh, sorry - somehow I missed that question... – pbm Jan 2 '11 at 9:30
0

What about using ffmpeg concat like that:

ffmpeg -f concat -i \
<(for f in $PWD/*.avi;do echo "file '$f'";done) \
-c copy output.avi

If you get an error Unsafe file name add -safe 0 between concat and -i.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.