Pure HTML/JS (no PHP, no ffmpeg.wasm). Deterministic frame‑by‑frame capture — more stable than the “play + interval” approach. No uploads.