I have a few stop motion projects that are a collection of images and a few that are just 10 to 40 minute clips of me moving my models through the motions. I'm looking for a simple and free-ish (hopefully not something more than 25-30 dollars) that can do two things.

1) Combine all of those images into a movie file, showing each image for one second. 2) Opening up a movie file and either showing me one second clips I can cut/export into pictures or splitting up a movie file into one second clips I can delete out to create my animation.

I've got a windows laptop and an iPad to work with.

Hitfilm Express and Lightworks seem way to complicated from what I've downloaded and tried, Windows Movie Maker can't even take .mp4 files, and I even tried iMovie for the iPad and I can't seem to split a movie up the way I want it.

Any suggestion is helpful.

Edit 1: Lightworks doesn't allow you to export a still image unless you get the pro version. Hitfilm pro doesn't allow you any export options until you promote their software on your social media. Those two options seem out.

Edit 2: I'm having good initial results with Avidemux as far as capture still frame images go. I haven't tried to re-import 50-100 still images and attempt to create a movie out of those.

3 Answers 3


ffmpeg is a command line tool that is available on Windows and will be able to convert image files into a video.

From the ffmpeg documentation:

For creating a video from many images:

ffmpeg -f image2 -framerate 12 -i foo-%03d.jpeg -s WxH foo.avi

The syntax foo-%03d.jpeg specifies to use a decimal number composed of three digits padded with zeroes to express the sequence number. It is the same syntax supported by the C printf function, but only formats accepting a normal integer are suitable.

When importing an image sequence, -i also supports expanding shell-like wildcard patterns (globbing) internally, by selecting the image2-specific -pattern_type glob option.

  • ffmpeg actually looks really interesting as far as assembling all of those pictures back into a film. I skimmed the link and didn't see how I could force it to only show each image for one second, I'll have to research that more. Commented Jan 31, 2018 at 18:27
  • @WinskiTech I think -framerate 1 should work
    – Jay
    Commented Jan 31, 2018 at 23:14

A free program with GUI that may do as you require is Kdenlive which is a port from Linux. I've run both and found the Linux version to be rather stable, but that might have been prior to the "new" release date of the linked version, which purports to have resolved some of the bugs.

If it doesn't crash on your computer, it will do both items of your request. The graphical interface is intuitive and there are many resources on YouTube and the 'net.

I use Kdenlive primarily to convert thousands of stills to video and it performed flawlessly and quite rapidly, but again, this was on a Linux machine.

.MP4 files are supported.

  • It's a Linux (open source) alternative to Camtasia and Windows Movie Maker and Sony Vegas.
    – onurcano
    Commented Jan 1, 2019 at 9:41

I suggest taking a look at MoviePy which runs under Python and uses FFMPEG, (plus some optional other tools), behind the scenes.

  • All of the software is free, gratis & open source
  • All of the software is cross-platform (Windows, Linux & Mac plus others)
  • You can script frequently done operations
  • You can capture still images &/or short video segments from most movie formats
  • You can assemble your stop motion frames into a movie in most formats

Example of assembling stills

Get all of the .jpg files in the current directory and assemble to a movie.
This assumes that all of the images are named so that when sorted they will be in
the correct order.
import glob
import moviepy.editor as mpy

filelist = glob.glob("*.jpg")  # Obviously there are other wildcards
filelist.sort()  # if you were to supply a list of the files in the order you need skip this
imseq = []  # List to store the image sequences
for fn in filelist:
    imseq.append(mpy.ImageClip(fn, duration=1).resize((640,480))) # You may not need the .resize
movie = mpy.concatenate_videoclips(imseq)
movie.write_videofile('test.mp4', fps=30)  # obviously you can use a better name

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.