// the take
mpegts.js is a browser player that transmuxes MPEG2-TS and FLV streams into fragmented MP4 and feeds them to the HTML5 <video> element via Media Source Extensions. It's aimed at developers building low-latency live-stream viewers — DVB/ISDB broadcast, surveillance cameras, RTMP-style feeds — and is the actively developed successor to flv.js with much broader codec support.
Real, ongoing codec work rather than a repo coasting on flv.js's old base: AV1 over MPEG-TS and Enhanced RTMP, HEVC, Opus/FLAC over HTTP-FLV, LOAS AAC, EAC-3 all landed recently. The latency story is backed by actual mechanisms in the source (live-latency chaser/synchronizer, automatic playback-rate adjustment to catch the live edge), not just a claim in the README. Small memory footprint (~10MiB JS heap per instance) and support for MSE-in-Workers on Chrome and Safari, useful if you're running multiple player instances or targeting weaker hardware. Unusually good test coverage for a low-level demuxing library — dedicated parser tests for AAC, AC-3, AV1, H.265, MP3, and Opus across both TS and FLV containers.
No seeking for static TS file playback — it's an open TODO, so this is live-stream-only in practice. Single-maintainer project with an 'All Rights Reserved' copyright notice despite the Apache-2.0 license; this is exactly the kind of bit-level parsing code that's risky to patch without the original author. iOS support is version-gated and fragile — entirely broken below iOS 17.1, and dependent on Apple's non-standard ManagedMediaSource API, so you're exposed to whatever Apple changes in future WebKit releases. The library only covers the client side — you still need a TS/FLV origin server with correctly configured CORS, which the project explicitly offloads to something like SRS, so real deployments carry meaningful server-side ops work beyond this repo.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →