Inspired by LaTeX and advanced automation approaches I've learned thanks DevOps, I consider to explore whether there is a better way to create video tutorials than just using screencam.

Main main objective is to have better maintainability and flexibility i.e. to update single parts either add audio tracks in more languages.

What I look for is a kind of composer software which would allow me to:

  • compose which screenshot is shown how long
  • add subtitles from a standard format
  • generate a standard MPEG4 video

Side notes:

  • I prefer video format over of simple (PDF) slide show to have the audio track.
  • Operating system preferrable Linux, but Windows would do as well
  • I look for free open source software
  • Which operating system? Do you have a budget, or must it be gratis? Please read How to Ask
    – Mawg
    Commented Sep 20, 2018 at 12:57

2 Answers 2


You can script all of the above with MoviePy where you can:

  • Generate a sequence of movie clips from static images, (screen shots), saved in a number of formats.
  • Ditto with video clips in multiple formats
  • You could even load the Audio for a given clip, determine its length then generate the video clip the same length, (often an issue with multi language videos as something might take a lot longer to say in one language than another).
  • Resize all of the clips to the same dimentions.
  • Annotate the video clips with text overlays, (requires ImageMagick).
  • Add Audio tracks
  • Join the clips together into a video file in a number of formats including MP4 format.

It relies on Python (which you will need to install if you are Windows) & FFMPEG (which it downloads and installs on first use).

It would be a fairly simple task to put together a script that takes in a list of images and a language tag then looks in a directory matching the language tag for the audio tracks to match the images then generates your video for you.

  • Free, Gratis & Open Source
  • Cross Platform (works on Windows, OS-X, Linux & others)
  • hi, @Steve Barnes, thanks - I've found the docs where they allow to load a sequence of images, but do not see how I can set a custom duration for each one for my slideshow. Sure, in an OSS it is codable, but if you know more, please comment.
    – J. Doe
    Commented Sep 19, 2018 at 12:42
  • 1
    @J.Doe class moviepy.video.VideoClip.ImageClip(img, ismask=False, transparent=True, fromalpha=False, duration=None) has a duration or with a default image clip you can use its .set_duration() method. Commented Sep 19, 2018 at 16:09

3blue1brown on YouTube built something that's a bit more involved than what you're looking for, but it might be interesting to look at: https://github.com/3b1b/manim ("Animation engine for explanatory math videos")

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.