Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I would like to combine three (possibly more) video sequences into a composite video, where the sequences are running side-by-side as show below. I do not need to have overlapping pictures although that capability would be desirable)

Can anyone recommend a tool for this?

the picture

share|improve this question
up vote 2 down vote accepted

Any Non-Linear Video Editor

  • Adobe Premiere
  • Adivemux
  • Final Cut

If you're on a Linux Machine there's also

  • Kino
  • Cinelerra
share|improve this answer
do you mean "Avidemux" not "Adivemux"? – quack quixote Nov 17 '09 at 16:42
I download Avidemux; it seems like a useful tool but I still can't see how to compose multiple videos as I asked in the question above – rupello Nov 17 '09 at 20:15
Wrong spelling sorry quack. – Charlls Nov 19 '09 at 20:37

If you can handle some scripting, try AviSynth.

AviSynth outputs .avi video, which can be encoded by your favourite encoder. eg. VirtualDub.

Below is sample script which takes a single file and chops it up into four panels, which are then surrounded by blue margins. It can just as easily handle four different video sources. AviSynth is a very powerful tool, but scripting does not suit everyone.

Mg=8    # Margin:               # must be a multiple of 4
hM=Mg/2 # half Margin           # must be an even number 
pane1H=((inVid.height/8)/2)*2   # round it to an even number
pane1W=((inVid.width   )/2)*2   # round it to an even number
pane2H=((inVid.height/2)/2)*2   # round it to an even number
pane2W=((inVid.width /3)/2)*2   # round it to an even number
pane4H=((inVid.height-pane2H-pane1H)/2)*2 # round it to an even number
####   Crop( clip  ,Left      ,Top           ,-Right     ,-Bottom        ).AddBorders( L  ,T  ,R  ,B  ,Colour  ) 
pane1 =Crop( inVid ,0         ,0             ,-0         ,-pane2H-pane4H ).AddBorders( Mg ,Mg ,Mg ,hM ,$00ffff )
pane2 =Crop( inVid ,0         ,pane1H        ,-pane3W-hM ,-pane4H        ).AddBorders( Mg ,hM ,hM ,hM ,$00ffff )
pane3 =Crop( inVid ,pane2W+hM ,pane1H        ,-0         ,-pane4H        ).AddBorders( hM ,hM ,Mg ,hM ,$00ffff )
pane4 =Crop( inVid ,0         ,pane1H+pane3H ,-0         ,-0             ).AddBorders( Mg ,hM ,Mg ,Mg ,$00ffff )
row2=StackHorizontal(pane2, pane3)
out=StackVertical(row1, StackVertical(row2, row3))
return out
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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