mirror of
https://github.com/bluenviron/mediamtx.git
synced 2026-05-17 19:28:18 -07:00
Ready-to-use SRT / WebRTC / RTSP / RTMP / LL-HLS media server and media proxy that allows to read, publish, proxy, record and playback video and audio streams.
go
golang
hls
media-server
obs-studio
rtcp
rtmp
rtmp-proxy
rtmp-server
rtp
rtsp
rtsp-proxy
rtsp-relay
rtsp-server
srt
streaming
webrtc
webrtc-proxy
- Go 96.2%
- JavaScript 1.7%
- HTML 1.1%
- Makefile 0.5%
- Dockerfile 0.4%
- Other 0.1%
|
Some checks failed
lint / go (push) Has been cancelled
lint / go_mod (push) Has been cancelled
lint / conf (push) Has been cancelled
lint / go2api (push) Has been cancelled
lint / docslinks (push) Has been cancelled
lint / docsorder (push) Has been cancelled
lint / docs (push) Has been cancelled
lint / api_docs (push) Has been cancelled
test / test_64 (push) Has been cancelled
test / test_32 (push) Has been cancelled
test / test_e2e (push) Has been cancelled
|
||
|---|---|---|
| .github | ||
| api | ||
| docker | ||
| docs | ||
| internal | ||
| scripts | ||
| .dockerignore | ||
| .gitignore | ||
| .golangci.yml | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| logo.png | ||
| main.go | ||
| Makefile | ||
| mediamtx.yml | ||
| README.md | ||
| SECURITY.md | ||
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.
Features
- 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.