mediamtx

Developer Tools

Ready-to-use Media-over-QUIC / SRT / WebRTC / RTSP / RTMP / LL-HLS / MPEG-TS / RTP live media server and media proxy that allows to read, publish, proxy, record and playback real-time video and audio streams.

Latest v1.20.0 · by bluenvironWebsitebluenviron/mediamtx

Release activity

Release activity — 10 releases across 10 days since Mar 17, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before Mar 17, 2026. Older weeks are hidden at this screen width.
MayJunJulAug
Sunday1 release on Apr 26, 2026No releases on May 3, 2026No releases on May 10, 2026No releases on May 17, 2026No releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 20261 release on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026
MondayNo releases on Apr 27, 2026No releases on May 4, 2026No releases on May 11, 2026No releases on May 18, 2026No releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026
TuesdayNo releases on Apr 28, 2026No releases on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 20261 release on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026
WednesdayNo releases on Apr 29, 2026No releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 2026No releases on Jun 3, 20261 release on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 20261 release on Aug 5, 2026No releases on Aug 12, 2026
Thursday1 release on Apr 30, 2026No releases on May 7, 2026No releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 20261 release on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026
FridayNo releases on May 1, 2026No releases on May 8, 20261 release on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026
SaturdayNo releases on May 2, 2026No releases on May 9, 2026No releases on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026

10 releases since Mar 17, 2026

Changelog

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 originalPermalink
How v1.20.0 went

v1.19.3

Added 3
  • Add runOnOnline and runOnOffline hooks triggered when a stream is online
  • Support draft-19 of Media-Over-QUIC specification
  • Support subscribing the same Media-Over-QUIC track multiple times
Changed 5
  • Rename runOnReady into runOnAvailable and runOnNotReady into runOnUnavailable
  • Normalize authentication error messages to log as soon as possible at warn level with consistent message regardless of author or protocol
  • Generate most of OpenAPI automatically including enums and structs
  • Restrict UDP port range to 32768-60999 for RTSP which is the default Linux ephemeral port range
  • Use session ID in RTSP requests to the external authentication server
Fixed 11
  • Fix error message where 'all' is a synonym for 'all_others'
  • Fix clearing lists with environment variables MTX_AUTHINTERNALUSERS_0_IPS, MTX_LOGDESTINATIONS and MTX_RTSPTRANSPORTS by setting them to an empty value
  • Fix wrong PTS and wrong playback of alwaysAvailableFile by properly considering PTS offset of samples and using DTS-based sleep between samples
  • Ask for credentials only in case of protocols that support it to avoid unnecessary waiting and improve anti-brute force algorithm application
  • Fix support for ctts version 0 in pmp4
  • Fix race condition during Media-Over-QUIC startup by allocating HTTP server only after MoQ server initialization
Security 2
  • Avoid potential timing attack when validating SHA256 credentials by using ConstantTimeCompare instead of == operator
  • Prevent cross-origin unauthorized access in WebRTC and HLS by returning '*' in Access-Control-Allow-Origins when AllowOrigins is a wildcard
Fixes and improvements

General

API

Media-Over-QUIC

