All posts

How to Extract Frames from Any Video (No Software Required)

Archis Vaze7 min readUpdated October 8, 2026

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.

  1. 1Open the extractor and select your video. MP4, MOV, MKV, WebM, AVI, FLV, MTS, M2TS, M4V, OGV and 3GP are all accepted.
  2. 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.
  3. 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.
  4. 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.
  5. 5Click Download ZIP. Every frame arrives in one archive, named in sequence.
The FrameRipper tool after an extraction, showing the frame count, format and quality settings, a row of extracted frame previews and the Download ZIP button.
FrameRipper after extracting 24 frames from a 12-second test clip: the settings, the preview gallery and the Download ZIP button.

Try FrameRipper - free, no upload

Extract frames from any video directly in your browser. No sign-up, no file size limits.

Open FrameRipper

How 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.

A 60-second timeline split into ten 6-second segments, with a capture marker in the middle of each segment at 3, 9, 15 and so on up to 57 seconds.
10 frames from a 60-second video: one from the middle of each 6-second slice, so nothing lands on 0:00 or the very last frame.

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 capturingInterval10-minute video
Lecture slides20-30 seconds20-30 frames
Interview or talking head60 seconds10 frames
Sports or action1-2 seconds300-600 frames
Editing reference stills5 seconds120 frames
Finding one specific moment0.5-1 second600-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.

CodecChrome / EdgeFirefoxSafari
H.264 (most common)YesYesYes
VP8 / VP9 (WebM)YesYesYes (14+)
HEVC / H.265Hardware dependentNoYes
AV1Yes (70+)Yes (67+)Partial (17+)
ProRes / DNxHDNoNoNo

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 FrameRipper

Does 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.

Archis Vaze

Creator of FrameRipper

Software engineer with a background in video tooling. Builds ffmpeg-based desktop apps, and browser tools that process files locally instead of uploading them.

archisvaze.comAbout FrameRipper

Try these tools

Keep reading