Releases: bluenviron/mediamtx
v1.15.4 "San Francisco"
Fixes and improvements
General
- support multiple CORS origins (#5150)
- add udpReadBufferSize parameter (#5129) this allows to set a global UDP read buffer, applied to every UDP socket.
- extend udpReadBufferSize to WebRTC UDP sockets (#5130) this allows to decrease packet losses without touching system parameters.
- recorder: prevent FMP4 durations from overflowing (#4711) (#5126) the timestamp difference between two samples was put inside an unsigned integer that, when negative, caused an overflow.
RTP
- reorder packets before ingestion (#5194)
RTSP
- support RTSP responses with empty status message (bluenviron/gortsplib#807) (bluenviron/gortsplib#928)
- server: fix timeout when reading with Media Foundation (#5090) (bluenviron/gortsplib#932)
- fix SP payload of MIKEY messages (bluenviron/gortsplib#827) (bluenviron/gortsplib#935) fill PayloadSPPolicyParamTypeAuthTagLen andPayloadSPPolicyParamTypeSessionAuthKeyLen properly.
- support formats with dynamic SSRC (bluenviron/gortsplib#687) (bluenviron/gortsplib#940)
- improve performance by decoding RTP header once (bluenviron/gortsplib#941)
HLS
- muxer: prevent FMP4 durations from overflowing (#5126) (bluenviron/gohlslib#290)
Dependencies
- code.cloudfoundry.org/bytefmt updated from v0.55.0 to v0.58.0
- github.com/alecthomas/kong updated from v1.12.1 to v1.13.0
- github.com/asticode/go-astits updated from v1.13.0 to v1.14.0
- github.com/bluenviron/gohlslib/v2 updated from v2.2.3 to v2.2.4
- github.com/bluenviron/gortsplib/v5 updated from v5.1.1 to v5.2.0
- github.com/matthewhartstonge/argon2 updated from v1.4.1 to v1.4.3
- github.com/pion/interceptor updated from v0.1.41 to v0.1.42
- github.com/pion/rtp updated from v1.8.23 to v1.8.25
- golang.org/x/crypto updated from v0.43.0 to v0.45.0
- golang.org/x/sys updated from v0.37.0 to v0.38.0
- golang.org/x/term updated from v0.36.0 to v0.37.0
- github.com/pion/transport/v3 updated from v3.0.8 to v3.1.1
- golang.org/x/mod updated from v0.29.0 to v0.30.0
- golang.org/x/net updated from v0.46.0 to v0.47.0
- golang.org/x/sync updated from v0.17.0 to v0.18.0
- golang.org/x/text updated from v0.30.0 to v0.31.0
- golang.org/x/tools updated from v0.38.0 to v0.39.0
- hls.js updated from v1.6.13 to v1.6.15
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 checksums of binaries by downloading checksums.sha256 and running:
cat checksums.sha256 | grep "$(ls mediamtx_*)" | sha256sum --check
v1.15.3
Fixes and improvements
General
- h264: fix DTS estimation of some HikVision cameras (#4617) (bluenviron/mediacommon#252)
RTSP
- fix timeout when recording with FFmpeg and UDP (#5100) (bluenviron/gortsplib#921)
- fix crash when calling PAUSE (bluenviron/gortsplib#922) this happened when playing and protocol is UDP-multicast.
- use AVP profile when scheme is RTSPS and protocol is TCP (bluenviron/gortsplib#916)
RTMP
- fix freeze when reading source (#5117) tracks were read without deadlines, freezing the server if they were not present. This patch also allows to close the server immediately during track reading.
- client: fix compatibility with SRS (#4630) (bluenviron/gortmplib#9)
RPI Camera
- Added missing AnalogueGainMode (bluenviron/mediamtx-rpicamera#71)
Dependencies
- code.cloudfoundry.org/bytefmt updated from v0.54.0 to v0.55.0
- github.com/bluenviron/gortmplib updated from v0.1.0 to v0.1.1
- github.com/bluenviron/gortsplib/v5 updated from v5.1.0 to v5.1.1
- github.com/bluenviron/mediacommon/v2 updated from v2.5.0 to v2.5.1
- github.com/pion/rtcp updated from v1.2.15 to v1.2.16
- github.com/pion/webrtc/v4 updated from v4.1.4 to v4.1.6
- github.com/pion/sctp updated from v1.8.39 to v1.8.40
- github.com/pion/transport/v3 updated from v3.0.7 to v3.0.8
- golang.org/x/mod updated from v0.28.0 to v0.29.0
- golang.org/x/tools updated from v0.37.0 to v0.38.0
- github.com/bluenviron/mediamtx-rpicamera updated from v2.5.0 to v2.5.1
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 checksums of binaries by downloading checksums.sha256 and running:
cat checksums.sha256 | grep "$(ls mediamtx_*)" | sha256sum --check
v1.15.2
Fixes and improvements
General
- add self-upgrader (#3501) (#5035) this allows to upgrade MediaMTX to latest version by running ./mediamtx --upgrade
- on Windows, do not look for configuration in linux paths (#5036)
- do not include recorder and HLS muxer in sent bytes (#4380) (#5039) in API (/paths/list, /paths/get) and metrics (paths_bytes_sent), the amount of sent bytes was increased even in case of writes to the recorder and HLS muxer, which are not generating network traffic. This fixes the issue.
- add read and write timeouts in HTTP servers (#5056) this prevents zombie connections from piling up.
- estimate absolute timestamp more precisely (#5078) When the absolute timestamp of incoming frames was not available, it was filled with the current timestamp, which is influenced by latency over time. This mechanism is replaced by an algorithm that detects when latency is the lowest, stores the current timestamp and uses it as reference throughout the rest of the stream.
- prevent estimated absolute timestamp from drifting too much (#5080)
- recorder: reset fMP4 sequence number during segment switch (#5082) It's useless to make sequence numbers unique across the entire stream.
- replace incoming absolute timestamps of any source (#5081) Absolute timestamps are used to generate recording segments, so users should not be able to change them, unless explicitly allowed. Parameter useAbsoluteTimestamp allowed to re-enable absolute timestamps with RTSP and WebRTC, now it is extended to all protocols.
- recorder: write additional infos inside segments (#5083) write stream ID, segment number, DTS, NTP in a dedicated box. This allows to improve the merge algorithm in the playback server.
- playback: improve segment merging algorithm (#5084) * merge segments only if they belong to the same stream and are consecutive. * compute DTS without using NTP timestamp, increasing robustness against NTP fluctuations.
API
RTSP
- Fix: invalid SDP: sdp: invalid syntax
c=IN(bluenviron/gortsplib#906) - server: add idle timeout (bluenviron/gortsplib#912) this prevents idle connections and sessions from stacking up.
HLS
- improve web page performance (#5062) load hls.js in parallel with the page.
WebRTC
- fix clippy audio when reading Opus (#3878) (#5047) Opus timestamp is now recomputed from scratch.
- fix packet corruption when reading G711 (#5048) when a reader is reading a G711 track, stream units are modified globally, affecting every other reader. This fixes the issue.
Dependencies
- code.cloudfoundry.org/bytefmt updated from v0.52.0 to v0.54.0
- github.com/MicahParks/keyfunc/v3 updated from v3.6.2 to v3.7.0
- github.com/bluenviron/gortsplib/v5 updated from v5.0.1 to v5.1.0
- github.com/bluenviron/mediacommon/v2 updated from v2.4.3 to v2.5.0
- github.com/go-git/go-git/v5 updated from v5.16.2 to v5.16.3
- github.com/matthewhartstonge/argon2 updated from v1.4.0 to v1.4.1
- github.com/pion/interceptor updated from v0.1.40 to v0.1.41
- github.com/pion/rtp updated from v1.8.22 to v1.8.23
- golang.org/x/crypto updated from v0.42.0 to v0.43.0
- golang.org/x/sys updated from v0.36.0 to v0.37.0
- golang.org/x/term updated from v0.35.0 to v0.36.0
- github.com/pion/srtp/v3 updated from v3.0.7 to v3.0.8
- github.com/quic-go/quic-go updated from v0.54.0 to v0.54.1
- golang.org/x/net updated from v0.44.0 to v0.46.0
- golang.org/x/text updated from v0.29.0 to v0.30.0
- github.com/Masterminds/semver/v3 v3.4.0 added
- github.com/minio/selfupdate v0.6.0 added
- aead.dev/minisign v0.2.0 added
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 checksums of binaries by downloading checksums.sha256 and running:
cat checksums.sha256 | grep "$(ls mediamtx_*)" | sha256sum --check
v1.15.1
Fixes and improvements
General
- fix authentication failure reason not being displayed (#5007)
- fix reading JWT when it is passed through the password field (#5009) Usernames and passwords must be requested explicitly to clients, but they were not requested when JWT is meant to be passed as password. This fixes the issue.
- stop accepting JWTs from query parameters unless allowed in conf (#5010) This is the first step into removing support for JWTs in query parameters, which is a security flaw.
- docs: explain how to decrease JWT length in Keycloak (#5012) this prevents errors when passing JWT with FFmpeg and GStreamer.
- log authentication errors of API, metrics, pprof (#4641) (#5015)
- allow changing record parameters without disconnecting readers (#4663) (#5018)
API
- fix crash in rtspsessions/list and /rtspsessions/get (#5030) (#5031) sometimes sessions have an empty associated path, and this caused a crash.
RTSP
- log authentication failure reason (#4641) (#5017)
- sdp: fix compatibility with a Uniview camera (#5008) (bluenviron/gortsplib#903)
Dependencies
- code.cloudfoundry.org/bytefmt updated from v0.51.0 to v0.52.0
- github.com/MicahParks/jwkset updated from v0.10.0 to v0.11.0
- github.com/MicahParks/keyfunc/v3 updated from v3.6.1 to v3.6.2
- github.com/bluenviron/gortsplib/v5 updated from v5.0.0 to v5.0.1
- github.com/gin-gonic/gin updated from v1.10.1 to v1.11.0
- github.com/bytedance/sonic updated from v1.13.2 to v1.14.0
- github.com/bytedance/sonic/loader updated from v0.2.4 to v0.3.0
- github.com/cloudwego/base64x updated from v0.1.5 to v0.1.6
- github.com/gin-contrib/sse updated from v1.0.0 to v1.1.0
- github.com/go-playground/validator/v10 updated from v10.26.0 to v10.27.0
- github.com/klauspost/cpuid/v2 updated from v2.2.10 to v2.3.0
- github.com/pelletier/go-toml/v2 updated from v2.2.3 to v2.2.4
- github.com/ugorji/go/codec updated from v1.2.12 to v1.3.0
- golang.org/x/arch updated from v0.16.0 to v0.20.0
- google.golang.org/protobuf updated from v1.36.6 to v1.36.9
- github.com/goccy/go-yaml v1.18.0 added
- github.com/quic-go/qpack v0.5.1 added
- github.com/quic-go/quic-go v0.54.0 added
- go.uber.org/mock v0.5.0 added
- golang.org/x/mod v0.28.0 added
- golang.org/x/sync v0.17.0 added
- golang.org/x/tools v0.37.0 added
- hls.js updated from v1.6.12 to v1.6.13
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
v1.15.0
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 (https://github.com/bluenviron/mediamtx/issues/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
v1.14.0
New major features
RTP
WebRTC
Fixes and improvements
General
- metrics: add paths_readers metric (#4473) (#4789)
- metrics: add path and remoteAddr tags (#3941) (#3420) (#4794)
- apidocs: add missing format to integers and floats (#4796)
- metrics: add additional WebRTC metrics (#3304) (#4797, webrtc_sessions_rtp_packets_sent, webrtc_sessions_rtp_packets_lost, webrtc_sessions_rtp_packets_jitter, webrtc_sessions_rtcp_packets_received, webrtc_sessions_rtcp_packets_sent.
- metrics: allow filtering metrics (#953) (#4809)
- Add support for HTTP over unix sockets (#4241)
- Add FreeBSD instructions (#4218)
- prevent leakages by exiting gracefully with SIGTERM (#4352) (#4845)
- allow setting UDP read buffer size (#3308) (#4846) new parameters: rtspUDPReadBufferSize, rtpUDPReadBufferSize, mpegtsUDPReadBufferSize
- fix memory leak when reloading the configuration (#4855) When a path has a MPEG-TS, RTP or WebRTC source and the pathconfiguration is reloaded, a routine was left open because the reload channel was not handled. This fixes the issue.
API
- add additional WebRTC statistics (#4795) rtpPacketsReceived, rtpPacketsSent, rtpPacketsLost, rtpPacketsJitter, rtcpPacketsReceived, rtcpPacketsSent
- rename udpSource into mpegtsSource (#4842)
RTSP
- client: use server interface as multicast interface (bluenviron/gortsplib#762) (bluenviron/gortsplib#847) this fixes most errors "found no interface that is multicast-capable and can communicate with IP".
- client: prevent setting up undesired back channels (bluenviron/gortsplib#856)
WebRTC
- remove custom forks of pion/webrtc and pion/ice (#4861) this fixes IPv6 reliability issues and allows to receive upstream updates in a more linear way.
- speed up candidate extraction (#4801)
- close WebRTC sessions when closing browser tabs (https://github.com/bluenviron/mediamtx/issues/4477) (#4849) This should decrease the delay before WebRTC sessions are marked as closed.
- fix clock rate of outgoing RTCP receiver reports (#4852)
- fix crash when loading an invalid configuration (#4856)
- show SDP answers in logs (#4862)
- solve domains in webrtcAdditionalHosts on server-side (#4817) (#4866)
MPEG-TS
- support MPEG-TS over unix sockets (#4388) (#4389) (#4828)
- listen on default multicast interface (#4565) (#4820) ... instead of listening on all multicast interfaces.
RPI Camera
- add validity checks on rpiCameraProfile and rpiCameraLevel (#4783)
- rename rpiCameraJPEGQuality in rpiCameraMJPEGQuality (#4784)
- rename rpiCameraProfile into rpiCameraH264Profile, rpiCameraLevel into rpiCameraH264Level (#3965) (#4785)
- allow setting software H264 profile and level (#3965) (#4786)
- allow setting software H264 profile and level (#3965) (bluenviron/mediamtx-rpicamera#57)
Dependencies
- code.cloudfoundry.org/bytefmt updated from v0.44.0 to v0.45.0
- github.com/MicahParks/keyfunc/v3 updated from v3.4.0 to v3.6.1
- github.com/alecthomas/kong updated from v1.12.0 to v1.12.1
- github.com/bluenviron/gortsplib/v4 updated from v4.16.0 to v4.16.2
- github.com/bluenviron/mediacommon/v2 updated from v2.4.0 to v2.4.1
- github.com/golang-jwt/jwt/v5 updated from v5.2.3 to v5.3.0
- github.com/matthewhartstonge/argon2 updated from v1.3.3 to v1.3.4
- github.com/pion/ice/v4 updated from v4.0.7 to v4.0.10
- github.com/pion/webrtc/v4 updated from v4.0.7 to v4.1.3
- golang.org/x/crypto updated from v0.40.0 to v0.41.0
- golang.org/x/sys updated from v0.34.0 to v0.35.0
- golang.org/x/term updated from v0.33.0 to v0.34.0
- github.com/pion/dtls/v3 updated from v3.0.4 to v3.0.6
- github.com/pion/sctp updated from v1.8.36 to v1.8.39
- golang.org/x/net updated from v0.42.0 to v0.43.0
- golang.org/x/text updated from v0.27.0 to v0.28.0
- github.com/bluenviron/mediamtx-rpicamera updated from v2.4.3 to v2.4.4
- hls.js updated from v1.6.7 to v1.6.9
Security
Binaries have been produced by the Release workflow without human intervention.
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
v1.13.1
Fixes and improvements
General
- recorder: limit maximum part size (#4674) (#4760). this prevents RAM exhaustion.
- fix generating timestamp of non-RTSP MPEG-4 video streams (#4758)
RTSP
RTMP
HLS
- add query params to iOS streams (#4708)
- fix endless loading in Firefox (#4706)
- muxer: set Content-Type of audio-only segments to audio/mp4 (bluenviron/gohlslib#251)
WebRTC
- fix endless loading in Firefox (#4707)
- fix re-establishing connection in iframe (#4721). Prevent a bug in Firefox in which, when the page is loaded in an iframe and the iframe is deleted and recreated, WebRTC is unable to re-establish the connection.
UDP
- mpegts: improve reader robustness (bluenviron/mediacommon#222). detect and skip corrupted data without stopping reading.
- support MPEG-4 Audio LATM tracks (#4403) (#4759)
SRT
- mpegts: improve reader robustness (bluenviron/mediacommon#222). detect and skip corrupted data without stopping reading.
- support MPEG-4 Audio LATM tracks (#4403) (#4759)
Dependencies
- code.cloudfoundry.org/bytefmt updated from v0.43.0 to v0.44.0
- github.com/bluenviron/gohlslib/v2 updated from v2.2.1 to v2.2.2
- github.com/bluenviron/gortsplib/v4 updated from v4.15.0 to v4.16.0
- github.com/bluenviron/mediacommon/v2 updated from v2.3.0 to v2.4.0
- github.com/golang-jwt/jwt/v5 updated from v5.2.2 to v5.2.3
- github.com/matthewhartstonge/argon2 updated from v1.3.2 to v1.3.3
- github.com/pion/rtp updated from v1.8.20 to v1.8.21
- github.com/pion/sdp/v3 updated from v3.0.14 to v3.0.15
- golang.org/x/crypto updated from v0.39.0 to v0.40.0
- golang.org/x/sys updated from v0.33.0 to v0.34.0
- golang.org/x/term updated from v0.32.0 to v0.33.0
- golang.org/x/net updated from v0.41.0 to v0.42.0
- golang.org/x/text updated from v0.26.0 to v0.27.0
- hls.js updated from v1.6.6 to v1.6.7
Security
Binaries have been produced by the Release workflow without human intervention.
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
v1.13.0
New major features
RTSP
- support encrypting UDP and UDP-multicast streams (#4690)
General
Fixes and improvements
General
- recorder, playback: support changing codec parameters without switching segment (#4262) (#4582)
- record: support storing timezone in recording segments (#3566) (#4597)
- support assigning paths to different configurations without closing stream (#4576)
- add attestation system to protect binaries (#4012) (#4629) this allows to prove that binaries were produced by GitHub Actions.
- fix crash when ConfWatcher fails to initialize (#4689)
RTSP
- support encrypted streams with SRTP and MIKEY (bluenviron/gortsplib#520) (bluenviron/gortsplib#809)
- make RTP packet size compatible with RTSP/SRTP (#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 (#4253) (bluenviron/gortsplib#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 (bluenviron/gortsplib#816)
- client: when reading multicast streams, write unicast reports (bluenviron/gortsplib#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 (bluenviron/gortsplib#818) source IPs sent by the server were not taken into consideration. This fixes the issue.
- set SSRC of outgoing packets (bluenviron/gortsplib#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 (bluenviron/gortsplib#821) this prevents losing some initial packets.
- support KLV tracks (bluenviron/gortsplib#808)
RTMP
HLS
- muxer: fix race condition when closing (bluenviron/gohlslib#236)
- client: fix race condition with non-low-latency streams (bluenviron/gohlslib#237)
- Support Verkada EXTINF Tags (bluenviron/gohlslib#244)
WebRTC
- fix writing tracks to some clients (#4602) some clients require PayloadType to be unique among all tracks, not only among tracks of same kind.
RPI Camera
- fix RTP packet size (#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 without human intervention.
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
v1.12.3
Fixes and improvements
General
- Feat: Add JWKS rotation API endpoint (#4463)
- add authJWTJWKSFingerprint (https://github.com/bluenviron/mediamtx/issues/4409) (#4514)
- do not ask for credentials when authentication method is JWT (#4450) (#4513)
- support passing JWTs through the password field (#4516). This is safer than passing JWTs through query parameters, unfortunately support is limited.
- parse HTTP username and password OR token, not both (#4517)
- allow disabling JWT in HTTP query parameters (#4518)
- allow using colon in path names (#4377) (#4519)
- change recommended OBS settings (#4523)
- playback: fix error 404 when seeking before start of segment (#4276) (#4533) (#4539)
- playback: fix jerky video (#4555). this happened when recording has B-frames, playback format is fmp4 and starting position doesn't correspond to a IDR frame.
- record: fix loss of audio samples during segment switch (#4556)
- Fix: gracefully handle fMP4 segments with missing or partial moof/mdat (#4538)
- recorder: fix duration of first part of a segment (#4562)
- recorder: fix segment duration when audio is in advance (#4563)
- recorder: improve fMP4 splitting algorithm (#4566)
- delete paths that belong to a new configuration (#4013) (#4568)
- av1: strip size when decoding bitstreams (bluenviron/mediacommon#197)
RTSP
- fix authentication regression (#4557) since #4267 it was impossible to perform authentication when protocol is RTSP and credentials are hashed.
- fix invalid TID=0 in writeAggregationUnit of rtph265 encoder (bluenviron/gortsplib#782)
RTMP
- fix connect command when reading (#4512) when reading, the "connect" command should not contain fpad,capabilities, audioCodecs, videoCodecs, videoFunction.
- support connecting to sources that require standard credentials (#4530)
HLS
- fix toggling hlsAlwaysRemux after server is started (#4503)
- muxer: return error when timestamp is impossible to handle (bluenviron/gohlslib#233)
- muxer: remove useless computation in MPEG-TS variant (bluenviron/gohlslib#234)
WebRTC
- prevent routine leaks (#4558) wait for all routines to exit before assuming a WebRTC connection is closed.
- fix race condition after #4558 (#4564)
SRT
- set source not ready when reader exits (#4467)
Dependencies
- Go updated from 1.23 to 1.24
- code.cloudfoundry.org/bytefmt updated from v0.39.0 to v0.40.0
- github.com/MicahParks/jwkset updated from v0.9.5 to v0.9.6
- github.com/alecthomas/kong updated from v1.10.0 to v1.11.0
- github.com/bluenviron/gohlslib/v2 updated from v2.1.4 to v2.1.5
- github.com/bluenviron/gortsplib/v4 updated from v4.14.0 to v4.14.1
- github.com/bluenviron/mediacommon/v2 updated from v2.1.1 to v2.2.0
- github.com/gin-gonic/gin updated from v1.10.0 to v1.10.1
- github.com/matthewhartstonge/argon2 updated from v1.3.0 to v1.3.1
- github.com/pion/interceptor updated from v0.1.37 to v0.1.38
- github.com/pion/rtp updated from v1.8.15 to v1.8.16
- github.com/pion/sdp/v3 updated from v3.0.11 to v3.0.13
- golang.org/x/crypto updated from v0.37.0 to v0.38.0
- golang.org/x/term updated from v0.31.0 to v0.32.0
- golang.org/x/net updated from v0.39.0 to v0.40.0
- golang.org/x/text updated from v0.24.0 to v0.25.0
- github.com/bluenviron/mediamtx-rpicamera updated from v2.4.1 to v2.4.2
Security
Binaries have been produced by the Release workflow without human intervention.
SHA256 checksums:
- mediamtx_v1.12.3_darwin_amd64.tar.gz edc850106758803f097ae821e60a9de71f13884fe1f9a634f4e7da9e27ad18ea
- mediamtx_v1.12.3_darwin_arm64.tar.gz cc19f3b0ed502ed74c0952c65e5dfeeb95f368948ed0942b47ffbb38065f6e3a
- mediamtx_v1.12.3_linux_amd64.tar.gz 450d1172bf6708cbd630eada115ccfc33453227e16750369113d1dfe34f876d8
- mediamtx_v1.12.3_linux_arm64.tar.gz 61b37116e36417a1afb9395f9f0d0c63d97f30cbdb0e6a6dccf95d69289e97f4
- mediamtx_v1.12.3_linux_armv6.tar.gz 6ff385cc93a0ca6a61401f1553ddfbebdb33b23efc12ff6aac36475446abf341
- mediamtx_v1.12.3_linux_armv7.tar.gz 97c8e9167a8ba06dbe0c3cc86879b109b653d3c4699552dad69509b47d6cd36e
- mediamtx_v1.12.3_windows_amd64.zip d87b5080e5d2f2061b0ea6f4b64945d88ecf8053021b6a121a05b53adb57d3bb
v1.12.2
Fixes and improvements
RPI Camera
- fix regression in RPI Docker image (https://github.com/bluenviron/mediamtx/issues/4494) (#4495)
Dependencies
- golang.org/x/sys updated from v0.32.0 to v0.33.0
Security
Binaries have been produced by the Release workflow without human intervention.
SHA256 checksums:
- mediamtx_v1.12.2_darwin_amd64.tar.gz 572a766870f821196ec0977fda7993ac5a8c45ba34174b3a048f000e3fe1dd0b
- mediamtx_v1.12.2_darwin_arm64.tar.gz df388cb70bcefe3822a63eb884576191120e63099d1fac4314d63d38b60eb238
- mediamtx_v1.12.2_linux_amd64.tar.gz f0ec6e21c3cde41d02f186f58636f0ea8ee67c9d44dacf5b9391e85600f56e74
- mediamtx_v1.12.2_linux_arm64.tar.gz 35803953e27a7b242efb1f25b4d48e3cc24999bcb43f6895383a85d6f8000651
- mediamtx_v1.12.2_linux_armv6.tar.gz 765156e430b6664d1092116e33c5ba5c5fc711d0fe4a0e5805326852d0fa7523
- mediamtx_v1.12.2_linux_armv7.tar.gz b10a5267113bc013339e3bfc7b60a3c32aeba1bf56f0e86be36f02b123ff1328
- mediamtx_v1.12.2_windows_amd64.zip f83b9954f3b39f2aed5e93dd739ce2e3dbb276aa21c1759547ba6d858ca68671