v1.13.0
bluenviron/mediamtxv1.13.0Jul 6, 2025by github-actions[bot]
AI Summary
Adds encryption support for RTSP UDP streams and KLV metadata routing, along with a binary attestation system.
Key Highlights
- Support encrypting UDP and UDP-multicast streams
- Support routing KLV metadata
- Add attestation system to protect binaries
- Support encrypted streams with SRTP and MIKEY
New Features
- RTSP UDP/UDP-multicast encryption
- KLV metadata routing
- Binary attestation system
Full Release Notes
## New major features RTSP * support encrypting UDP and UDP-multicast streams (https://github.com/bluenviron/mediamtx/issues/4690) General * support routing KLV metadata (https://github.com/bluenviron/mediamtx/issues/2693) (https://github.com/bluenviron/mediamtx/issues/4670) ## Fixes and improvements General * recorder, playback: support changing codec parameters without switching segment (https://github.com/bluenviron/mediamtx/issues/4262) (https://github.com/bluenviron/mediamtx/issues/4582) * record: support storing timezone in recording segments (https://github.com/bluenviron/mediamtx/issues/3566) (https://github.com/bluenviron/mediamtx/issues/4597) * support assigning paths to different configurations without closing stream (https://github.com/bluenviron/mediamtx/issues/4576) * add attestation system to protect binaries (https://github.com/bluenviron/mediamtx/issues/4012) (https://github.com/bluenviron/mediamtx/issues/4629) this allows to prove that binaries were produced by GitHub Actions. * fix crash when ConfWatcher fails to initialize (https://github.com/bluenviron/mediamtx/issues/4689) RTSP * support encrypted streams with SRTP and MIKEY (https://github.com/bluenviron/gortsplib/issues/520) (https://github.com/bluenviron/gortsplib/issues/809) * make RTP packet size compatible with RTSP/SRTP (https://github.com/bluenviron/mediamtx/issues/4692) when RTSP encryption is enabled, maximum RTP packet size is slightly decreased to make room for SRTP. * client: fix reading sources without server ports (https://github.com/bluenviron/mediamtx/issues/4253) (https://github.com/bluenviron/gortsplib/issues/796) RTCP packets were sent out to nil addresses, due to the lack of server ports, causing an error. * client: prevent downgrading from RTSPS to RTSP during redirect (https://github.com/bluenviron/gortsplib/issues/816) * client: when reading multicast streams, write unicast reports (https://github.com/bluenviron/gortsplib/issues/817) Previously, receiver reports were broadcasted to all connected clients. Now they are sent to the server only. * client: when reading UDP streams, write reports to right IP (https://github.com/bluenviron/gortsplib/issues/818) source IPs sent by the server were not taken into consideration. This fixes the issue. * set SSRC of outgoing packets (https://github.com/bluenviron/gortsplib/issues/803) In client and server, each format now has a fixed, unique, known in advance SSRC, that is applied to outgoing packets belonging to each format. This is needed to support SRTP/MIKEY, that require each format to have a fixed, unique, and known in advance SSRC. * client: open firewall before sending PLAY request (https://github.com/bluenviron/gortsplib/issues/821) this prevents losing some initial packets. * support KLV tracks (https://github.com/bluenviron/gortsplib/issues/808) RTMP * fix timeout when publishing with GLive T80 (https://github.com/bluenviron/mediamtx/issues/4002) (https://github.com/bluenviron/mediamtx/issues/4583) HLS * muxer: fix race condition when closing (https://github.com/bluenviron/gohlslib/issues/236) * client: fix race condition with non-low-latency streams (https://github.com/bluenviron/gohlslib/issues/237) * Support Verkada EXTINF Tags (https://github.com/bluenviron/gohlslib/issues/244) WebRTC * fix writing tracks to some clients (https://github.com/bluenviron/mediamtx/issues/4602) some clients require PayloadType to be unique among all tracks, not only among tracks of same kind. RPI Camera * fix RTP packet size (https://github.com/bluenviron/mediamtx/issues/4691) UDP max payload size was not applied. Dependencies * code.cloudfoundry.org/bytefmt updated from v0.40.0 to v0.43.0 * github.com/MicahParks/keyfunc/v3 updated from v3.3.11 to v3.4.0 * github.com/alecthomas/kong updated from v1.11.0 to v1.12.0 * github.com/bluenviron/gohlslib/v2 updated from v2.1.5 to v2.2.1 * github.com/bluenviron/gortsplib/v4 updated from v4.14.1 to v4.15.0 * github.com/bluenviron/mediacommon/v2 updated from v2.2.0 to v2.3.0 * github.com/go-git/go-git/v5 updated from v5.16.0 to v5.16.2 * github.com/matthewhartstonge/argon2 updated from v1.3.1 to v1.3.2 * github.com/pion/interceptor updated from v0.1.38 to v0.1.40 * github.com/pion/logging updated from v0.2.3 to v0.2.4 * github.com/pion/rtp updated from v1.8.16 to v1.8.20 * github.com/pion/sdp/v3 updated from v3.0.13 to v3.0.14 * golang.org/x/crypto updated from v0.38.0 to v0.39.0 * github.com/pion/srtp/v3 updated from v3.0.4 to v3.0.6 * golang.org/x/net updated from v0.40.0 to v0.41.0 * golang.org/x/text updated from v0.25.0 to v0.26.0 * github.com/bluenviron/mediamtx-rpicamera updated from v2.4.2 to v2.4.3 * hls.js updated from v1.6.2 to v1.6.6 ## Security Binaries have been produced by the [Release workflow](https://github.com/bluenviron/mediamtx/actions/workflows/release.yml) without human intervention. You can verify that binaries have been produced by the workflow by using [GitHub Attestations](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-to-establish-provenance-for-builds): ``` 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 ```