WebRTC

  • prevent cross-origin unauthorized access (https://github.com/bluenviron/mediamtx/issues/5975) when a user had previously inserted credentials into a MediaMTX instance through a browser, and AllowOrigins was set to a wildcard, third-party websites visited by the user were allowed to read streams without restrictions. This is now prevented by returning "*" in Access-Control-Allow-Origins when AllowOrigins is a wildcard, a behavior that prevents browsers from sharing credentials with third-party websites.

RTSP

HLS

  • prevent cross-origin unauthorized access (https://github.com/bluenviron/mediamtx/issues/5975) when a user had previously inserted credentials into a MediaMTX instance through a browser, and AllowOrigins was set to a wildcard, third-party websites visited by the user were allowed to read streams without restrictions. This is now prevented by returning "*" in Access-Control-Allow-Origins when AllowOrigins is a wildcard, a behavior that prevents browsers from sharing credentials with third-party websites.

SRT

Dependencies

  • code.cloudfoundry.org/bytefmt updated from v0.78.0 to v0.82.0
  • github.com/alecthomas/kong updated from v1.15.0 to v1.16.0
  • github.com/bluenviron/gohlslib/v2 updated from v2.4.0 to v2.4.1
  • github.com/bluenviron/gortmplib updated from v0.4.0 to v0.4.1
  • github.com/bluenviron/gortsplib/v5 updated from v5.6.1 to v5.6.2
  • github.com/bluenviron/mediacommon/v2 updated from v2.9.1 to v2.9.2
  • github.com/matthewhartstonge/argon2 updated from v1.5.5 to v1.5.6
  • github.com/pion/ice/v4 updated from v4.2.8-0.20260604162030-72f5001c4596 to v4.3.0
  • github.com/pion/interceptor updated from v0.1.45 to v0.1.46
  • github.com/pion/rtcp updated from v1.2.16 to v1.2.17
  • github.com/pion/rtp updated from v1.10.2 to v1.10.5
  • github.com/pion/webrtc/v4 updated from v4.2.15 to v4.2.17
  • github.com/pires/go-proxyproto updated from v0.12.0 to v0.15.0
  • github.com/quic-go/webtransport-go updated from v0.11.0 to v0.11.1
  • golang.org/x/crypto updated from v0.53.0 to v0.54.0
  • golang.org/x/net updated from v0.56.0 to v0.57.0
  • golang.org/x/sync updated from v0.21.0 to v0.22.0
  • golang.org/x/sys updated from v0.46.0 to v0.47.0
  • golang.org/x/term updated from v0.44.0 to v0.45.0
  • github.com/pion/datachannel updated from v1.6.0 to v1.6.2
  • github.com/pion/dtls/v3 updated from v3.1.4 to v3.1.5
  • github.com/pion/sctp updated from v1.10.0 to v1.11.0
  • github.com/pion/stun/v3 updated from v3.1.5 to v3.1.6
  • github.com/pion/turn/v5 updated from v5.0.9 to v5.0.12
  • golang.org/x/text updated from v0.38.0 to v0.40.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 originalPermalink
How v1.19.3 went

v1.19.2

Added 5
  • Add rtspScale parameter to inject Scale header on PLAY
  • Support VP8 streams with multiple partitions
  • Support encoding primary stream with MJPEG on RPI Camera
  • Support encoding secondary stream with H264 on RPI Camera
  • Add unified rpiCameraH264Profile and rpiCameraH264Level parameters
Changed 5
  • Improve HTTP server performance by logging incoming requests without cloning
  • Switch automatically to TCP in case of H264 packetization-mode=0
  • Allow FU-A and STAP-A packets with H264 packetization-mode 0
  • Skip unresolvable webrtcAdditionalHosts entries instead of aborting
  • Improve performance by computing frame size once
Fixed 5
  • Fix panic when MP4 muxer flushes with no samples
  • Redact sensitive headers in HTTP debug logs
  • Decode timezone offset minutes correctly in recordstore
  • Prevent truncation of 64-bit values on 32-bit platforms
  • Fix race condition that prevents decoding the stream by always sending SPS/PPS in-band
Fixes and improvements

General

RTSP

WebRTC

RPI Camera

Dependencies

  • code.cloudfoundry.org/bytefmt updated from v0.76.0 to v0.78.0
  • github.com/abema/go-mp4 updated from v1.6.0 to v1.7.1
  • github.com/bluenviron/gortsplib/v5 updated from v5.6.0 to v5.6.1
  • github.com/bluenviron/mediacommon/v2 updated from v2.9.0 to v2.9.1
  • github.com/matthewhartstonge/argon2 updated from v1.5.4 to v1.5.5
  • github.com/pion/sdp/v3 updated from v3.0.18 to v3.0.19
  • github.com/quic-go/webtransport-go updated from v0.10.0 to v0.11.0
  • github.com/pion/srtp/v3 updated from v3.0.11 to v3.0.12
  • github.com/bluenviron/mediamtx-rpicamera updated from v2.6.0 to v2.8.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 originalPermalink
How v1.19.2 went

v1.19.1

Added 3
  • Support using regexp groups in every part of a source URL
  • Print body of selected HTTP responses when log level is debug
  • Support PROXY protocol v1/v2 on RTMP, RTMPS, RTSP, and RTSPS TCP listeners so real client IPs are visible when running behind L4 proxies
Changed 3
  • Improve anti-brute force mechanism by delaying authentication failure responses by a random amount of time and using the same mechanism with all users
  • Limit size of HTTP requests shown in debug logs
  • Rename moqHTTPS2Address into moqHTTP2Address and moqHTTPS3Address into moqHTTP3Address
Fixed 2
  • Fix race condition when closing Media-over-QUIC server where some sessions were hanging if concurrently being closed by the remote peer
  • Restore support for H264 packetization-mode 0 by receiving such streams with TCP and automatically remuxing them into streams with packetization-mode 1
Fixes and improvements

General

Media-over-QUIC

RTSP

  • support PROXY protocol (https://github.com/bluenviron/mediamtx/issues/5754) Support PROXY protocol v1/v2 on RTMP, RTMPS, RTSP, and RTSPS TCP listeners so real client IPs are visible when running behind L4 proxies (nginx stream, HAProxy, AWS NLB).
  • restore support for H264 packetization-mode 0 (https://github.com/bluenviron/mediamtx/issues/5846) (https://github.com/bluenviron/mediamtx/issues/5857) H264 streams with packetization-mode=0 cannot be routed with UDP since packets are too big. Inbound streams with packetization-mode=0 are blocked by the server since v1.19.0 but this caused compatibility issues with some cameras. The server is now able to receive such streams with TCP, and automatically remuxes them in streams with packetization-mode=1, which can be routed freely.

RTMP

Dependencies

  • code.cloudfoundry.org/bytefmt updated from v0.74.0 to v0.76.0
  • github.com/bluenviron/gortsplib/v5 updated from v5.5.4 to v5.6.0
  • github.com/pion/ice/v4 updated from v4.2.7 to v4.2.8-0.20260604162030-72f5001c4596
  • github.com/pion/webrtc/v4 updated from v4.2.14 to v4.2.15
  • github.com/quic-go/quic-go updated from v0.59.0 to v0.60.0
  • golang.org/x/crypto updated from v0.52.0 to v0.53.0
  • golang.org/x/net updated from v0.55.0 to v0.56.0
  • golang.org/x/sync updated from v0.20.0 to v0.21.0
  • golang.org/x/sys updated from v0.45.0 to v0.46.0
  • golang.org/x/term updated from v0.43.0 to v0.44.0
  • github.com/pion/dtls/v3 updated from v3.1.3 to v3.1.4
  • github.com/pion/stun/v3 updated from v3.1.4 to v3.1.5
  • github.com/pion/turn/v5 updated from v5.0.7 to v5.0.9
  • golang.org/x/text updated from v0.37.0 to v0.38.0
  • github.com/pires/go-proxyproto v0.12.0 added
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 originalPermalink
How v1.19.1 went

v1.19.0

Added 5
  • Support reading and publishing with Media-over-QUIC protocol
  • Support reading and writing FLAC in RTMP
  • Support reading and publishing FLAC in HLS
  • Add user agent field to RTMP, RTSP, WebRTC, and HLS
  • Add --check-version command line flag to check whether a new version is available without upgrading
Changed 3
  • Use file name suffix for OS-specific code wherever possible
  • RTSP client trigger TCP timeout only if nothing is received, now a keepalive response from the server is enough
  • Use timestamp of frame in RPI Camera text overlay
Fixed 8
  • Fix hot reloading when metrics server is reloaded for SRT server
  • Fix hot reloading when RTMPS server is reloaded for API server
  • RTSP SDP support non-standard 'meta' media type
  • RTMP client add FLAC fourCC support
  • Do not exit in case of undocumented Flash control messages in RTMP
  • HLS muxer fix race condition when generating playlist
  • HLS muxer use coherent version in all playlists
  • WebRTC fix connectivity after network changes
Removed 1
  • RTSP forbid H264 packetization mode zero
New major features

Media-over-QUIC

  • support reading and publishing with Media-over-QUIC (https://github.com/bluenviron/mediamtx/issues/5815) Media-over-QUIC is a streaming protocol built upon cutting edge protocols (QUIC, HTTP3) and browser APIs (WebTransport, WebCodecs). It's slightly faster than WebRTC, has an advanced data recovery mechanism, it supports additional codecs (FLAC) and is less complicated to route. Check the documentation for instructions and details.

RTMP

HLS

Fixes and improvements

General

RTSP

RTMP

HLS

WebRTC

RPI Camera

Dependencies

  • code.cloudfoundry.org/bytefmt updated from v0.72.0 to v0.74.0
  • github.com/abema/go-mp4 updated from v1.5.0 to v1.6.0
  • github.com/bluenviron/gohlslib/v2 updated from v2.3.2 to v2.4.0
  • github.com/bluenviron/gortmplib updated from v0.3.2 to v0.4.0
  • github.com/bluenviron/gortsplib/v5 updated from v5.5.3 to v5.5.4
  • github.com/bluenviron/mediacommon/v2 updated from v2.8.3 to v2.9.0
  • github.com/go-git/go-git/v5 updated from v5.19.0 to v5.19.1
  • github.com/matthewhartstonge/argon2 updated from v1.5.3 to v1.5.4
  • github.com/pion/ice/v4 updated from v4.2.5 to v4.2.7
  • github.com/pion/transport/v4 updated from v4.0.1 to v4.0.2
  • github.com/pion/webrtc/v4 updated from v4.2.12 to v4.2.14
  • golang.org/x/crypto updated from v0.51.0 to v0.52.0
  • golang.org/x/net updated from v0.54.0 to v0.55.0
  • golang.org/x/sys updated from v0.44.0 to v0.45.0
  • github.com/pion/dtls/v3 updated from v3.1.2 to v3.1.3
  • github.com/pion/sctp updated from v1.9.5 to v1.10.0
  • github.com/pion/srtp/v3 updated from v3.0.10 to v3.0.11
  • github.com/pion/stun/v3 updated from v3.1.2 to v3.1.4
  • github.com/pion/turn/v5 updated from v5.0.3 to v5.0.7
  • github.com/quic-go/webtransport-go v0.10.0 added
  • golang.org/x/sync v0.20.0 added
  • github.com/dunglas/httpsfv v1.1.0 added
  • github.com/bluenviron/mediamtx-rpicamera updated from v2.5.7 to v2.6.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 originalPermalink
How v1.19.0 went

v1.18.2

Added 3
  • Support interacting with servers with no trickle ICE
  • Support WHIP ICE restarts
  • Support changing text overlay dynamically for RPI Camera
Fixed 7
  • Fix compatibility with Verint.Vms.MediaGateway
  • Fix crash when stream is closing and ServerStream.Close() is called with setupped transport set to nil
  • Fix race condition when tearing down connection where ServerConn.session was not properly protected
  • Fix leak in case of failure during multicast initialization
  • Prevent nil and unconfigured tracks from appearing in RTMP
  • Fix error 500 caused by in-stream params in HLS by restoring consideration of in-stream parameters for AV1, H264, H265, and VP9 codecs when generating init.mp4 and playlists
  • Fix checking POST responses in WebRTC
Fixes and improvements

RTSP

RTMP

HLS

WebRTC

RPI Camera

Dependencies

  • code.cloudfoundry.org/bytefmt updated from v0.70.0 to v0.72.0
  • github.com/Masterminds/semver/v3 updated from v3.4.0 to v3.5.0
  • github.com/bluenviron/gohlslib/v2 updated from v2.3.1 to v2.3.2
  • github.com/bluenviron/gortmplib updated from v0.3.1 to v0.3.2
  • github.com/bluenviron/gortsplib/v5 updated from v5.5.2 to v5.5.3
  • github.com/datarhei/gosrt updated from v0.10.0 to v0.11.0
  • github.com/fsnotify/fsnotify updated from v1.10.0 to v1.10.1
  • github.com/go-git/go-billy/v5 updated from v5.8.0 to v5.9.0
  • github.com/go-git/go-git/v5 updated from v5.18.0 to v5.19.0
  • github.com/gookit/color updated from v1.6.0 to v1.6.1
  • github.com/matthewhartstonge/argon2 updated from v1.5.2 to v1.5.3
  • github.com/pion/rtp updated from v1.10.1 to v1.10.2
  • golang.org/x/crypto updated from v0.50.0 to v0.51.0
  • golang.org/x/net updated from v0.53.0 to v0.54.0
  • golang.org/x/sys updated from v0.43.0 to v0.44.0
  • golang.org/x/term updated from v0.42.0 to v0.43.0
  • github.com/cyphar/filepath-securejoin updated from v0.4.1 to v0.6.1
  • github.com/pjbgf/sha1cd updated from v0.3.2 to v0.6.0
  • golang.org/x/text updated from v0.36.0 to v0.37.0
  • github.com/bluenviron/mediamtx-rpicamera updated from v2.5.6 to v2.5.7
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 originalPermalink
How v1.18.2 went

v1.18.1

Added 2
  • Support reading and writing KLV in HLS
  • Add hlsCDNSecret option to serve HLS streams behind a CDN in a simplified way
Changed 3
  • Use temporary redirects instead of permanent redirects to prevent unwanted caching
  • Add public attribute to cache-control header in HLS
  • Allow caching non-low-latency HLS playlists
Fixed 1
  • Merge request controls instead of overwriting in RPI Camera to support libcamera 0.7.0
Security 3
  • Prevent code injection in case of MTX_QUERY in hooks by url-encoding MTX_QUERY
  • Prevent open redirect attacks in HLS
  • Prevent open redirect attacks in WebRTC
Fixes and improvements

General

HLS

WebRTC

RPI Camera

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 originalPermalink
How v1.18.1 went

v1.18.0

Added 4
  • Track HLS sessions through cookies or query parameters to enable session inspection through logs, metrics and API, track outbound bytes more precisely, and reduce load on external HTTP authentication URLs
  • Support serving streams with a CDN
  • Add readerType attribute to path_readers metric to filter path readers by type
  • Support Axis SRTP variant in RTSP client
Changed 10
  • Add a label after every listener opened message that mentions protocols of every listener
  • Embed TLS master keys into packet dumps when dumpPackets is true, in a format compatible with Wireshark
  • Use token as query parameter key to pass tokens, with legacy jwt query parameter key still supported
  • Expose token passed as query parameter to HTTP authentication
  • Return errors as JSON in playback API
  • Improve metrics performance by using string.Builder instead of string concatenation
Fixed 5
  • Prevent out-of-memory errors by imposing maximum size on body of incoming HTTP requests and responses
  • Fix metrics filtering by type=rtmp_conns and type=rtmps_conns
  • Fix race condition in metrics when reloading configuration
  • Fix RTSP-over-HTTP tunnel request target in RTSP client
  • Support parsing RTSP responses with no status message
Deprecated 1
  • authJWTInHTTPQuery configuration and JWTs in query parameters
New major features

HLS

Fixes and improvements

General

API

RTSP

HLS

Dependencies

  • code.cloudfoundry.org/bytefmt updated from v0.67.0 to v0.69.0
  • github.com/alecthomas/kong updated from v1.14.0 to v1.15.0
  • github.com/bluenviron/gohlslib/v2 updated from v2.2.9 to v2.3.0
  • github.com/bluenviron/gortsplib/v5 updated from v5.5.1 to v5.5.2
  • github.com/go-git/go-git/v5 updated from v5.17.2 to v5.18.0
  • github.com/matthewhartstonge/argon2 updated from v1.4.6 to v1.5.2
  • github.com/pion/ice/v4 updated from v4.2.2 to v4.2.5
  • golang.org/x/crypto updated from v0.49.0 to v0.50.0
  • golang.org/x/sys updated from v0.42.0 to v0.43.0
  • golang.org/x/term updated from v0.41.0 to v0.42.0
  • github.com/pion/stun/v3 updated from v3.1.1 to v3.1.2
  • github.com/pion/turn/v4 removed
  • golang.org/x/net updated from v0.52.0 to v0.53.0
  • golang.org/x/text updated from v0.35.0 to v0.36.0
  • golang.org/x/time updated from v0.12.0 to v0.14.0
  • github.com/pion/turn/v5 v5.0.3 added
  • hls.js updated from v1.6.15 to v1.6.16
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 originalPermalink
How v1.18.0 went

v1.17.1

Added 1
  • Implement AbortMessage for RTMP
Fixed 6
  • Fill server name indication (SNI) of RTSP client TLS connections
  • Fill server name indication (SNI) of RTMP client TLS connections
  • Fix random absolute timestamps with Opus, G711 and LPCM in WebRTC egress by using consistent outgoing RTP domain in rewritten audio paths
  • Strip TWCC extension from incoming RTP packets to prevent interference with WebRTC congestion control algorithm
  • Restore Docker compatibility with armv6 devices for RPI Camera
  • Restore compatibility with armv6 devices for RPI Camera
Security 1
  • Prevent directory traversal attacks by forbidding special characters that allow escaping from intended directories in path names used in the recorder, playback server, and HTTP-based components
Fixes and improvements

General

  • prevent directory traversal attacks (https://github.com/bluenviron/mediamtx/issues/5602) Path names are used as part of paths in several components: in the recorder, in the playback server and in every HTTP-based component (WebRTC, HLS, API). Special characters that allow to escape from the intended directory are now forbidden in order to prevent directory traversal attacks.

RTSP

RTMP

WebRTC

  • fix random absolute timestamps with Opus, G711 and LPCM (https://github.com/bluenviron/mediamtx/issues/5597) When rewriting audio RTP timestamps in WebRTC egress, NTP was derived using regenerated packet timestamps minus the incoming RTP base timestamp. That mixed timestamp domains and could shift absolute time by an arbitrary offset while still exposing mapping as available. Fix by using a consistent outgoing RTP domain in rewritten audio paths
  • strip TWCC extension of incoming RTP packets (https://github.com/bluenviron/mediamtx/issues/5146) (https://github.com/bluenviron/mediamtx/issues/5605) The TWCC extension is used as part of the WebRTC congestion control algorithm placed between the publisher and the server. If this extension is routed untouched from the server to readers, it messes with the congestion control algorithm present between the server and each reader. Remove it.

RPI Camera

Dependencies

  • github.com/bluenviron/gortmplib updated from v0.3.0 to v0.3.1
  • github.com/bluenviron/gortsplib/v5 updated from v5.5.0 to v5.5.1
  • github.com/gin-contrib/pprof updated from v1.5.3 to v1.5.4
  • github.com/go-git/go-git/v5 updated from v5.17.0 to v5.17.2
  • github.com/pion/ice/v4 updated from v4.2.1 to v4.2.2
  • github.com/pion/webrtc/v4 updated from v4.2.9 to v4.2.11
  • github.com/pion/sctp updated from v1.9.2 to v1.9.4
  • github.com/bluenviron/mediamtx-rpicamera updated from v2.5.4 to v2.5.5
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 originalPermalink
How v1.17.1 went

v1.17.0

Added 5
  • Support publishing multiple video/audio renditions in WebRTC
  • Provide track details in API
  • Add user field to RTSP, RTMP, SRT, WebRTC connections and sessions
  • Add RTSP reported lost packets tracking with outboundRtpPacketsReportedLost property
  • Add new stats for RTSPSession.outboundRTPPacketsDiscarded, Path.inboundFramesInError, SRTConn.outboundFramesDiscarded, WebRTCSession.outboundFramesDiscarded, RTMPConn.outboundFramesDiscarded, and HLSMuxer.outboundFramesDiscarded
Changed 6
  • Rename WebRTC stats to match RTSP ones
  • Add inbound or outbound prefix to stats for improved readability
  • Optionally validate JWT iss and aud claims
  • Add deprecated fields to OpenAPI definition
  • Add missing enums and move all enums in dedicated components in OpenAPI
  • Add two missing SRT stats to metrics
Fixed 9
  • Avoid buffering HTTP response body in loggerWriter by replacing buffer with plain int counter
  • Fix rtsps scheme not being used in requests
  • Support unwrapping MPEG-TS tracks for use with other protocols and recording system
  • Fix client support for hostnames in source and dest headers
  • Allocate an RTP sender for each server session
  • Store reported lost RTP packets in stats
New major features

WebRTC

API

Fixes and improvements

General

API

RTSP

HLS

WebRTC

Dependencies

  • code.cloudfoundry.org/bytefmt updated from v0.64.0 to v0.67.0
  • github.com/abema/go-mp4 updated from v1.4.1 to v1.5.0
  • github.com/bluenviron/gohlslib/v2 updated from v2.2.8 to v2.2.9
  • github.com/bluenviron/gortsplib/v5 updated from v5.4.0 to v5.5.0
  • github.com/bluenviron/mediacommon/v2 updated from v2.8.2 to v2.8.3
  • golang.org/x/crypto updated from v0.48.0 to v0.49.0
  • golang.org/x/sys updated from v0.41.0 to v0.42.0
  • golang.org/x/term updated from v0.40.0 to v0.41.0
  • golang.org/x/net updated from v0.51.0 to v0.52.0
  • golang.org/x/text updated from v0.34.0 to v0.35.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 originalPermalink
How v1.17.0 went
View all

Discussion

If you publish mediamtx, you can claim this product by proving you administer its repository.