Free tools
How to Extract Frames From a Video: One Sharp Still or Every Frame
Pull one exact frame or every frame out of a video as PNG or JPG, in your browser, with VLC or with ffmpeg. Timings and file sizes from our test on November 5, 2026.
Video examples here were generated on Cicadas and keep their model, settings and date. Cicadas earns money when you generate with these models. How we test

Short answer: to get one still, pick the exact second and save it as PNG; to get many, sample every N seconds, or at the clip's own frame rate for every frame, and save JPG so the files stay small. Our free video to frames tool does both in the browser without uploading the file. VLC and ffmpeg do it on your computer, and ffmpeg is the better choice for hundreds of frames.
We make Cicadas. On November 5, 2026 we ran the same clip through our tool on cicadas.ai (headless Chrome on a Mac) and through ffmpeg 6.0 on the same machine, and timed both. The clip is one of ours: a coffee cup and croissant made with Kling 3.0 Pro, 1920 by 1080, 24 frames per second, 5.04 seconds, 1.4 MB. Its first frame is the picture at the top of this post.
Three ways to take frames from a video
| What you want | Setting | Our result on the 5-second 1080p clip |
|---|---|---|
| One exact still | One timestamp, 2.5 s, PNG | 1 frame, 3.1 MB, ready in 0.3 seconds |
| A contact sheet, one per second | Every N seconds, 1, PNG | 6 frames (0 to 5 s), 18.2 MB ZIP, 1.3 seconds |
| The same, small files | Every N seconds, 1, JPG | 6 frames, 2.0 MB ZIP, 1.0 second |
| Every frame | Sample by frame rate, 24, JPG | 121 frames, 40.7 MB ZIP, 16.5 seconds |
| Every frame as PNG | Sample by frame rate, 24, PNG | Stopped at 44 of 121 frames (128 MB limit) |
Each frame comes out at the video's own size, so a 1080p clip gives 1920 by 1080 stills and a phone clip gives phone-sized ones. The files are named after the video and the time they were taken from, such as coffee-steam_00-02-500.png for 2.5 seconds, so a folder of frames stays in order.
How to extract one frame at an exact second
- Open video to frames and choose the video (MP4, MOV or WebM; anything your browser can play).
- Under "Which frames", choose "One timestamp" and type the second, for example 2.5.
- Choose PNG and click "Extract frames", then "Download".
We checked which frame the browser gave us. At 24 frames per second, 2.5 seconds is frame 60, and ffmpeg's -ss 2.5 returned frame 60 too. Compared with ffmpeg's PNG of that frame, the browser's PNG scored 38.5 dB PSNR, against 35.4 and 34.9 dB for the frames just before and after it. Same frame, with small colour-conversion differences between the two decoders, which you will not see.
If you do not know the exact second, play the clip in any player, pause near the moment, read the time, then try that time and a tenth of a second either side. Three quick extracts cost nothing and usually settle it.
How to split a video into frames
"Every N seconds" is for picking: one frame per second, or one every 0.5 seconds, gives you a sheet to scan for the best moment, a thumbnail or a storyboard. "Sample by frame rate" at the clip's own rate (24, 25, 30 or 60) gives every frame. Browsers do not report a video's real frame rate, so type it yourself if you know it; a phone clip is usually 30 or 60.
One run makes up to 600 frames and keeps up to 128 MB of images, because everything lives in the browser's memory until you download it. A 1080p PNG frame was about 3 MB in our test, so every-frame PNG runs stop after roughly 40 frames at that size. Switch to JPG, which the tool saves at 92% quality, or take a shorter stretch. For a whole minute of every frame, use ffmpeg below.
PNG or JPG?
PNG keeps every pixel the decoder produced. Use it for a still you will edit, print, cut out, upscale or use as the first frame of an AI video. JPG is about a ninth of the size here (0.33 MB against 3 MB per 1080p frame) and fine for reference sheets, thumbnails you will compress anyway, and datasets. Neither format adds detail: the frame can only be as sharp as the video it came from.
Why video stills come out blurry, and how to get a sharp one
- Motion. Each video frame is exposed for a fraction of a second, so anything moving smears. Step a few frames either side of your moment and keep the one where the hands, hair or camera pause. A one-per-second sheet at 0.5-second intervals finds those pauses fast.
- Compression. Video is stored as a few complete pictures and many frames described as changes from them. Our test clip had a single complete picture (keyframe) in five seconds; the other 120 frames were rebuilt from it. Low-bitrate copies show this as soft detail and blocks, most of all in frames full of motion.
- A re-uploaded copy. A clip saved back from a social app or a messenger has usually been compressed again at a lower bitrate. Extract from the original file whenever you have it.
- The wrong size. A screenshot of a paused player records your screen, not the video, so a 4K clip in a small window gives a small, softened still, with the player's buttons in it. A frame extractor reads the video's own pixels.
Other ways: phone, VLC and ffmpeg
On a phone. Google Photos on Android has an "Export frame" option in its video editor: open the video, tap Edit, move to the moment and export the frame (Google Photos Help, read November 5, 2026). Otherwise a screenshot of the paused video works, with the screen-size limit above. The Cicadas frame extractor also runs in a phone browser, though long clips at full resolution need more memory than a phone tab usually has.
VLC. Pause on the frame and choose Video, then Take Snapshot; VLC saves a PNG by default. For a frame every so often, VLC's scene video filter (Preferences, Video, Filters, Scene filter) saves one image every N frames, its "recording ratio", 50 by default (VideoLAN wiki, read November 5, 2026). VLC's own documentation notes that scaling, cropping, subtitles and other filters can change the snapshot, so turn them off first.
ffmpeg. The commands below are the ones we ran on the test clip, with ffmpeg 6.0:
| Command | What it gave us |
|---|---|
ffmpeg -ss 2.5 -i in.mp4 -frames:v 1 frame.png | Frame 60, the same one the browser picked |
ffmpeg -i in.mp4 -vf fps=1 frame_%04d.png | 5 PNGs, in 0.57 seconds |
ffmpeg -i in.mp4 frame_%04d.png | All 121 frames, 367 MB of PNG, in 8.1 seconds |
ffmpeg -i in.mp4 -q:v 2 frame_%04d.jpg | All 121 frames, 28 MB of JPG, in 1.5 seconds |
The fps=1 filter gave five frames where our tool gave six, because ffmpeg places its samples in the middle of each second while the tool starts at 0 and also takes the 5-second mark. If you need frames at exact times, give each time with -ss, or use the browser tool's interval mode, which names every file by its time.
Use a frame as the start or end of an AI video
A clean still is also the input most AI video models want. Extract the first and last moments you like, and first and last frame video makes the motion between them; one frame on its own goes to image to video, and animate a photo is the shorter route for a single still. Use PNG here, at the video's full size. Our coffee product video guide shows the clip this test used being made from one product still.
To hide a face or a number plate in the clip before you take stills from it, see our guide to blurring part of a video.
If you need the moving picture rather than stills, video to GIF turns a stretch of the clip into a looping GIF in the same way, on your device.
Questions
How do I extract a single frame from a video?
Open the video in a frame extractor, choose One timestamp, type the second you want (2.5 for two and a half seconds) and extract it as PNG. In our test the browser tool returned the same frame that ffmpeg returns for that time, a 1920 by 1080 PNG, in 0.3 seconds.
Should I save video frames as PNG or JPG?
PNG when you will edit the still, print it or feed it to an AI video model; JPG when you need many frames. From our 1080p test clip a PNG frame was about 3 MB and a JPG about 0.33 MB, and the JPGs looked the same to us at normal viewing size.
How do I split a video into all of its frames?
Sample at the clip's own frame rate. Our 5-second, 24 fps clip gave 121 frames: as JPG they fit in one 40.7 MB ZIP in the browser, while as PNG the browser tool stopped at 44 frames because it keeps at most 128 MB of images per run. For long clips, ffmpeg writes every frame straight to disk.
Why does a frame taken from a video look blurry?
Usually because the camera or the subject was moving during that frame, or because the copy you are using was compressed again after it was uploaded somewhere. Take the frame from the original file, and step a few frames either side of the moment you want to find one where the motion pauses.
Is the video uploaded when I extract frames online?
Not on Cicadas: the video is decoded by your browser and the frames are drawn on your device. During our test the page sent no upload request while it extracted 165 frames from the same clip.
How we tested
On November 5, 2026 we opened cicadas.ai/video-to-frames in Chrome for Testing 1234 (headless, through Playwright) on an Apple-silicon Mac, loaded the clip and ran the six settings in the first table, timing from the click on "Extract frames" to the last frame, and saving each ZIP. We counted the files in each ZIP and logged every request the page made: none carried the video. The ffmpeg runs used the same file and the same machine. We compared frames with ffmpeg's PSNR filter. Timings depend on your computer and browser; the frame counts and sizes do not.
Pages we read on November 5, 2026: Google Photos Help, VLC scene filter (VideoLAN wiki).