10/23/2025

Extract a single frame, thumbnail, or image sequence from video with FFmpeg. Includes JPG and PNG output, timestamp seeking, and batch frame extraction.

How to Extract a Frame from a Video with FFmpeg

FFmpeg can save a precise video frame as a JPG or PNG image. This is useful for thumbnails, cover images, previews, screenshots, and visual QA.

For the short command page, see Extract a Frame from Video with FFmpeg.

Extract One Frame at a Timestamp

ffmpeg -ss 00:00:15 -i input.mp4 -frames:v 1 thumbnail.jpg

This saves one frame from the 15-second mark as thumbnail.jpg.

High-Quality JPG Thumbnail

ffmpeg -ss 00:00:15 -i input.mp4 -frames:v 1 -q:v 2 thumbnail.jpg

For JPG output, lower -q:v values mean higher quality. 2 is a common high-quality choice.

Extract a PNG Frame

Use PNG when you want lossless image output:

ffmpeg -ss 00:00:15 -i input.mp4 -frames:v 1 frame.png

PNG files are often larger than JPG, but they avoid JPG compression artifacts.

Extract One Frame Every 10 Seconds

ffmpeg -i input.mp4 -vf "fps=1/10" frame_%03d.jpg

This creates files such as frame_001.jpg, frame_002.jpg, and frame_003.jpg.

What the Options Mean

Option Meaning
-ss 00:00:15 Seeks to the timestamp before extracting the frame.
-frames:v 1 Outputs exactly one video frame.
-q:v 2 Sets high JPG quality.
fps=1/10 Extracts one frame every 10 seconds.
%03d Generates numbered output filenames with three digits.

Common Problems

The frame is slightly different from expected.
Put -ss after -i for more accurate seeking, at the cost of speed:

ffmpeg -i input.mp4 -ss 00:00:15 -frames:v 1 thumbnail.jpg

The JPG looks too compressed.
Use -q:v 2 or switch to PNG.

Many frames overwrite each other.
Use a numbered filename pattern such as frame_%03d.jpg.

Related FFmpeg Pages