I'm looking for an open-source video editing program that can combine 2 videos into one single video where both video are playing along each other side by side (see example here)

One video is made from my own set of images (export from powerpoint presentation) and has therefore no sound and speed can be adjusted if necessary

Any suggestions ?

  • 1
    Unfortunately, open source video editors are few and far between. Unlike most other common application types (like audio editors, video players, text editors, etc), the video editing application market has been largely untouched by the open source community. I don't know if you'll find what you're looking for if you limit yourself to strictly open-source software.
    – qJake
    Jan 18, 2011 at 17:42

3 Answers 3


The merging behavior you describe is called Picture in Picture (PiP), or more specifically it's called Picture and Picture (PaP, P&P), commonly referred to as Picture by Picture (PbP).

For Linux, you could try use Cinelerra to create PIP videos.

For Windows, you are going to face a lot of trials/shareware so your best bet is professional software.

For programming your own solution, you might be able to use this OpenCV example.

  • 1
    thanks a lot ! not knowing how the technique is called was a little problematic for me to search for solution. Now that I know the name, I can find lots of stuff for it. thanks a bunch Jan 19, 2011 at 10:18

VideoPad Video Editor can do this I believe...

  • will have a look at it, cheers Jan 19, 2011 at 10:29
  • Yeah, I passed along that one while searching and I thought I saw a tutorial for it. But didn't list it because it looks like a trial... Jan 19, 2011 at 13:58

ffmpeg can do anything :D

Assuming both video are the same resolution (input1.mp4 will end up on the left, input2.mp4 on the right, this will take the audio from input1.mp4):

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex \
'[0:v]pad=iw*2:ih:0:0[left];[left][1:v]overlay=W/2:0[out]' \
-map [out] -map 0:a -c:a copy \
-c:v libx264 -crf 23 -preset veryfast output.mp4

First, the pad filter takes the video from input1.mp4, [0:v], and doubles its width (adding an extra load of black to the right), creating an output called [left]. Then, the overlay filter puts the video from input2.mp4, [1:v] over the black area on the right of [left], creating an output called [out]. -map [out] -map 0:a tells ffmpeg to use [out] and the audio from input1.mp4 in the final encode. All the rest of it is standard encoding options.

To achieve an effect similar to the one in the video linked in the question (so, one smaller video on the left at the top corner, larger video on the right), you have to know the resolution of the smaller video. Let's say it has a width of 320:

ffmpeg -i input-large.mp4 -i input-small.mp4 -filter_complex \
'[0:v]pad=iw+320:ih:320:0[right];[right][1:v]overlay=0:0[out]' \
-map [out] -map 0:a -c:a copy \
-c:v libx264 -crf 23 -preset veryfast output.mp4

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.