Reference
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.
Compatibility guide
Which video files actually open in a browser
Why a playable-looking MP4 can fail in a browser, what each container and codec really requires, how to read MediaError codes, and a probe you can run on your own file.
Method guide
Count, interval, keyframe, timestamp: what the four modes actually do
The exact time points each mode requests, what a browser seek actually delivers, why keyframe mode is not a keyframe index, and a measured drift table you can reproduce.
Evidence and records
Capturing a frame as evidence: timestamps, hashes, and what a still cannot prove
A still image loses time, sequence and provenance. Here is the five-field record that makes one usable months later, how to hash a source file, and when a screenshot is the wrong tool.
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 seeing | Where the answer is |
|---|---|
| The file will not open at all, and the page just stops | Codec 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 black | Codec support → the symptom table. This is almost always a video decoder the platform does not have, usually HEVC. |
| The duration reads 0:00 or Infinity | Codec support → the symptom table. The index is missing or the file was never finalised. |
| It opens, but seeking hangs for seconds at a time | Accuracy → “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 for | Accuracy → “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 looked | Accuracy → 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 from | Evidence → “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 team | Evidence → “Chain of custody for something you screenshotted”. Write it down at capture time, not afterwards. |
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.
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.
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