mediamtx v1.20.0

v1.20.0
Added 5
  • Support forwarding streams natively with destinations for each path configuration using RTSP, RTMP, and SRT protocols
  • Support publishing and reading through native QUIC
  • Support draft-17 for Media-Over-QUIC
  • Support draft-16 for Media-Over-QUIC
  • Add OpenAPI definition of the Playback server
Changed 7
  • Increase max namespace field count to 32 for Media-Over-QUIC
  • Log write errors in RTSP
  • Change mapping between URL and tcURL, app, streamKey in RTMP client
  • Remove lower limit on AAC access unit count in MPEG-TS segments for HLS muxer
  • Recompute PTS of MPEG-TS AAC in HLS muxer
  • Sort WebRTC tracks deterministically by MID, RID, trackID and streamID
  • Reset recomputed audio PTS if it drifts too much in WebRTC
Fixed 8
  • Support for regexp groups greater than 10
  • Fix inability to read some AV1 streams with RTSP by restoring stripping of temporal unit delimiters
  • Make multicast errors on single interfaces non-fatal to allow writing to other interfaces
  • Fix parsing URL from multitrack OBS in RTMP server
  • Fix compatibility with YouTube in RTMP client
  • Fix goroutine leak during part rotation in HLS muxer
  • Fix packet corruption when reading G722 in WebRTC
  • Fix packet lost error when routing streams from WebRTC by recomputing sequence numbers after empty packets
New major features

General

  • support forwarding streams natively (https://github.com/bluenviron/mediamtx/issues/5558) It is now possible to define forward destinations for each path configuration. For each destination, the server will create a client that will forward the stream to the intended destination. Supported protocols are RTSP, RTMP, SRT. API and metrics have also been improved to allow monitoring the new forwarding system. Documentation: https://mediamtx.org/docs/features/forward

Media-Over-QUIC

Fixes and improvements

General

Media-Over-QUIC

RTSP

RTMP

HLS

WebRTC

SRT

Dependencies

  • code.cloudfoundry.org/bytefmt updated from v0.82.0 to v0.83.0
  • github.com/MicahParks/jwkset updated from v0.11.0 to v0.11.3
  • github.com/MicahParks/keyfunc/v3 updated from v3.8.0 to v3.8.1
  • github.com/bluenviron/gohlslib/v2 updated from v2.4.1 to v2.4.2
  • github.com/bluenviron/gortmplib updated from v0.4.1 to v1.0.0
  • github.com/bluenviron/gortsplib/v5 updated from v5.6.2 to v5.6.3
  • github.com/go-git/go-billy/v5 updated from v5.9.0 to v5.9.1
  • github.com/go-git/go-git/v5 updated from v5.19.1 to v5.19.2
  • github.com/pion/ice/v4 updated from v4.3.0 to v4.4.0
  • github.com/pion/interceptor updated from v0.1.46 to v0.1.47
  • github.com/pion/webrtc/v4 updated from v4.2.17 to v4.2.18
  • github.com/quic-go/quic-go updated from v0.60.0 to v0.61.0
  • github.com/quic-go/webtransport-go updated from v0.11.1 to v0.12.0
  • github.com/pion/sctp updated from v1.11.0 to v1.11.1
  • golang.org/x/time updated from v0.14.0 to v0.15.0
Security

Binaries are compiled from source code by the Release workflow, which is a fully-visible process that prevents any change or external interference in produced artifacts.

Checksums of binaries are also published in a public blockchain by using GitHub Attestations, and they can be verified by running:

ls mediamtx_* | xargs -L1 gh attestation verify --repo bluenviron/mediamtx

You can verify checksums of binaries by downloading checksums.sha256 and running:

cat checksums.sha256 | grep "$(ls mediamtx_*)" | sha256sum --check
View original

Upgraded? How did it go?

Discussion