Every video is a sequence of still images shown fast enough that your eye reads them as motion. Extracting frames means reaching into that sequence and pulling individual images back out as JPEG, PNG or WebP files.
People do this for a lot of reasons. A photographer wants the one frame where nobody blinked. A student wants every slide from a two-hour lecture recording. An engineer wants ten thousand labelled images to train a model. An editor wants a reference still to match a colour grade against. The underlying operation is identical in all four cases, and it is much simpler than most people expect.
This guide covers how to do it in a browser without installing anything, what actually happens under the hood, and the handful of things that go wrong and why.
The fastest method: extract in your browser
Modern browsers already contain everything needed to do this. They ship with video decoders for the common codecs, and they expose a canvas API that can capture whatever the decoder produces. Put those two together and you have a frame extractor with no server involved at any point.
That last part matters more than it sounds. Because the work happens on your machine, your file is never uploaded, there is no wait while it transfers, no file size ceiling imposed by someone else’s server, and no copy of your footage sitting in a stranger’s storage bucket afterwards.
- 1Open the extractor and select your video. MP4, MOV, MKV, WebM, AVI, FLV, MTS, M2TS, M4V, OGV and 3GP are all accepted.
- 2Once the file loads you will see its duration. Decide how many frames you want across that duration - for a two-minute video where one frame every ten seconds is enough, that is twelve.
- 3Pick an output format. JPEG for general use, PNG when the images will be edited or used as training data, WebP when they are going onto a web page.
- 4Click Extract Frames. A preview gallery fills in as it works, and you can abort at any point without losing what has already been captured.
- 5Click Download ZIP. Every frame arrives in one archive, named in sequence.

Try FrameRipper - free, no upload
Extract frames from any video directly in your browser. No sign-up, no file size limits.
Open FrameRipperHow frames are chosen
Frames are sampled at even intervals across the whole video, and specifically at the midpoint of each interval. The formula is t = (duration / count) x (i + 0.5), where i counts from zero.
That half-interval offset is deliberate and worth understanding, because it explains a result that otherwise looks wrong. Sampling from the start of each segment would put your first capture at t=0, and the first frame of a video is very often black, a fade-in, or a title card. It is a real frame of the video, just not one anybody wants. Offsetting by half a segment means every capture lands inside real content.
A worked example: a 60-second video at 10 frames gives you captures at 3s, 9s, 15s, 21s, 27s, 33s, 39s, 45s, 51s and 57s. Notice there is no capture at 0s and none at exactly 60s. The final capture is also clamped fractionally short of the end, because seeking to the exact last timestamp fails on a surprising number of files.
One consequence catches people out: setting the count to 1 does not give you the opening frame. It gives you the exact middle of the video, which is usually a far better single representative image.
Deciding how many frames you need
The right number depends on how fast the content changes, not on how long the video runs. A ninety-minute lecture where slides advance every two minutes needs fewer captures than a thirty-second product clip where the framing never settles.
The easier way to think about it is to pick an interval rather than a count, then convert. Divide the duration in seconds by the gap you want. A twelve-minute video sampled every twenty seconds needs thirty-six frames.
| What you are capturing | Interval | 10-minute video |
|---|---|---|
| Lecture slides | 20-30 seconds | 20-30 frames |
| Interview or talking head | 60 seconds | 10 frames |
| Sports or action | 1-2 seconds | 300-600 frames |
| Editing reference stills | 5 seconds | 120 frames |
| Finding one specific moment | 0.5-1 second | 600-1,200 frames |
Over-sampling costs almost nothing. Extraction is fast, and deleting the frames you do not want takes seconds. Missing the moment you needed means running the whole job again.
Which formats actually work
This is where most problems start, and the root cause is almost always the same misunderstanding: a file extension names the container, not the codec.
The container is the wrapper holding video, audio, subtitles and metadata together. The codec is the compression scheme used for the picture itself. Browsers decode codecs. They do not care much about containers. This is why two files that both end in .mp4 can behave completely differently.
An .mp4 might hold H.264, HEVC or AV1. A .mov from an iPhone holds H.264 or HEVC depending on one camera setting. An .mkv can hold almost anything. So "does MP4 work?" has no single answer - it depends what is inside.
| Codec | Chrome / Edge | Firefox | Safari |
|---|---|---|---|
| H.264 (most common) | Yes | Yes | Yes |
| VP8 / VP9 (WebM) | Yes | Yes | Yes (14+) |
| HEVC / H.265 | Hardware dependent | No | Yes |
| AV1 | Yes (70+) | Yes (67+) | Partial (17+) |
| ProRes / DNxHD | No | No | No |
When a file will not load
If the tool refuses your file, the cause is nearly always a codec the browser cannot decode rather than a corrupt file. Three fixes, in order of effort.
Try a different browser first
This costs thirty seconds and solves the most common case. iPhone footage that fails in Chrome on Windows will usually open in Safari on a Mac, because Safari decodes HEVC natively and Chrome depends on hardware support being present.
Check what codec you actually have
On a Mac, open the file in QuickTime Player and choose Window then Show Movie Inspector. On Windows, right-click the file, open Properties, and look at the Details tab. VLC shows the same thing under Tools then Codec Information on any platform.
Re-encode to H.264
HandBrake is free, open source, and available for Windows, macOS and Linux. Load the file, choose the Fast 1080p30 preset, and export. The result is H.264 in an MP4 container, which decodes everywhere. Quality loss at that preset is negligible for still extraction.
If you are working with log or 10-bit footage from a cinema camera, apply your colour transform during this step. Otherwise the extracted frames will look flat and washed out, and correcting them afterwards is harder than doing it once at the source.
Picking an output format
JPEG is the right default. It opens everywhere, the files are small, and at high quality it looks the same as lossless on normal footage. PNG is worth the extra size when you will edit and re-save the frames, when they are training data, or when the source is slides or a screen recording, where it is often both smaller and sharper than JPEG. WebP suits images that are going straight onto a web page.
The full comparison, with typical file sizes for different kinds of footage, is in JPEG vs PNG vs WebP for video frames.
Try FrameRipper - free, no upload
Extract frames from any video directly in your browser. No sign-up, no file size limits.
Open FrameRipperDoes it work offline?
Yes. Once the page has loaded, extraction makes no network requests, because the decoder and the canvas are both part of your browser. Load the page, switch off Wi-Fi, and it behaves exactly the same.
That is what makes it usable for confidential footage. The privacy guide shows how to check it yourself in developer tools.
The limits worth knowing about
A single extraction is capped at 10,000 frames, because every frame is held in memory until the ZIP is assembled and browsers run out of room beyond that. High-resolution sources can hit memory trouble sooner, so for a dense sample of a long 4K video, split the job into a few runs.
The other real limit is codec support, which belongs to your browser rather than to any tool. No browser decodes ProRes or DNxHD, and no browser-based tool will change that.
When to use FFmpeg instead
Browser extraction stops where FFmpeg starts: codecs browsers cannot decode, scene-change detection, exact frame numbers, and unattended batch jobs across many files.
If any of those apply, the FFmpeg comparison has the commands. For a few dozen stills from a file you can already play, the browser is quicker.