New major features
General
- documentation has been moved to a dedicated website, https://mediamtx.org/ . The website content is based on markdown from the MediaMTX repository and can be edited through GitHub.
RTMP
- support additional enhanced RTMP features (#4168) (#4321) (#4954). Support reading AV1, VP9, H265, Opus, AC-3, G711, LPCM, support reading multiple video or audio tracks at once.
RTSP
- support RTSP-over-HTTP (bluenviron/gortsplib#433) (bluenviron/gortsplib#768) (bluenviron/gortsplib#887)
- support RTSP-over-WebSocket (bluenviron/gortsplib#891) (bluenviron/gortsplib#898)
Fixes and improvements
General
- refactor: use the built-in max/min to simplify the code (#4867)
- refactor: remove duplicated http middleware (#4894)
- playback: fix crash during authentication errors (#4960) (#4966)
- send server name (SNI) when opening TLS connections (#4973)
- h264: fix DTS extractor compatibility with Apple VT HEVC Hardware Encoder (#4892) (bluenviron/mediacommon#236)
- h265: fix DTS extractor compatibility with Apple VT HEVC Hardware Encoder (#4892) (bluenviron/mediacommon#238)
- ac3: fix support for bsid different than 8 (#4705) (bluenviron/mediacommon#244)
- improve performance when dealing with AV1 (bluenviron/mediacommon#243)
- h265: fix DTS extractor with libx265 (bluenviron/mediacommon#245)
- update readme (bluenviron/mediacommon#246)
- h265: fix DTS extractor regression after bluenviron/mediacommon#245 (bluenviron/mediacommon#247) IDR frames which are also B-frames are supported again.
API
- add tunnel and profile to RTSP conns and sessions (#4985)
RTSP
- switch to gortsplib/v5 (#4978)
- fix memory leak when closing sessions (#4964) (#4678) (#4967)
- support reading streams tunneled with HTTP or WebSocket (#4986)
- fix encoding and decoding of NTP fractional part (bluenviron/gortsplib#869) (bluenviron/gortsplib#870)
- Fix typo when identifying KLV packets as SMPTE336M-encoded (bluenviron/gortsplib#877)
- Fix SDP parsing for repeat time field with no offsets (bluenviron/gortsplib#880)
- client: fix crash when opening UDP listeners (bluenviron/gortsplib#893)
- server: fix panic due to regression in bluenviron/gortsplib#887 (bluenviron/gortsplib#892)
- server: prevent using UDP when tunneling through HTTP (bluenviron/gortsplib#896)
RTMP
- improve control message compatibility with non-standard cameras (#4909)
- move implementation to gortmplib (#4968)
HLS
- Add disablepictureinpicture param (#4883)
- improve performance when dealing with av1 (bluenviron/gohlslib#279)
WebRTC
- Add disablepictureinpicture param (#4883)
RPI Camera
- fix race condition when reloading parameters (bluenviron/mediamtx-rpicamera#63)
- decrease GPU consumption (bluenviron/mediamtx-rpicamera#64) stop allocating useless buffers.
- use openh264 as software H264 encoder (bluenviron/mediamtx-rpicamera#65) this prevents license issues.
Dependencies
- Go updated from 1.24 to 1.25
- code.cloudfoundry.org/bytefmt updated from v0.45.0 to v0.51.0
- github.com/MicahParks/jwkset updated from v0.9.6 to v0.10.0
- github.com/bluenviron/gohlslib/v2 updated from v2.2.2 to v2.2.3
- github.com/bluenviron/gortsplib/v4 removed
- github.com/bluenviron/mediacommon/v2 updated from v2.4.1 to v2.4.3
- github.com/gookit/color updated from v1.5.4 to v1.6.0
- github.com/matthewhartstonge/argon2 updated from v1.3.4 to v1.4.0
- github.com/pion/rtp updated from v1.8.21 to v1.8.22
- github.com/pion/sdp/v3 updated from v3.0.15 to v3.0.16
- github.com/pion/webrtc/v4 updated from v4.1.3 to v4.1.4
- github.com/stretchr/testify updated from v1.10.0 to v1.11.1
- golang.org/x/crypto updated from v0.41.0 to v0.42.0
- golang.org/x/sys updated from v0.35.0 to v0.36.0
- golang.org/x/term updated from v0.34.0 to v0.35.0
- github.com/pion/dtls/v3 updated from v3.0.6 to v3.0.7
- github.com/pion/srtp/v3 updated from v3.0.6 to v3.0.7
- github.com/pion/turn/v4 updated from v4.0.0 to v4.1.1
- github.com/xo/terminfo updated from v0.0.0-20210125001918-ca9a967f8778 to v0.0.0-20220910002029-abceb7e1c41e
- golang.org/x/net updated from v0.43.0 to v0.44.0
- golang.org/x/text updated from v0.28.0 to v0.29.0
- github.com/bluenviron/gortmplib v0.1.0 added
- github.com/bluenviron/gortsplib/v5 v5.0.0 added
- github.com/bluenviron/mediamtx-rpicamera updated from v2.4.4 to v2.5.0
- hls.js updated from v1.6.9 to v1.6.12
Security
Binaries are compiled from source through the Release workflow without human intervention, preventing any external interference.
You can verify that binaries have been produced by the workflow by using GitHub Attestations:
ls mediamtx_* | xargs -L1 gh attestation verify --repo bluenviron/mediamtx
You can verify the binaries checksum by downloading checksums.sha256
and running:
cat checksums.sha256 | grep "$(ls mediamtx_*)" | sha256sum --check