Frame rate and timing

Frame rate (fps)

How many images per second the video contains. Common values: 24 (cinema), 25 (PAL broadcast), 30 (most phones and web video), 50 and 60 (sport, gaming, smooth motion), 120 and 240 (slow motion capture).

Why it matters here: it decides how many frames exist to extract, and it determines what "step one frame" means. Set a stepping tool to the wrong frame rate and you either see the same image twice or silently skip frames.

Frame duration

The reciprocal of frame rate — how long each frame is on screen. At 30 fps, 33.3 ms; at 60 fps, 16.7 ms; at 24 fps, 41.7 ms.

Why it matters: this is the precision ceiling. If the moment you want lasts 10 ms and your footage is 30 fps, it may fall between two frames and simply not exist in the file.

Variable frame rate (VFR)

Some sources — screen recordings, phone footage in low light, streamed captures — do not use a constant interval between frames. They emit frames only when the content changes, or vary the rate with available light.

Why it matters: "every 10th frame" becomes an unpredictable amount of time on VFR footage, and timestamp arithmetic drifts. If frame stepping behaves inconsistently, VFR is a likely cause. Converting to constant frame rate before extraction removes the problem.

Timecode

A position identifier, usually written HH:MM:SS:FF where FF is the frame number within the second. Distinct from elapsed playback time.

Why it matters: it is how you record which frame you took in a way someone else can find again. A millisecond timestamp serves the same purpose for most non-broadcast work.

Compression and frame types

I-frame (keyframe, intra-coded frame)

A frame stored as a complete image, independent of every other frame. Roughly equivalent to a standalone JPEG inside the video stream.

Why it matters: I-frames are where a decoder can start. Seeking to an arbitrary position means jumping to the previous I-frame and decoding forward — which is why seeking in some files feels sluggish and imprecise.

P-frame (predicted frame)

Stores only the differences from a previous frame. Much smaller than an I-frame.

Why it matters: a P-frame cannot be decoded alone. This is the mechanism behind most of video compression's efficiency, and behind the fact that you cannot simply pull frame 4,732 out of a file without decoding what came before it.

B-frame (bi-directional frame)

Stores differences from both an earlier and a later frame. The smallest of the three types.

Why it matters: B-frames mean the storage order in the file differs from the display order, which is one reason precise frame-accurate seeking is harder than it appears from the outside.

GOP (Group of Pictures)

The repeating pattern of I, P and B frames — for example one I-frame followed by 29 others, then another I-frame.

Why it matters: a long GOP means I-frames are far apart, which makes seeking coarser. Streaming-optimised files often have GOPs of several seconds; footage straight from a camera usually has shorter ones.

Bitrate

Data per second of video, in Mbps. Phone footage is typically 10–50 Mbps; streamed video 3–8; professional intermediate codecs can exceed 200.

Why it matters: it is the strongest single predictor of how good an extracted frame will look. A 4K frame from a 5 Mbps stream will show compression artefacts that a 1080p frame from a 50 Mbps camera file will not — resolution alone does not tell you image quality.

Lossy and lossless

Lossy compression discards information permanently (H.264, JPEG, MP3). Lossless preserves every value exactly (PNG, FFV1, FLAC).

Why it matters: extracting to PNG from a lossy source does not restore anything — you get a lossless copy of already-degraded pixels. What it does prevent is adding a second generation of loss, which matters if the frame will be edited afterwards.

Colour and pixels

Chroma subsampling (4:4:4, 4:2:2, 4:2:0)

Video stores brightness at full resolution and colour at reduced resolution, because human vision is far more sensitive to the former. The notation describes how much colour is kept: 4:4:4 is full, 4:2:2 is half horizontally, 4:2:0 is half in both directions.

Why it matters: almost all consumer video is 4:2:0, so an extracted frame has colour detail at half resolution in each direction. It is invisible on photographic content but very visible on sharp coloured edges — red text on a dark background is the classic case, and it is a property of the source, not a fault of the extraction.

Colour space (Rec. 709, Rec. 2020, sRGB)

