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.

19,794 stars Go Markdown Skills API Spec #go#golang#hls#media-over-quic
AI Prompts & Specs

Repository: bluenviron/mediamtx


Stars: 18498

README.md

<h1 align="center">
<a href="https://mediamtx.org">
<img src="logo.png" alt="MediaMTX">
</a>

<br>
<br>

![Website](https://mediamtx.org)
![Test](https://github.com/bluenviron/mediamtx/actions/workflows/test.yml?query=branch%3Amain)
![Lint](https://github.com/bluenviron/mediamtx/actions/workflows/lint.yml?query=branch%3Amain)
![CodeCov](https://app.codecov.io/gh/bluenviron/mediamtx/tree/main)
![Release](https://github.com/bluenviron/mediamtx/releases)
![Docker Hub](https://hub.docker.com/r/bluenviron/mediamtx)
</h1>

<br>

_MediaMTX_ is a ready-to-use and zero-dependency real-time media server and media proxy that allows to publish, read, proxy, record and playback video and audio streams. It has been conceived as a "media router" that routes media streams from one end to the other, with a focus on efficiency and portability.

<div align="center">

|Install|Documentation|
|-|-|

</div>

<h3>Features</h3>

- Publish live streams to the server with SRT, WebRTC, RTSP, RTMP, HLS, MPEG-TS, RTP, using FFmpeg, GStreamer, OBS Studio, Python , Golang, Unity, web browsers, Raspberry Pi Cameras and more.
- Read live streams from the server with SRT, WebRTC, RTSP, RTMP, HLS, using FFmpeg, GStreamer, VLC, OBS Studio, Python , Golang, Unity, web browsers and more.
- Streams are automatically converted from a protocol to another
- Serve several streams at once in separate paths
- Reload the configuration without disconnecting existing clients (hot reloading)
- Serve always-available streams even when the publisher is offline
- Record streams to disk in fMP4 or MPEG-TS format
- Playback recorded streams
- Authenticate users with internal, HTTP or JWT authentication
- Forward streams to other servers
- Proxy requests to other servers
- Control the server through the Control API
- Extract metrics from the server in a Prometheus-compatible format
- Monitor performance to investigate CPU and RAM consumption
- Run hooks (external commands) when clients connect, disconnect, read or publish streams
- Compatible with Linux, Windows and macOS, does not require any dependency or interpreter, it's a single executable
- ...and many others.