MediaMTX is a real-time media server and proxy designed to publish, read, proxy, record, and playback video and audio streams. It functions as a versatile "media router," enabling seamless routing of media streams between various protocols and devices.
Key Features:
Supports multiple protocols including SRT, WebRTC, RTSP, RTMP, and LL-HLS for publishing and reading streams.
Handles a wide range of video codecs (e.g., H265, VP9, AV1) and audio codecs (e.g., Opus, AAC).
Enables live stream recording in formats like fMP4 and MPEG-TS, with support for on-demand playback.
Offers authentication mechanisms, Prometheus-compatible metrics, and a Control API for advanced management.
Supports hot reloading of configurations, allowing updates without disrupting active connections.
Audience & Benefit:
Ideal for developers integrating media capabilities into applications, streaming service providers requiring low-latency solutions, and organizations managing video surveillance or broadcasting systems. MediaMTX simplifies the handling of complex media workflows across diverse environments while maintaining minimal dependencies.
Installable via winget on Windows, MediaMTX provides a lightweight yet powerful solution for real-time media processing and distribution.
README
MediaMTX is a ready-to-use and zero-dependency live media server and media proxy that allows to publish, read, proxy, record and playback real-time 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.
Publish streams to the server with Media-over-QUIC, SRT, WebRTC, RTSP, RTMP, HLS, MPEG-TS, RTP, using FFmpeg, GStreamer, OBS Studio, Python , Golang, Unity, Web browsers, Raspberry Pi Cameras and more.
Read streams from the server with Media-over-QUIC, 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)