Definitive root cause of the black preview, proven in-browser: the live .m3u8 was served Cache-Control: no-cache, so the browser cached the playlist and served a STALE copy to hls.js's reloads (cache:'default' stuck at one MEDIA-SEQUENCE while cache:'reload' advanced). hls.js saw the live playlist as never advancing -> "live playlist MISSED" forever -> never established the timeline -> never loaded a fragment -> readyState 0 (black), even though the stream itself is clean and advancing server-side. Fix: serve live HLS (/live and /media/live) with "no-store, no-cache, must-revalidate" + Pragma no-cache so the browser never caches the playlist and every reload fetches the fresh live edge. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| public | ||
| scripts | ||
| src/css | ||
| .dockerignore | ||
| .gitignore | ||
| Dockerfile | ||
| nginx.conf | ||
| package.json | ||
| postcss.config.js | ||
| tailwind.config.js | ||