I’m trying to play HLS (.m3u8) streams in a browser using the hls.js library. The streams come from a local Ace Stream engine running on http://127.0.0.1:6878. In Firefox, everything works perfectly — the .m3u8 playlist loads, the .ts segments download, and playback is smooth.
However, in Chromium-based browsers like Chrome, Edge, or Brave, the behavior is different. The .m3u8 playlist loads successfully, and the .ts segments are fetched with status 200, but the video never plays and seems to buffer indefinitely. There are no obvious CORS errors, and I can confirm that the segments are actually being received. The same streams open and play fine in VLC or in the Ace Player desktop application
The streams are live and the .m3u8 files contain multiple .ts segments, but Chrome refuses to play them. I suspect this is related to how Chromium handles MSE (Media Source Extensions) and TS segment decoding. Possible causes might include incorrect MIME types (the TS segments should have video/mp2t), non-standard MPEG-TS formatting, or unsupported codecs. Firefox is more lenient and can handle “imperfect” TS streams, which explains why it works there.
I have not found any ready-made browser player that reliably handles Ace Stream-generated .m3u8 streams in Chromium. I am aware that using the Ace Player desktop application or an iframe to their built-in web UI works, but I would like a solution that can run directly in Chromium.
The question is: is there a known workaround to make Chromium play these streams reliably, or is the only stable approach to either use an iframe with the Ace Player web UI or transcode the streams (for example using ffmpeg) into standard HLS that Chromium can handle? Any guidance on handling Ace Stream .m3u8 streams in Chromium browsers would be very helpful
I get the stream from the local Ace Stream engine:
http://127.0.0.1:6878/ace/manifest.m3u8?content_id=...
Also inside .m3u8 there are links to .ts view segments:
http://127.0.0.1:6878/ace/c/.../0.ts
http://127.0.0.1:6878/ace/c/.../1.ts
...
In Firefox, the video plays without problems.
In Chrome:
.m3u8 is loaded
.ts segments are loading (status 200)
but the video is not playing (eternal download)
CORS clearly does not crash (requests pass)
The stream opens and runs in VLC