Extract all frames from a video
To create a contact sheet of thumbnails, pick the best frame of a sequence or prepare a timelapse, ffmpeg can extract a series of numbered frames: one every few seconds, or every frame of the video.
Updated on
How to use it
- Install ffmpeg if you haven't already.
- Create an empty folder, put the video in it, 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.
The fps filter
The fps filter sets how many frames are kept per second: fps=1 keeps one frame per second, fps=1/5 one every five seconds. Without this filter, with the passthrough option, ffmpeg writes every frame of the video, without duplicating or dropping any.
Just one frame?
For a screenshot at a specific moment, the dedicated page is simpler.
Frequently asked questions
How many frames will I get?
At one frame per second, a 10-minute video gives 600. With "Every frame of the video", a 10-minute video at 30 frames per second (fps) gives 18,000: check your disk space before you start.
How are the images named?
With the prefix you chose followed by a five-digit number: image_00001.jpg, image_00002.jpg, and so on. Alphabetical order therefore matches chronological order.
Can I reduce the size of the images?
Yes: add a resize to the filter, for example "fps=1,scale=640:-2" in place of "fps=1", for thumbnails 640 pixels wide.