Setup: DVR v2026.10.24.0621 (Docker, Linux, VAAPI transcode), HDHomeRun FLEX DUO. Client is Google Chrome 154 on Linux (AMD iGPU), wired.
Symptom: Live TV in the web player plays for a bit, stutters, and sometimes stops with "The media could not be loaded, either because the server or network failed or because the format is not supported." The server side looks healthy: segments are produced in real time, the transcoder has no errors, and the signal is 100%.
Cause: The web player decides whether to use hls.js like this (in bundle.js):
nativeHlsSupported = video.canPlayType('application/x-mpegURL; codecs="avc1.42E01E"') && !Edge && !Android
...
player.src({src: playlistUrl, type: "application/x-mpegURL", skipContribHlsJs: nativeHlsSupported})
Since Chrome 142, desktop Chrome has a built-in HLS player and canPlayType('application/x-mpegURL') returns "maybe". So the web player now skips hls.js and hands the .m3u8 straight to the <video> element. Chrome's built-in player handles these live streams poorly.
A/B test (same live channel, same tab, same machine):
| Player | Test length | Stalls | Dropped frames |
|---|---|---|---|
| Chrome native HLS (current behavior) | ~60 s | 11 | 79 of 1745 |
| hls.js via MSE | 30 s | 0 after startup | 0 of 904 |
Workaround: a tiny unpacked extension that hides native HLS from the DVR page only. It's a content script with "world": "MAIN" and "run_at": "document_start", matching http://<dvr>:8089/*:
const orig = HTMLMediaElement.prototype.canPlayType;
HTMLMediaElement.prototype.canPlayType = function (t) {
return /^\s*application\/(x-|vnd\.apple\.)mpegurl/i.test(String(t)) ? "" : orig.call(this, t);
};
With it loaded, video.src is a blob: URL (hls.js) and playback is smooth.
Suggested fix: only prefer native HLS on Safari/iOS, or check Hls.isSupported() first and use native HLS only as a fallback. Mux saw elevated playback errors when Chrome rolled out native HLS and recommended that players prefer MSE: mux Status - Investigating elevated playback errors on Chrome version 141.0.7390.123 and later