Frame extraction pulls one still image from a video at a chosen timestamp, and the most important thing to know is that the timestamp is a media timeline position, not a numbered source frame — browsers commonly land on a nearby decoded frame because of keyframes, variable frame rates, edit lists, timestamp rounding, and codec behavior, so the same time value can return different stills in different files. That single quirk explains most of the "why doesn't my frame match?" complaints people run into. Beyond that, a still PNG is whatever the browser decides to give you: the native decoded dimensions of that one frame, with no resizing, sharpening, color management, or interpolation applied unless the tool explicitly does so. Files that look fine in a desktop player may still refuse to open in a browser because container support does not equal codec support, and the video's safety limits — size, duration, and pixel area — are usually stricter than people assume. Understanding those constraints is what separates a usable still from a wasted afternoon.

Common Mistakes That Wreck a Frame Pull
Mistakes tend to cluster around three areas: time entry, file expectations, and assumptions about output. The first mistake is treating the timestamp like a frame counter. If you have a 30 fps clip and want the 90th frame, dividing 90 ÷ 30 = 3.0 seconds gives you a request for the timeline position — the actual decoded frame returned can land on the closest available decoded frame, which may be a fraction of a frame interval away. Use the result for thumbnails, references, presentations, or quick stills from media you own; do not rely on it for editorial timing or comparison against a known frame number.
The second mistake is assuming any video with the right extension will open. MP4, WebM, MOV, M4V, and Ogg are containers; the audio and video codecs stored inside them vary, and the browser only plays back files whose codecs it supports. A supported file extension is therefore necessary but not sufficient — a ProRes MOV, an HEVC MP4 from a phone, or a VP9 WebM may all behave differently across browsers.
The third mistake is expecting the tool to edit the still. Frame extraction tools do not resize, crop, sharpen, interpolate, or apply filters. If the decoded frame is 1920 × 1080, the PNG is 1920 × 1080 — soft, noisy, letterboxed, watermarked, or otherwise, exactly as it appeared on screen at that timeline position.
The fourth mistake is ignoring the shared safety limits. Most local browser tools cap files at roughly 500 MiB and 5 minutes, with no more than 4096 pixels per side and no greater than 3840 × 2160 in area. A 4 GB screen recording will be refused; a two-hour livestream dump will be refused; a 6K phone video will be refused. These limits protect the browser's decoder and the memory available to the canvas.
The fifth mistake is expecting transparency from a video that does not have it. PNG supports alpha, but the decoded video frame has to provide an alpha channel for any of it to survive the draw-to-canvas step. Most camera footage has no alpha, so the saved PNG is opaque regardless of format.
Tips for Picking the Right Timestamp
Work in the format your tool accepts. The Video Frame Extractor's time field accepts fractional seconds from zero through the video's reported duration, so values like 0.5, 12.375, and 59.999 are valid. For frame-rate-style decimals, round to the closest representable fraction: 29.97 fps ≈ 0.0334 seconds per frame, 59.94 fps ≈ 0.0167 seconds per frame, 23.976 fps ≈ 0.0417 seconds per frame.
Use scene-change intuition. If you do not know the exact second, scrub the video in any local player first, pause at the moment you want, and read the player's own timestamp counter. That timestamp is closer to a media timeline position than to a frame number, which is exactly what the extractor needs.
Allow a small margin. Because browser seeking can land on a nearby decoded frame, request your time and then look at the result. If the moment you wanted is between two decoded frames, you will usually get the closer of the two. If you need the next possible still, nudge the time by a fraction of a frame interval and extract again.
Check the eight time fixtures. A well-built extractor should handle the start (0.000), millisecond values (0.001, 0.250), fractional seconds (1.5), ordinary seconds (10), frame-rate-style decimals (29.97), one minute (60), and the maximum duration boundary (the reported duration itself). The fact that those fixtures pass is a useful sanity check before trusting the tool with your footage.
How to Extract a Single Frame with the Video Frame Extractor
- Choose one supported local video and wait for its duration and preview to load. The browser must decode the container before any time entry is meaningful.
- Enter a frame time between zero and the displayed duration, including decimals when needed. Values like 0.000, 1.5, 29.97, and 60 are all valid inputs.
- Select Extract PNG frame, verify the still in the preview area, and download the local PNG. The output filename includes the selected time, and the file uses the decoded frame dimensions.
The full workflow — pick, time, extract, verify, download — happens in the current tab, using the browser's video decoder, HTMLMediaElement seeking, canvas drawImage, and PNG canvas encoding. Decode, seek, canvas, and encoding failures are reported rather than producing an empty download, so a missing PNG usually means a real error to address, not a silent failure. See the underlying primitives at MDN's HTMLMediaElement.currentTime and MDN's CanvasRenderingContext2D.drawImage. Open the tool at Video Frame Extractor.
Containers vs. Codecs: Why Some Files Refuse to Open
The format table below shows the five container types the Video Frame Extractor accepts, the codecs each commonly carries, and the practical implication for opening them in a browser. A "usually opens" cell means the codec is widely supported; a "partial" cell means it opens only on some browsers; a "usually does not" cell means it generally will not open.
| Container | Common codecs inside | Typical browser behavior |
|---|---|---|
| MP4 | H.264, HEVC, AV1, ProRes, MPEG-4 | H.264 usually opens; HEVC partial; ProRes usually does not |
| WebM | VP8, VP9, AV1 | VP8 and VP9 usually open; AV1 support is growing |
| MOV | H.264, ProRes, HEVC, MJPEG | H.264 usually opens; ProRes usually does not |
| M4V | H.264, sometimes HEVC | Similar to MP4; H.264 usually opens, HEVC partial |
| Ogg | Theora, Vorbis, Opus | Theora usually opens; newer codecs are rare |
If your file matches a "usually does not" row, the extractor will report a decode failure rather than silently producing an empty PNG. The fix is usually to transcode the file with a desktop tool into a container and codec pair your browser accepts, then return for the still.
Safety Limits You Need to Respect
Local browser tools do not upload your video, but they still enforce real limits on what the browser decoder and canvas can handle. The shared video safety policy that bounds the Video Frame Extractor is summarized below.
| Limit | Cap | Why it matters |
|---|---|---|
| File size | Up to 500 MiB | Browser memory and decoder overhead |
| Duration | No more than 5 minutes | Reduces seek time and memory pressure |
| Longest side | No more than 4096 pixels | Canvas and texture limits |
| Total area | No greater than 3840 × 2160 | Combined side limit, roughly 8.3 megapixels |
A 6K phone clip that exceeds 4096 pixels on its long side will be refused even if it is well under 500 MiB. A two-hour screencast will be refused even if it is only 100 MB. If your input exceeds any of these caps, the workaround is to trim or resize the source first with a tool like Video Trimmer or Video Resizer, then return for the still.
When to Skip a Browser Tool Entirely
Frame extraction in a browser is excellent for quick stills, but it is not a substitute for every workflow. Skip a browser extractor when you need frame-accurate editorial timing, exact frame numbers, HDR or color-managed output, alpha-channel workflows, batch extraction across hundreds or thousands of timestamps, or footage longer than the size ceiling. Skip it when the source codec is one your browser cannot decode at all — transcoding first is faster than fighting a broken still. For deeper reading on the precision side, see Extract Frames from Video: Accuracy Limits Explained; for the practical "how do I choose the time" question, see Extract Frames from Video: How to Pick the Right Time. For the actual frame-by-frame workflow, open the Video Frame Extractor directly.