The audio-strip fix made the stream decode cleanly server-side, but the browser monitor was still black: with -c:v copy the re-mux passed through CasparCG's erratic real-time keyframes (segments 0.6-2.8s) and irregular PTS. hls.js can't build a live timeline from that — it logs "sliding 0.00 / prev-sn na / MISSED" and never loads a fragment (verified live in-browser: readyState stays 0). A standalone ffmpeg honours -force_key_frames, so re-encode to libx264 with a forced 2s GOP + CFR fps=30, scaled to 720p for a light confidence monitor. Every HLS segment is now a clean, keyframe-aligned 2.0s chunk hls.js can sync to. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| src | ||
| casparcg.config | ||
| Dockerfile | ||
| entrypoint.sh | ||
| package.json | ||