Replays a recorded RFC 9828 .rtp file from a URL or local disk, reassembles packets into HTJ2K codestreams, and decodes in your browser.
Source
Or use the file picker:
Requires CORS Access-Control-Allow-Origin on the host.
Default is As-fast-as-possible. Paced playback requires a high-performance CPU (decoder must sustain source frame rate); on slower machines the Paced mode may stutter or stall.
— fps
Low bandwidth
Loading WASM decoder…
×
0
0
0
0
0
0
0
0
URL parameters
ParameterDefaultValuesEffect
?variant= auto auto · mt_simd · simd · mt · scalar Force a specific WASM build. auto picks the best available for the browser.
?renderer= auto auto · webgl · 2d Force the renderer. auto prefers WebGL2 and falls back to Canvas 2D.
?drop=1 off presence toggle Pre-check the Drop late frames checkbox on page load. When on, paced mode skips frames whose RTP-clock target is already past. Off by default — slow decoders play slow-motion rather than stall.
?drop_periods= 8 integer ≥ 1 Number of frame periods of slack before a frame is dropped (only when ?drop=1). At 29.97 fps the default is ≈ 267 ms.
?nodrop=1 presence toggle Legacy synonym for the current default (no dropping). Kept for URL compatibility; has no additional effect.
?preroll= 3 integer ≥ 0 Frames decoded back-to-back before the paced wall clock anchors. Absorbs cold-start decode spikes (SIMD warmup, WASM JIT).
?ring= 4 integer 2–32 Decode→display ring buffer depth. Larger values add latency but absorb decode jitter on slow or high-variance links.
?verbose=1 off presence toggle Emit one [rtp_demo t=Ns …] line per second to the browser console with full pipeline stats.
?wasmBase= /wasm/ URL path Override the directory where libopen_htj2k_*.{js,wasm} are served from.