The definition of what the stored numbers mean as colours. HD video is usually Rec. 709, HDR often Rec. 2020, still images normally sRGB.

Why it matters: Rec. 709 and sRGB are close but not identical. HDR sources are very different, and an HDR frame extracted without tone mapping typically looks washed out and flat.

Limited range and full range

Video conventionally puts black at code value 16 and white at 235, reserving headroom either side. Still images use the full 0–255.

Why it matters: this is the single most common cause of "my extracted frame looks duller than the video". If the conversion is not applied, blacks come out grey and the image looks flat; applied twice, shadows crush and highlights clip. Neither is a quality loss — it is a mismatch of assumptions.

Bit depth

Bits per colour channel. Consumer video is usually 8-bit (256 levels per channel); professional and HDR footage is 10-bit or 12-bit.

Why it matters: 8-bit shows visible banding in smooth gradients, most obviously skies. Extracting to PNG preserves whatever depth the source had but cannot add levels that were never recorded.

Gamma

The non-linear relationship between stored values and displayed brightness. Video and still-image pipelines do not always assume the same curve.

Why it matters: a gamma mismatch shifts midtone brightness — the image looks slightly too dark or too light overall, without any change in the black and white points.

Formats and containers

Container versus codec

The container is the file wrapper (MP4, MOV, MKV, WebM). The codec is the compression method for the content inside (H.264, HEVC, VP9, AV1, ProRes).

Why it matters: this explains the most confusing failure in frame extraction — two files both named .mp4, one opens and one does not. The extension describes the box, not what is in it. An MP4 containing HEVC may be refused where an MP4 containing H.264 works.

H.264 (AVC)

The most widely supported video codec. Plays essentially everywhere.

Why it matters: if a file will not open in a browser-based tool, transcoding to H.264 in an MP4 container is the fix that works almost every time.

HEVC (H.265)

H.264's successor: roughly half the bitrate for similar quality. Default for iPhone recordings since iOS 11.

Why it matters: browser support is patchy and platform-dependent. An iPhone video that will not load in a browser tool is very often HEVC.

ProRes and DNxHD

Intermediate codecs used in editing. Very large files, very light compression, designed for repeated re-encoding.

Why it matters: no browser decodes them. These are the clearest case for using FFmpeg or an editor rather than a web tool.

PNG

Lossless image format with an alpha channel. Larger files.

Why it matters: the right choice for extracted frames that will be edited, analysed, measured, or archived.

JPEG

Lossy image format with a quality setting, typically 1–100. Roughly a tenth the size of PNG at high quality.

Why it matters: the right choice when you need many frames and the destination is a document, a ticket, or a training set that tolerates mild compression. Note that its quality scale is not standardised across tools — "90" in one application is not exactly "90" in another.

WebP

A newer image format with both lossy and lossless modes, roughly 25–30% smaller than JPEG at comparable quality.

Why it matters: good for web delivery, less universally accepted by desktop software than PNG and JPEG. Choose it when the frames are going onto a web page rather than into a tool.

Extraction workflow terms

Sampling interval

The gap between extracted frames, expressed either in seconds (one every 5 s) or in frames (every 10th).

Why it matters: the two readings give completely different results on the same file, and confusing them is the most common cause of ending up with far more or far fewer images than intended.

Contact sheet

A grid of extracted frames viewed together. Borrowed from film, where a proof sheet let you choose negatives at a glance.

Why it matters: patterns across time — a gap opening, a state changing, a defect appearing — are visible in a grid in a way they are not during playback.

Zero padding

Writing sequence numbers with leading zeros: frame_0001 rather than frame_1.

Why it matters: filenames are usually sorted as text, which puts frame_10 before frame_2. Any tool that reads your frames in filename order will play them back scrambled without it.

Client-side processing

Work performed in your browser rather than on a server. The file is read from disk into page memory and never transmitted.

Why it matters: it removes upload time and server-imposed size limits, and it is the only arrangement in which footage under an NDA or a data-protection obligation can be processed through a web page at all. It is also testable — disconnect from the network and see whether it still works.