All posts
TutorialApril 28, 20265 min read

How to extract photos and frames from a video

Pull a still from a video — on iPhone, Android, in DaVinci Resolve, with FFmpeg, or from a YouTube URL. The right tool depends on whether you want one frame or every frame.

By Dawid Sibinski

"Extract a photo from a video" usually means one of two things: capture a single frame at a specific moment, or batch-export every frame for analysis. Different tools handle each well.

iPhone, single frame

Photos app: open the video, scrub to the frame, screenshot. The screenshot lives in your camera roll at the resolution of the video, not your screen — you don't lose quality unless the video was 4K (in which case the screenshot tops out at the screen resolution).

For full-resolution single-frame export from a 4K iPhone video, AirDrop the video to a Mac and use QuickTime → Edit → Copy at the right scrub point, then Edit → Paste into Preview.

Android, single frame

Google Photos has a built-in frame export: open the video, tap the three dots → Export frame. Output is at video resolution.

macOS / Windows, single frame

VLC: Video → Take Snapshot at the right moment. Saves to the snapshots folder configured in Preferences. Format and size are configurable.

QuickTime on Mac: Edit → Copy at the playhead, paste into Preview as new from clipboard.

FFmpeg: every frame, scripted

The reference command-line tool. Single frame at a specific second:

ffmpeg -ss 00:01:23 -i video.mp4 -frames:v 1 frame.png

Every frame as PNG (warning: this fills your disk fast on long videos):

ffmpeg -i video.mp4 frame_%04d.png

One frame per second (good for analysis):

ffmpeg -i video.mp4 -vf fps=1 frame_%04d.png

Keyframes only (much smaller batch, only the I-frames):

ffmpeg -skip_frame nokey -i video.mp4 -vsync vfr -f image2 keyframe_%03d.png

DaVinci Resolve

On the timeline, position the playhead at the frame you want, right-click → Grab Still. The still appears in the Stills gallery in the Color page. Right-click → Export sends it to disk at full resolution. Free version supports JPEG and PNG; Studio adds DPX and EXR.

From a YouTube URL

yt-dlp -x doesn't extract frames, but yt-dlp combined with FFmpeg does. Pull the video first (yt-dlp "https://youtube.com/watch?v=..."), then run FFmpeg against the local file. There's no clean way to extract a frame without downloading at least the segment that contains it.

Going further: the right frame

If the goal isn't a specific timestamp but "the frame that shows X" — a slide, a face, a license plate — extract every Nth frame with FFmpeg, then run the batch through an image classifier or extractor. ExtractFox's image data extractor handles slide and document captures cleanly when you pipe still frames in.

More on tutorial

Stop reading, start extracting

Drop a PDF or image into ExtractFox and get structured data back in seconds.

Try a free extraction →