Extract Frames

Turn a video into a numbered set of still images, sampled however you choose.

Runs on your deviceVideoWorkingNo account needed

What this tool does

Extract Frames turns one video into a numbered set of still images without an encoder, a plugin or an upload. It builds a list of timestamps from the settings you choose, then walks that list: move the playhead to a timestamp, wait for the decoder to settle on a frame, copy what the video element is showing into a canvas at the width you asked for, and encode that canvas as a JPG, PNG or WebP. Every image is written inside this tab, so the file you picked is not transmitted anywhere and the tool carries on working with the network switched off.

Three sampling plans cover most of what a frame grab is for. Every N seconds takes one image at a fixed spacing, from 0.04 seconds apart up to 600. A set number per second expresses the same idea as a rate, between 0.1 and 30 frames a second. A fixed number of frames, evenly spaced puts the first image on the start point, the last on the end point and the rest at equal gaps between — ask for one and you get the midpoint instead — which is the mode to reach for when you want exactly twelve images regardless of how long the clip runs. Start at and End at narrow the job to a section; both accept plain seconds, mm:ss or hh:mm:ss, and leaving End at blank runs through to the end of the video.

Two ceilings and one caveat are worth knowing before you start. No job may plan more than 600 frames, and one that would is refused with the number it was about to produce rather than quietly truncated, so a ten-minute clip cannot be exploded frame by frame here. Frames are also taken strictly one at a time — a seek, a decode and an image encode for each — so a 600-frame job is a matter of minutes rather than seconds and needs the tab left open. And because the timestamps go to the browser's seeking machinery rather than to a frame index read out of the container, what returns is whatever the decoder settles on at each mark: for an ordinary MP4 that is the frame at or immediately before the time you named, while a file with sparse keyframes or a damaged index can land a fraction of a second adrift, and two close requests can come back as the same picture.

What you get is a plain set of images and nothing besides. They are painted from a canvas, so none of the source's metadata survives — no camera fields, no capture date, no timecode printed into the picture — and the audio track plays no part in the job. JPG re-encodes each frame lossily at the quality you set, anywhere from 40 to 100; PNG is the choice when a frame is going on to be edited or compared pixel by pixel, and WebP usually lands smaller than JPG for the same visual quality. The width control only ever scales down: ask for 1920 px from a 720p source and 1280 px comes back, because enlarging invents detail the camera never recorded.

How to use it

  1. Pick the video. Extract Frames takes a single file at a time. Everything hangs off the browser's own decoder, so MP4 and WebM are safe bets, a MOV opens only when its codec is H.264 or HEVC rather than ProRes, an MKV only when it carries VP8, VP9 or AV1, and the older AVI, WMV, FLV, MPG and TS containers do not open at all.
  2. Decide how the frames are spaced. Pick an interval, a rate per second, or a fixed count spread evenly across the range. Only the field belonging to the mode you selected is shown, so there is a single number to set.
  3. Narrow the range if you want part of the clip. Start at and End at take seconds, mm:ss or hh:mm:ss. An end point earlier than the start is rejected outright, and the message names the video's real length so you can correct it.
  4. Set the image format, quality and width. One format covers the whole set: JPG, PNG or WebP. The quality slider covers 40 to 100 and appears for JPG and WebP only, PNG having no lossy setting. A width of 0 keeps the video's own frame size.
  5. Start the run, then keep the images. Progress counts the frames off as they are written. Each image downloads on its own, or the whole set as a single ZIP, and the summary reports the count, the pixel size and the first and last timestamps.

Processing & privacy

Runs on your device. Your file is processed directly in this browser.

Common use cases

Pulling a still for a thumbnail or a poster

A video screenshot taken by pausing playback and grabbing the screen carries the player's scaling and whatever interface sat on top. Sampling several candidate frames and keeping the sharpest gives a clean image at the recording's own resolution.

Skimming a long recording

A fixed number of frames evenly spaced turns an hour of footage into twenty images you can take in at a glance, which is the quickest way to find the section that actually matters.

Illustrating a bug report or a support reply

Three or four stills a second apart show the moment a layout breaks or a control stops responding, and they sit inline in a ticket where a video attachment has to be downloaded and opened.

Inspecting a suspect second closely

At a short interval one awkward second becomes a strip of images you can step through in an ordinary image viewer, rather than scrubbing a timeline that keeps snapping to keyframes.

Producing input for something else

Photogrammetry, OCR and dataset work all want individual images rather than a video, and PNG output hands them frames with no compression artefacts of their own.

Questions

Does the clip leave my machine?
No. The decoding, the frame capture and the image encoding all happen in this browser tab, so the file stays on this machine and the page keeps working with the connection dropped. Video tools here that genuinely need a server, Resize Video and Merge Videos among them, say so on their own pages.
Can I export every single frame?
Only from a short clip. The plan is capped at 600 frames, and because both ends of the range are included, 30 frames a second fills that budget just short of 20 seconds — a flat 20-second clip comes to 601 and is turned away. A larger request is refused with the count it would have produced, and for a full frame-accurate dump of a long video you want a real extractor rather than a browser.
How exact are the timestamps?
Close, but not surgical. Each frame comes from seeking the video element to a time and reading back what it displays, so an ordinary MP4 lands on the frame at or just before the mark. A file with a missing or damaged index can be a fraction of a second out, and the final frame is deliberately taken a millisecond short of the end, because decoders often return nothing at all at the exact end point.
JPG, PNG or WebP for a still?
PNG when the frame will be edited, measured or compared, since it is lossless and adds no artefacts. JPG for anything headed into a document, an email or a ticket, where size matters more than the last few per cent of fidelity. WebP is usually the smallest of the three, though a few older applications still refuse it.
Why is my image smaller than the width I asked for?
Because the width control never enlarges. Setting 1920 against a 1280-wide source returns 1280, since scaling up would add pixels that were never recorded. Leave the width at 0 to keep the native frame size, and run the result through Upscale Image if a larger still is genuinely needed.
Do the images keep the video's date or camera details?
No. Each frame is drawn onto a canvas and encoded fresh, so nothing from the source container reaches the file — no capture date, no camera fields, no location. When you need that information it has to be read from the video itself, which is what Video Metadata is for.
The video never loads here. What now?
The browser refuses containers it cannot play, and the error names the one it hit. Convert Video re-wraps such a file as MP4 or WebM on the OmniKitly processing service; bring that result back here and the frames come out normally.
How is this different from Video Thumbnail?
Video Thumbnail returns a single poster image and offers shortcuts for choosing it — a frame 10% in, the middle frame, or one timestamp you name. Extract Frames is built for a series instead: a sampling plan, a range, and a numbered set of files.

Related tools