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
1Unfortunately, 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 – 2011-01-18T17:42:14.093