Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .