Turn images into a video (slideshow)
ffmpeg can assemble a series of photos into a video slideshow. Just number them (photo001.jpg, photo002.jpg…), choose how long each one is shown and the video format: the images are fitted without distortion.
Updated on
%03d stands for a 3-digit number: photo001.jpg, photo002.jpg, photo003.jpg… Use %02d for 2 digits, %04d for 4.
How to use it
- Install ffmpeg if you haven't already.
- Put your images in a folder, numbered in the order you want them displayed, then open a terminal in that folder.
- Copy the generated command, adjust the file names if needed, then run it.
- Open the resulting file to check the result.
How the command works
The -framerate 1/3 option means one image is read every 3 seconds. The final video is then written at 30 frames per second (fps), a rate every player accepts. The filter scales each image without distorting it, then centers it on a solid background.
ffmpeg -framerate 1/3 -i "photo%03d.jpg" -r 30 slideshow.mp4
Add music
Once the slideshow is created, you can add a soundtrack to it.
Frequently asked questions
My photos aren't numbered, what can I do?
Rename them in sequence. On Windows, select them all in File Explorer, right-click, then choose Rename: type "photo" and Windows adds (1), (2)… which you'll need to adjust; on Linux or macOS, a small renaming script does the job. You can also use the "*.jpg" pattern with the -pattern_type glob option on Linux and macOS.
My images are different sizes, is that a problem?
No: each one is fitted to the video size while keeping its proportions, with bars in the chosen color if the aspect ratios differ.
How do I add music?
Generate the slideshow first, then add the audio using the dedicated page for adding music to a video.
How do I make fade transitions?
This command chains the images together without transitions. For fades, you need the more complex xfade filter: video editing software is then simpler.