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.
Find a file
Alessandro Ros cd2aed3fa3
srt: fix broken connections in case of high latency (#3756) (#5282)
When listening and accepting an incoming connection request, the
response might be received by the peer with some delay due to latency.
This causes the peer to send a second connection request, that is not
detected as duplicate because the first connection request has already
been removed from the map that is used to check for duplicates
(connReqs), so it is treated as a brand new connection request,
breaking the first connection.

This patch fixes the issue by introducing another map (connByPeer) that
is used to check whether a connection request is associated to an
already-accepted connection.
2025-12-24 20:51:01 +01:00
.github build(deps): bump actions/download-artifact from 6 to 7 (#5271) 2025-12-22 19:44:25 +01:00
api api: always reply with JSON in case of success or failure (#5252) 2025-12-07 10:37:55 +01:00
docker bump Golang to 1.25 (#4870) 2025-09-12 10:20:19 +02:00
docs recorder: reset when absolute time drifts from stream time (#4778) (#5239) 2025-12-02 18:10:23 +01:00
internal rtsp: avoid setupping back channels (#5074) (#5289) 2025-12-24 20:44:56 +01:00
scripts add self-upgrader (#3501) (#5035) 2025-10-13 13:06:47 +02:00
.dockerignore rename apidocs into api (#4844) 2025-08-09 16:05:34 +02:00
.gitignore rename apidocs into api (#4844) 2025-08-09 16:05:34 +02:00
.golangci.yml update golangci-lint configuration (#5182) 2025-11-11 23:57:52 +01:00
go.mod srt: fix broken connections in case of high latency (#3756) (#5282) 2025-12-24 20:51:01 +01:00
go.sum srt: fix broken connections in case of high latency (#3756) (#5282) 2025-12-24 20:51:01 +01:00
LICENSE remove hls.js from the repository and restore plain MIT license (#3008) 2024-02-12 00:31:13 +01:00
logo.png rewrite readme (#2015) 2023-07-02 14:03:53 +02:00
main.go change repository owner (#1801) 2023-05-16 16:14:20 +02:00
Makefile bump golangci-lint to 2.7.2 (#5261) 2025-12-22 19:43:20 +01:00
mediamtx.yml support multiple CORS origins (#5150) 2025-11-21 02:00:46 +01:00
README.md add self-upgrader (#3501) (#5035) 2025-10-13 13:06:47 +02:00
SECURITY.md docs: add security page (#4922) 2025-08-31 16:57:27 +02:00

MediaMTX

Website Test Lint CodeCov Release Docker Hub


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.

Features

  • Publish live streams to the server with SRT, WebRTC, RTSP, RTMP, HLS, MPEG-TS, RTP
  • Read live streams from the server with SRT, WebRTC, RTSP, RTMP, HLS
  • 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)
  • 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.