How to Extract Frames from a Video

Every way to save a still frame from a video on Windows, Mac, iPhone and Android, with VLC or ffmpeg, and what each method can and cannot do.

Private by design: everything runs in your browser and nothing is uploaded. Your video never leaves your device. Your last settings are kept only in this browser: .

This guide explains how to extract frames from video on every common device. Every computer and phone can get a still image out of a video, but the built-in methods differ a lot in quality. Some save the real frame at full resolution; others only take a screenshot of the player, which is limited to the size of your screen. Below is what works on each device, with the limits of each method. Menu names were checked against the vendors’ own help pages on 25 October 2026; apps change, so if a menu has moved, look for the same words nearby.

The quickest way to extract frames from video on any device

  1. Open the video frame extractor in any current browser.
  2. Choose your video file. It is read on your device and not uploaded.
  3. Step to the frame you want with the slider or the arrow keys, or pick a mode such as one frame every N seconds.
  4. Download the frame as PNG or JPG, or all selected frames as a ZIP.

That works the same on Windows, Mac, Linux, Android and iPhone, because it runs in the browser. The sections below cover the methods built into each system and the free desktop tools.

Windows

With VLC (free, also for Mac and Linux): open the video, pause on the frame and choose Video › Take Snapshot, or press Shift + S. VLC saves the frame at the video’s resolution as a PNG in your Pictures folder. Press E to step forward one frame at a time (VideoLAN hotkey list).

With a screenshot: pause the video in any player, press Windows + Shift + S and drag over the picture. Quick, but the image is only as big as the player window and may include the player controls.

Limits: neither method saves a series of frames. For that, use ffmpeg (below) or an online extractor.

Mac

With QuickTime Player: open the video, then press ← or → to stop playback and move one frame back or forward (Apple lists these shortcuts in the QuickTime Player User Guide). When the frame is on screen, take a screenshot of the window with Shift + Command + 4, then press Space and click the window.

With VLC: as on Windows, Video › Take Snapshot; the shortcut on a Mac is Command + Option + S. This saves the full-resolution frame.

Limits: a screenshot is limited by the window size, so a 4K video in a small window gives a small image. Play the video at actual size (Command + 1 in QuickTime) or use VLC when resolution matters.

iPhone

Pause the video in Photos and take a screenshot: press the side button and the volume-up button together (on iPhones with a Home button, the side button and the Home button). Hide the playback controls first by tapping the video.

Limits: the screenshot has the screen’s resolution and shape, not the video’s, and it is easy to land a frame early or late. To save the real frame, open the video in Safari on this site; files stay on the phone.

Android

With Google Photos: open the video, tap Edit, move to the frame you want and tap Export frame (Google Photos Help, “Edit your videos with Google Photos”).

Limits: the button is in the video editor, which some phones replace with the manufacturer’s own gallery; positioning to an exact frame is fiddly on a touch screen. A screenshot (usually Power + Volume down) works everywhere but has the same resolution limits as on iPhone.

VLC: save many frames automatically

VLC can also write frames continuously using its scene filter, described on the VideoLAN wiki (“How to create a thumbnail from a video”). From the command line:

vlc input.mp4 --video-filter=scene --vout=dummy --scene-format=png --scene-ratio=30 --scene-prefix=frame --scene-path=/path/to/folder vlc://quit

This saves one frame out of every 30 (one per second for a 30 fps video). VLC plays through the file to do this, which is slow for long videos, and the setting is per frame count rather than per second. ffmpeg is usually the better choice for this job.

ffmpeg: precise and scriptable

ffmpeg is a free command-line program for Windows, Mac and Linux, and the most reliable way to extract many frames. Pick what you want in the builder below and copy the command; the default values match the examples underneath.

ffmpeg command builder

the file stays on your device; only its name and length are used

ffmpeg -i input.mp4 -fps_mode passthrough input_%05d.png
GoalCommand
Every frameffmpeg -i input.mp4 -fps_mode passthrough input_%05d.png
One frame per secondffmpeg -i input.mp4 -vf "fps=1" input_%04d.png
One frame at 4.1 sffmpeg -ss 4.1 -i input.mp4 -frames:v 1 input_at_4_1s.png
Last frameffmpeg -sseof -3 -i input.mp4 -update 1 input_last_frame.png

-fps_mode passthrough writes each decoded frame once, without duplicating or dropping frames to fit a constant rate, which matters for phone videos with a variable frame rate. In the last-frame command, ffmpeg decodes the final three seconds and keeps overwriting the same file, so the file left at the end is the last frame.

When to use an online tool instead

If you are still deciding how to extract frames from video, the choice is simple. Use an online tool when you do not want to install anything, need the exact frame at full resolution on a phone, or want frames at regular intervals without learning ffmpeg. This site runs in the browser and does not upload your video:

Use ffmpeg for formats browsers cannot read (AVI, some MKV and professional codecs), for very large batches, or when you need to script the job.

Example results

We ran the commands above with ffmpeg 7.1 on our sample video (10 s, 30 fps, 300 frames):

CommandFiles written
Every frame300
One frame per second10
One frame at 4.1 s1
Last frame1

The same counts are produced in the browser by the video frame extractor with Every frame and One frame every 1 second.

Frequently asked questions

What is the easiest way to extract a frame from a video?

Open the video in an online tool that works in the browser, step to the frame and download it; no installation is needed.

On this site the video is not uploaded: the video frame extractor decodes it on your device.

Why is a screenshot of a video lower quality than the frame?

A screenshot captures your screen, so it is limited to the size of the player window and includes its scaling.

Methods that decode the frame from the file, such as VLC snapshots, ffmpeg or this site, keep the video’s full resolution.

How do I extract every frame from a video with ffmpeg?

Run ffmpeg -i input.mp4 -fps_mode passthrough input_%05d.png, which writes each decoded frame as a numbered PNG.

The command builder on this page writes the command for other cases, such as one frame per second or a single frame at a given time.

How do I extract one frame per second?

With ffmpeg, use ffmpeg -i input.mp4 -vf "fps=1" input_%04d.png; online, choose “One frame every N seconds” with N = 1.

A 10-minute video gives 600 images.

Can I extract frames on an iPhone?

The built-in way is a screenshot of the paused video, which is limited to the screen resolution.

For the full-resolution frame, open this site in Safari; the video stays on your phone.

Which video formats can a browser read?

Current browsers read MP4 and MOV with H.264, and WebM with VP9 or AV1; support for HEVC (H.265) depends on the browser and device.

For AVI, older MKV files or professional codecs, use ffmpeg.