mxf.js — MXF Demuxer Demo

or
latency & bandwidth only work against the built-in /media/… simulator, which is the Vite dev server itself — i.e. only when this demo is served via npm run dev. They have no effect on local files (file picker) or on .mxf URLs served by any other server.
Player options
index mode

Forces the seek/index strategy instead of using what the file declares. cbg = every frame a fixed byte size; vbe = per-frame entry table; none = no map, jump by byte percentage then dig to the next packet. Use it to exercise fallback paths (e.g. force none on an indexed file). Default: auto.

seek mode

How a seek resolves the displayed picture. accurate decodes from the preceding keyframe up to the exact target frame. keyframe shows only the GOP-head I-frame for the whole GOP — near-instant, but lands on a random-access point, not the exact frame. (Scrubbing always uses keyframe previews regardless.) Default: accurate.

start buffer

Forward-buffer low-water mark — the player fetches more whenever buffered-ahead drops below this. Higher rides out bandwidth dips; lower starts playing sooner. Typical 2–10 s. Library default 10 s (this demo pre-fills 3 for faster first paint).

max buffer

Upper bound on how far ahead to prefetch — caps memory and the bytes wasted when you seek away. Typical 8–30 s. Library default 30 s (demo pre-fills 8).

resume buffer

After a cold start, seek, or stall, playback holds on the first decoded picture until this much is buffered ahead, then plays once. Lower = snappier resume but more re-buffering on a thin/decode-bound source. Typical 0.5–2 s. Default 1.5 s.

source cache

RAM budget for caching raw (compressed) source bytes already fetched, so backward seeks, loops and scrub-revisits don't re-download. 0 disables it. A whole moderate file often fits, making re-seeks network-free. Typical 0–512 MB. Library default 256 MB (demo pre-fills 0 as a diagnostic).

PCM audio

How uncompressed PCM audio is played. auto picks by browser support; webaudio forces Web Audio scheduling alongside the muted video; mse tries PCM through MSE (rarely supported). Default: auto.

debug

Emit detailed worker + player logs to the browser console. The on-page debug timeline below works regardless. Library default: off (demo pre-fills on).

Options apply on the next load. Reload re-opens the current source.
Buffering…
0:00 0:00 --:--:--:--
Keys: Space play/pause · J/L rewind/forward (press to speed up) · K stop · / frame step · / ±10s
0.0 Mbit/s requests in flight: 0 downloaded: 0 B (0 reads) encoder queue: 0 frames
max 8s
playable (in MSE) 0.0s in flight / transcoding 0.0s
Debug timeline filter: