Reference

Guides for people who need the frame to be right

The tool pages describe what the extractor does. These guides cover what happens underneath it: which files a browser can decode at all, what each extraction mode actually requests, and what a finished still can and cannot support once it leaves your device.

They are written for the cases where the result matters — a bug report that has to survive review, a tutorial step a reader has to follow, a thumbnail that has to hold up at 120 pixels wide. Each one states its limits, including the limits of this tool.

The three guides

Start from the symptom, not the title

Most visits to these pages begin with something not working. Find the symptom in the first column; the second column says which guide and which part of it answers it.

What you are seeingWhere the answer is
The file will not open at all, and the page just stopsCodec support → “The browser runs two checks, in this order”. The error code tells you whether the box or the decoder is the problem.
Audio plays but the picture is blackCodec support → the symptom table. This is almost always a video decoder the platform does not have, usually HEVC.
The duration reads 0:00 or InfinityCodec support → the symptom table. The index is missing or the file was never finalised.
It opens, but seeking hangs for seconds at a timeAccuracy → “What actually happens when you ask for 12.500 seconds”. The decoder is walking forward from a distant keyframe.
The still is close, but not quite the moment I asked forAccuracy → “Measure the drift on your own file”. Burn a frame counter and read the number off the image.
The exported frame is softer than the video lookedAccuracy → keyframe density, and codec support → “Why a 4K upload still gives you a soft still” on the long-form page.
I need to prove where this still came fromEvidence → “The five fields that make a still usable”, then the record template at the end.
I have to hand this to a client, auditor or support teamEvidence → “Chain of custody for something you screenshotted”. Write it down at capture time, not afterwards.

How these pages are kept

Each guide carries a published date and an updated date, and the updated date moves only when the body changes. That is a small discipline with a visible payoff: if a page still says October 2026 in a year, you know it has not been revised rather than assuming it has.

Where a guide describes this site’s own behaviour, the description is taken from the implementation rather than from the interface copy. The section on extraction modes, for example, states the arithmetic each mode uses — including the fact that keyframe mode steps on a fixed two-second grid instead of reading the file’s keyframe index. That is a less flattering description than the button label, and it is the one that lets you predict what the tool will do with your file.

Corrections are welcome and are made in place. If a browser changes its decoder policy or a version number in a table goes stale, the table is updated and the date moves with it; nothing here is frozen as a historical record.

What these guides deliberately do not do

They do not publish benchmark tables. A drift measurement or a decode-speed number is only meaningful for one file on one machine, and a table of numbers we did not measure would be worse than no table: it would look like evidence. Where a number is needed, each guide gives you the command or the console snippet that produces it from your own footage.

They do not promise frame-exact output from a browser. A `<video>` element exposes time, not frame indices, and its seeks are best-effort. Saying otherwise would be convenient for a product page and useless to a reader who later has to defend the result.

They do not cover downloading from platforms. This site has no URL input, does not fetch remote media, and does not remove watermarks or access controls. If a guide mentions YouTube or Instagram, it is about a file you already have the right to use.

Ready to try it on a file

The extractor runs entirely in the browser: the video is decoded locally and never uploaded, and the exported still is an ordinary image file you own.

Open the frame extractor