I have a few hundred few-second-long video clips (c001.mp4-c999.mp4) and need to merge them into a clip slideshow. This is very easy - I drop them into iMovie and click "slideshow", done!

However - I want to fit more clips in less time. So I was hoping to show 2 clips at once, and stack vertical-video clips side-by-side.

Ideal would be some way to take a script of start times and upper-left positions, and render it to a combined flattened video? (assuming basics like "no resizing" and "later clips are stacked on top of earlier clips if the earlier clip hasn't finished playing yet")

file:c001.mp4, t:0:05:15, x:500, y:0 
file:c002.mp4, t:0:09:25, x:0, y:0
file:c003.mp4, t:0:12:00, x:500, y:0
  • Do they all have the same duration?
    – llogan
    Mar 21, 2019 at 18:15
  • I could make them have the same duration! They don't, but ideally, each clip would play to completion, and if another script line tried to play a clip over it, it would cover it. So it would be my responsibility when building the script to avoid that.
    – Benjamin H
    Mar 21, 2019 at 20:14
  • One method is to use concat filters to make a left side and a right side, then stack with hstack filter. Easy to do, but that doesn't address duration differences so each set may not be synced (not sure if that is an issue for you). Another option is to use sendcmd with overlay. More complicated but you can have more control over timings, but you would have to create a command file (almost similar to your example). Do you have a preference?
    – llogan
    Mar 21, 2019 at 21:13

1 Answer 1


While having some fun in Python programming language I found a library that allows users to write custom code to overlay (possibly) infinite amount of clips.


enter image description here

Hope this helps!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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