// the find
bluenviron/mediamtx
Ready-to-use Media-over-QUIC / SRT / WebRTC / RTSP / RTMP / LL-HLS / MPEG-TS / RTP live media server and media proxy that allows to read, publish, proxy, record and playback real-time video and audio streams.
MediaMTX is a single-binary media router that speaks every live streaming protocol you've heard of — RTSP, RTMP, HLS, WebRTC, SRT, MoQ, MPEG-TS — and can transcode between them on the fly. It's aimed at anyone who needs to ingest streams from cameras or OBS and serve them to browsers or downstream servers without standing up separate infrastructure per protocol. 19k stars suggests it's actually used in production, not just starred and forgotten.
Protocol breadth is genuinely impressive: publishing via one protocol and reading via another just works, which would take weeks to build yourself. Single static binary with zero runtime dependencies means deployment is a `wget` and a config file. Hot-reload of configuration without dropping existing connections is a real operational feature, not a demo. The test coverage is solid — fuzz corpora for config parsing, integration tests per protocol, and CI that actually runs them.
Transcoding/reencoding is limited to what FFmpeg can do via an external process, so you're shelling out rather than doing it in-process — adds latency and a hard FFmpeg dependency if you need codec conversion. MoQ support is early-draft; the protocol spec is still in flux and the implementation will likely need breaking changes. No clustering story built in: the docs acknowledge this and suggest a pull-based read-replica approach, but it's manual plumbing. Configuration file is enormous — a single YAML with hundreds of options — and the path-level overrides vs global defaults interaction is non-obvious enough that the repo has a dedicated linter just to catch config mistakes.