Releases: bluenviron/mediamtx
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
v1.12.1
Fixes and improvements
General
- add authJWTExclude to exclude actions when using JWT (#3431)
- support parsing JWT claims encoded as strings (#3696) (#4465)
- support filtering interface and source IP in UDP sources (#4178) (#4464)
- support customizing official Docker images (#4471)
- remove v8 suffix from arm64 binaries (#4472)
- fix recordPath documentation (#4480)
- h265: fix crash in DTS extractor with malicious payload (bluenviron/mediacommon#191)
- fmp4: block tracks with invalid timescale (bluenviron/mediacommon#192)
RTSP
- support decoding H264 units without Marker field (#3945) (bluenviron/gortsplib#759) (like the ones produced by the FLIR M400)
- fix SDP compatibility with some Uniview cameras (bluenviron/gortsplib#618) (bluenviron/gortsplib#765)
- prevent decoding SDPs without media streams (bluenviron/gortsplib#769)
- prevent decoding formats with zero clock rate or channels (bluenviron/gortsplib#770)
- fix crash when reading tracks with zero clock rate (#4476) (bluenviron/gortsplib#772 prevents RTCP sender and RTCP reports from being emitted whentrack has clock rate set to zero.
- client: enable keepalives in most cases (bluenviron/gortsplib#775)
WebRTC
- simplify webrtcTurnSecretExpiration (#4453)
- improve JavaScript classes (#4455)* add close() method* move support functions into classes as static methods* convert arrow functions into standard functions* make most methods private* add JSDocs
- prevent payload type conflict in read page (#4456)
RPI Camera
- fix missing clock rate in secondary stream (#4476) (#4478)
- fix using camera when /usr/sbin is not in PATH (#4479)
- support displaying microseconds in text overlay (#3866) (bluenviron/mediamtx-rpicamera#47)
Dependencies
- code.cloudfoundry.org/bytefmt updated from v0.36.0 to v0.39.0
- github.com/MicahParks/keyfunc/v3 updated from v3.3.10 to v3.3.11
- github.com/bluenviron/gortsplib/v4 updated from v4.13.0 to v4.14.0
- github.com/bluenviron/mediacommon/v2 updated from v2.1.0 to v2.1.1
- github.com/go-git/go-git/v5 updated from v5.15.0 to v5.16.0
- github.com/matthewhartstonge/argon2 updated from v1.2.1 to v1.3.0
- github.com/pion/rtp updated from v1.8.13 to v1.8.15
- github.com/bluenviron/mediamtx-rpicamera updated from v2.4.0 to v2.4.1
Security
Binaries have been produced by the Release workflow without human intervention.
SHA256 checksums:
- mediamtx_v1.12.1_darwin_amd64.tar.gz 2919ecc2738703fbac3411301cf7876c43fb1dff73e334e49d7c1d893e705328
- mediamtx_v1.12.1_darwin_arm64.tar.gz e7f7da716ae00c5363db98ab72c661978e439803e5983442ced3222571a8dcb4
- mediamtx_v1.12.1_linux_amd64.tar.gz 3fa66f5ffa546d74875b24c18984500a865b58309cd44eaca24c65ce4375d880
- mediamtx_v1.12.1_linux_arm64.tar.gz e0d2d16e7bf22d43290231f781659d291db5600ed146e7b3f33257c5f162f1e0
- mediamtx_v1.12.1_linux_armv6.tar.gz ce75093f6ad276b89c2d3223d0337cca17e53b7ed2c2631aa5bd5e22c0c8b00e
- mediamtx_v1.12.1_linux_armv7.tar.gz 0189a4edb9d798bd4793b4c9bb38f1e78073cb2dcee8d15db3774263ff2975de
- mediamtx_v1.12.1_windows_amd64.zip 890924df75226377fcad61037791ac92103f140710b23c3050b0f8ed5e908388
v1.12.0
New major features
RTSP
HLS
WebRTC
RPI Camera
- support exposing a secondary stream from the same camera (#4426)
- support routing absolute timestamps (#1300) (#4382)
Fixes and improvements
General
- record: fix crash when recordDeleteAfter is 0 and API is called (#4250) (#4254)
- warn users when non-existent fields are used in conf (#4261)
- change error message when stream is not found (#4301). Switch from 'no one is publishing to path' to 'no stream is available. on path' since the stream might be provided from a static source too.
- record: prevent recordDeleteAfter from deleting current segment (#4331)
- allow to customize syslog prefix (#4356). Co-authored-by: Кадышев Вячеслав v.kadyshev@dssl.ru
- count and log all discarded frames, decode errors, lost packets (#4363). Discarded frames, decode errors and lost packets were logged individually, then there was a mechanism that prevented more than 1 log entry per second from being printed, resulting in inaccurate reports. Now discarded frames, decode errors and lost packets are accurately counted, and their count is printed once every second.
- prevent unmarshalers from returning empty byte arrays (bluenviron/mediacommon#186)
API
- fix crash in /recordings/list (#4040) (#4291). The API crashed when: * '%path%' is not present in 'recordPath' * 'all_others' is in 'paths' * there's at least one recording segment. A recording segment without path is parsed as a segment with an empty path. This path is then passed to FindPathConf(), that returns an error in case of empty or invalid paths. This error is not checked for performance reasons, leading to the crash. This PR prevents empty or invalid paths from reaching FindPathConf().
RTSP
- fix authentication when rtspAuthMethods is empty (#4266). when rtspAuthMethods is nil, digest+SHA256 gets enabled, resulting in the inability of FFmpeg and most clients to connect due to compatibility issues.
- support using relative URLs in sourceRedirect (#4260)
- emit log message when remuxing RTP packets (#4422)
- prevent decoders from returning empty NALUs (#4346) (bluenviron/gortsplib#726)
- fix wrong size being reported in error messages (bluenviron/gortsplib#740)
- improve NALU size limit errors (bluenviron/gortsplib#741)
- improve AV1 decoder efficiency (bluenviron/gortsplib#744)
- improve AV1 compression (bluenviron/gortsplib#746)
HLS
- fix race condition when getting absolute time (#4375)
- fix reading streams with non-standard clock rates (#4376)
WebRTC
- fix connecting to TCP-only sources (#4293)
- make client always provide UDP candidates (#4298)
- fix codec collision in Chrome (#4394). Fix error "A BUNDLE group contains a codec collision for. payload_type='96. All codecs must share the same type, encoding name, clock rate and parameters. (INVALID_PARAMETER)"
RPI Camera
- make sure all parameters are 32-bit (#4425)
- fix cameras being picked randomly regardless of ID (#3994) (bluenviron/mediamtx-rpicamera#39)
Dependencies
- code.cloudfoundry.org/bytefmt updated from v0.0.0 to v0.36.0
- github.com/MicahParks/jwkset updated from v0.8.0 to v0.9.5
- github.com/alecthomas/kong updated from v1.7.0 to v1.10.0
- github.com/bluenviron/gohlslib/v2 updated from v2.1.3 to v2.1.4
- github.com/bluenviron/gortsplib/v4 updated from v4.12.3 to v4.13.0
- github.com/bluenviron/mediacommon removed
- github.com/datarhei/gosrt updated from v0.8.0 to v0.9.0
- github.com/fsnotify/fsnotify updated from v1.8.0 to v1.9.0
- github.com/gin-contrib/pprof updated from v1.5.2 to v1.5.3
- github.com/go-git/go-git/v5 updated from v5.13.2 to v5.15.0
- github.com/golang-jwt/jwt/v5 updated from v5.2.1 to v5.2.2
- github.com/matthewhartstonge/argon2 updated from v1.1.1 to v1.2.1
- github.com/pion/ice/v4 updated from v4.0.5 to v4.0.7
- github.com/pion/rtp updated from v1.8.11 to v1.8.13
- github.com/pion/sdp/v3 updated from v3.0.10 to v3.0.11
- golang.org/x/crypto updated from v0.32.0 to v0.37.0
- golang.org/x/sys updated from v0.30.0 to v0.32.0
- golang.org/x/term updated from v0.29.0 to v0.31.0
- github.com/Microsoft/go-winio updated from v0.6.1 to v0.6.2
- github.com/ProtonMail/go-crypto updated from v1.1.5 to v1.1.6
- github.com/bytedance/sonic updated from v1.12.6 to v1.13.2
- github.com/bytedance/sonic/loader updated from v0.2.1 to v0.2.4
- github.com/cloudflare/circl updated from v1.3.7 to v1.6.1
- github.com/cloudwego/base64x updated from v0.1.4 to v0.1.5
- github.com/cloudwego/iasm removed
- github.com/cyphar/filepath-securejoin updated from v0.3.6 to v0.4.1
- github.com/gabriel-vasile/mimetype updated from v1.4.7 to v1.4.8
- github.com/gin-contrib/sse updated from v0.1.0 to v1.0.0
- github.com/go-playground/validator/v10 updated from v10.23.0 to v10.26.0
- github.com/goccy/go-json updated from v0.10.4 to v0.10.5
- github.com/golang/groupcache updated from v0.0.0-20210331224755-41bb18bfe9da to v0.0.0-20241129210726-2c02b8208cf8
- github.com/klauspost/cpuid/v2 updated from v2.2.9 to v2.2.10
- github.com/pion/sctp updated from v1.8.35 to v1.8.36
- github.com/skeema/knownhosts updated from v1.3.0 to v1.3.1
- golang.org/x/arch updated from v0.12.0 to v0.16.0
- golang.org/x/mod removed
- golang.org/x/net updated from v0.34.0 to v0.39.0
- golang.org/x/sync removed
- golang.org/x/text updated from v0.21.0 to v0.24.0
- golang.org/x/tools removed
- google.golang.org/protobuf updated from v1.36.1 to v1.36.6
- github.com/bluenviron/mediacommon/v2 v2.1.0 added
- github.com/bluenviron/mediamtx-rpicamera updated from v2.3.6 to v2.4.0
- hls.js updated from v1.5.20 to v1.6.2
Security
Binaries have been produced by the Release workflow without human intervention.
SHA256 checksums:
- mediamtx_v1.12.0_darwin_amd64.tar.gz 1d408db2ecb2a363da02ab71797bd13b182ebff36d986d8bc7226581f6e45943
- mediamtx_v1.12.0_darwin_arm64.tar.gz dbd3c20557d81bf6d32038cc1d8390652a83a6418cc28f76ba03bd8dbe554317
- mediamtx_v1.12.0_linux_amd64.tar.gz 8bbf936e70a8abc80fdb2d0d67c1b53df6a3bfcf4d819ac730a4b0fddcc793bf
- mediamtx_v1.12.0_linux_arm64v8.tar.gz fdeb6e1649f82949c33c7619403147dabadf5a3fb178cf29805d3ea0fa5a2886
- mediamtx_v1.12.0_linux_armv6.tar.gz 4028650e05223806a969843dcdc9f1605a1c3543906a3e45518855ca5274ba96
- mediamtx_v1.12.0_linux_armv7.tar.gz 0b96fb21da1abbf612518daf3978055cb608157cecad2d076b47f644a6aac28b
- mediamtx_v1.12.0_windows_amd64.zip 1cca94d874b3fe5b32547159ce2070a3e87d0bf746aeb53e077ca4680a372d6e
v1.11.3
Fixes and improvements
General
- fix freeze when getting metrics and a RTSP connection is being created (#4179) (#4216)
- fix removing empty recording folders (#4227) (#4231)
RTSP
- fix compatibility with AVOID encoders (https://github.com/bluenviron/mediamtx/issues/4183) (bluenviron/gortsplib#688)
- server: fix panic during PAUSE due to race condition (bluenviron/gortsplib#689) (bluenviron/gortsplib#692)
WebRTC
Dependencies
- build(deps): bump github.com/pion/logging from 0.2.2 to 0.2.3 (#4205)
- build(deps): bump github.com/alecthomas/kong from 1.6.1 to 1.7.0 (#4208)
- build(deps): bump golang.org/x/sys from 0.29.0 to 0.30.0 (#4224)
- build(deps): bump golang.org/x/term from 0.28.0 to 0.29.0 (#4223)
- build(deps): bump github.com/bluenviron/gortsplib/v4 (#4236)
Security
Binaries have been produced by the Release workflow without human intervention.
SHA256 checksums:
- mediamtx_v1.11.3_darwin_amd64.tar.gz e0cfd7a4ee85a06c6ac2f76673441a8d793cfdd4f2a71a28f87e03f88b7748ab
- mediamtx_v1.11.3_darwin_arm64.tar.gz d7dc40c84f0099deb604f6cac39c6d58ef4d8d0d18645af3ea07e6da779b06c2
- mediamtx_v1.11.3_linux_amd64.tar.gz b2e65c0be00434b13e01feb64e85af4bc65fa3c62d1b9aa2d4139bd28d795cba
- mediamtx_v1.11.3_linux_arm64v8.tar.gz 6ae3e3d78a770ed28ae26f8e8b474387e9d44ee88d419a245e48530062bdb629
- mediamtx_v1.11.3_linux_armv6.tar.gz d1bd235a42bdee4c1f196f9802ba7b280352d12159476512b348769cf346e244
- mediamtx_v1.11.3_linux_armv7.tar.gz fc0cae3707a2561931b92add8d9b0f1f9a7e126b063b9c9c21c6edc1b906ebc0
- mediamtx_v1.11.3_windows_amd64.zip f9c690556fbe0eb8d409aea5c1ae48af16d985a80db12a58c2793e15e0f3c4de
v1.11.2
Fixes and improvements
General
- playback: improve performance (#4152)
- playback: fix filtering when start date is earlier than first segment (#4173)
- av1: refactor Bitstream; fix marshaling OBUs with size field (#3886) (bluenviron/mediacommon#172)
RTSP
- server: fix resetting writer when OnPlay fails (bluenviron/gortsplib#683)
- client: fix panic when writing packets after connection error (bluenviron/gortsplib#681)
- fix various race conditions when writing packets to closed clients or server sessions (bluenviron/gortsplib#684)
HLS
- fix reading AV1 from OBS+WHIP (#3886) (#4177)
- client: skip unsupported tracks (bluenviron/gohlslib#214)
WebRTC
- fix connectivity regression (#4161) (#4174). when webrtcLocalTCPAddress is filled, webrtcAdditionalHosts is not. empty and webrtcIPsFromInterfaces is false, connectivity was impossible. to achieve.
- fix setting video width, height and rate when publishing a camera with browser (https://github.com/bluenviron/mediamtx/issues/4167) (#4171)
- fix connectivity regression on Windows (#4150) (#4175). When MediaMTX is running on Windows and the machine has an IPv6, connectivity was impossible to achieve.
- disable UDP when not needed (#4176)
Dependencies
- build(deps): bump github.com/MicahParks/jwkset from 0.7.0 to 0.8.0 (#4155)
- build(deps): bump github.com/abema/go-mp4 from 1.4.0 to 1.4.1 (#4154)
- build(deps): bump github.com/pion/rtp from 1.8.10 to 1.8.11 (#4162)
- build(deps): bump github.com/MicahParks/keyfunc/v3 from 3.3.8 to 3.3.10 (#4156)
- build(deps): bump github.com/bluenviron/gortsplib/v4 (#4181)
- bump hls.js to v1.5.20 (#4185)
- build(deps): bump github.com/go-git/go-git/v5 from 5.13.1 to 5.13.2 (#4190)
- build(deps): bump github.com/bluenviron/mediacommon (#4193)
- build(deps): bump github.com/bluenviron/gohlslib/v2 from 2.1.2 to 2.1.3 (#4194)
Security
Binaries have been produced by the Release workflow without human intervention.
SHA256 checksums:
- mediamtx_v1.11.2_darwin_amd64.tar.gz b6da12ac198c35cdeb29f41514491e88d94e083d038b448b6ddc7ed055151e95
- mediamtx_v1.11.2_darwin_arm64.tar.gz 3042f3607b9fcbe1d56df47e12b0b71132eedbf5772e1b4082f679facd533808
- mediamtx_v1.11.2_linux_amd64.tar.gz 08796713a1250f8f328e3a812b6cdd4f2925f323b003999929e2beb82dfa4c23
- mediamtx_v1.11.2_linux_arm64v8.tar.gz 3003d91cada7c298995a92d5bcddf9a439eda8e0f9a8dd6607188557e90155e0
- mediamtx_v1.11.2_linux_armv6.tar.gz b1510ea1d0fade23e98c1f742a1da5f02ce2947441455bfe19f9aa785a0b3421
- mediamtx_v1.11.2_linux_armv7.tar.gz af1a8da1f45f0abcf79f7f4fafe149aa4545f02e79945120623dda970a1d082d
- mediamtx_v1.11.2_windows_amd64.zip 31c8d6fb9caa3218fc19fd7a31f9e8393794945f103e676784a89dca55541d69
v1.11.1
Fixes and improvements
General
- playback: fix extraneous list entry when start time is specified (#4129)
- playback: in /list, always return 404 when there are no timespans (#4131)
- fix closing some custom commands on Windows (#3981)
RTMP
HLS
- client: show codec in 'unsupported codec' error (#4123) (bluenviron/gohlslib#212)
WebRTC
- fix MTX_QUERY not set when reading or publishing (#4138) (#3937) (#4141)
- switch to recvonly transceivers (#4059) (#4108). This fixes compatibility with devices that support decoding AV1 but don't support encoding it. This was previously impossible to achieve due to a bug that prevented video from being displayed when recvonly transceivers were in use and audio was not present.
- fix reconnecting to server after a failure (#4022)
Dependencies
- build(deps): bump golang.org/x/term from 0.27.0 to 0.28.0 (#4115)
- build(deps): bump golang.org/x/crypto from 0.31.0 to 0.32.0 (#4113)
- build(deps): bump github.com/pion/rtp from 1.8.9 to 1.8.10 (#4051)
- build(deps): bump github.com/alecthomas/kong from 1.6.0 to 1.6.1 (#4119)
- build(deps): bump github.com/abema/go-mp4 from 1.3.0 to 1.4.0 (#4122)
- build(deps): bump github.com/MicahParks/jwkset from 0.5.20 to 0.6.0 (#4125)
- build(deps): bump github.com/MicahParks/keyfunc/v3 from 3.3.5 to 3.3.7 (#4126)
- build(deps): bump github.com/go-git/go-billy/v5 from 5.6.1 to 5.6.2 (#4133)
- build(deps): bump github.com/MicahParks/jwkset from 0.6.0 to 0.7.0 (#4134)
- build(deps): bump github.com/MicahParks/keyfunc/v3 from 3.3.7 to 3.3.8 (#4135)
- bump hls.js to v1.5.19 (#4140)
- build(deps): bump github.com/pion/sdp/v3 from 3.0.9 to 3.0.10 (#4144)
- bump pion/webrtc to v4 (#4145)
- build(deps): bump github.com/bluenviron/gohlslib/v2 from 2.1.1 to 2.1.2 (#4146)
Security
Binaries have been produced by the Release workflow without human intervention.
SHA256 checksums:
- mediamtx_v1.11.1_darwin_amd64.tar.gz a921b730ca3c484d61299437a2c19b76e4ab5397eaa350a804ab55f68fb35d28
- mediamtx_v1.11.1_darwin_arm64.tar.gz f81fe3d7f08e2bb078fa8aaad6ffb390ecb533fa1f51691d094c68050412dd25
- mediamtx_v1.11.1_linux_amd64.tar.gz d1e013826a0c643163b57e90b4efd6f42e1398aef5e0ef299e04fdda2dfc246f
- mediamtx_v1.11.1_linux_arm64v8.tar.gz 6e098570a14a9fd4d99d1af636d556ca27566932b46c801b1891159f2ca2b4ea
- mediamtx_v1.11.1_linux_armv6.tar.gz 48c54dd42d91e9ad38fae0350d700e85388a2a2d3624faaa98a989d182627971
- mediamtx_v1.11.1_linux_armv7.tar.gz 6a3181a10ab4ec3fe3cc28baaeae41e08c111e903fb85755b3c991449d7e18db
- mediamtx_v1.11.1_windows_amd64.zip 2cb8395f0a18c564431de0ef44722e0baa12e4cc81b654284cc0125d3ad74d71
v1.11.0
New major features
RTMP
- support additional Enhanced-RTMP features (#3685) (#4088), including: support publishing Opus and AC-3 tracks, support publishing more than 2 tracks. This is compatible with OBS multitrack video and OBS VOD audio track.
API
- api, metrics: add additional RTSP statistics (#3312) (#4073)
- add 'session' field to RTSPConn (#3974) (#4074)
Fixes and improvements
General
- fix race condition when checking configuration (#4044). * simplify configuration parser. * fix race condition when checking configuration
- fix recording timestamp with some audio codecs (#3969) (#4041) (#4062). When a stream contained an Opus, MPEG-4 audio or AC3 track, timestamp in. the segment file name was increasing at twice the speed.
- fix MTX_CONN_TYPE value with RTSP connections (#3967) (#4075)
- warn users if deprecated parameters are being used (#4080)
- playback: allow filtering timespans by start and end date (#3637) (#3489) (#4085)
- accept durations expressed as days (i.e. '1d') (#4094)
- generate and show binary checksums in releases (#4012) (#4095)
- playback: improve /list response time (#3637) (#4096). Response times of the /list endpoint were slow because the duration of each segment was computed from scratch by summing the duration of each of its parts. This is improved by storing the duration of the overall segment in the header and using that, if available.
- playback: improve /list performance (#3663) (#4102). Segments are now parsed in parallel.
- h264: Fix AnnexB parser when NALUs end with a 0 byte (bluenviron/mediacommon#159)
- codecs/av1: rewrite LEB128 implementation (bluenviron/mediacommon#161). According to the specification, a LEB128 cannot be greater than 2^32.
- codecs/av1: support AMD hardware encoder (#3902) (bluenviron/mediacommon#162)
- mpegts: prevent wrong results in codec comparisons (bluenviron/mediacommon#167)
API
- api, metrics: fix RTC lowercase in webRTCSession and webRTCSource (#4076)
RTSP
- rename encryption, protocols, serverKey, serverCert into rtspEncryption, rtspProtocols, rtspServerKey, rtspServerCert (#4078)
- prevent decoders from emitting corrupted frames (bluenviron/gortsplib#638)
- Support relative Content-Base paths (bluenviron/gortsplib#636)
- reuse UDP buffers when possible (bluenviron/gortsplib#639)
- client: fix resetting time decoder (bluenviron/gortsplib#642)
- use new time decoder in place of deprecated one (bluenviron/gortsplib#643)
- rtph264: accept non-compliant single FU-A frames (bluenviron/gortsplib#649). Some IP cameras (e.g. CostarHD) have been observed to emit single. fragment RTP FU-A packets, with start and end bit both set, for. sufficiently small H.264 P-frames. Rather than emit an error,. workaround such non-compliant frames.
- server: fix crash with invalid SETUP request (#4025) (bluenviron/gortsplib#652)
- skip invalid bytes in connection read (bluenviron/gortsplib#653)
- client: fix BytesSent / BytesReceived computation (bluenviron/gortsplib#612) (bluenviron/gortsplib#654). When the TCP transport protocol is in use, BytesSent and BytesReceived. were increased twice.
- close connections in case of write errors (bluenviron/gortsplib#613) (bluenviron/gortsplib#655)
- use a single TCP outgoing buffer each client / session (bluenviron/gortsplib#665). this saves memory.
- server: always open firewall before sending messages (bluenviron/gortsplib#666)
- prevent RTPPacketsJitter from being NaN (bluenviron/gortsplib#670)
- server: fix panic during session closure (bluenviron/gortsplib#671)
- prevent wrong results in format comparisons or when formats are used as keys (bluenviron/gortsplib#673)
RTMP
HLS
- fix VLC compatibility (bluenviron/gohlslib#204)
- client: fix race condition when getting NTP (bluenviron/gohlslib#207)
SRT
Dependencies
- build(deps): bump github.com/bluenviron/gortsplib/v4 (#4007)
- build(deps): bump github.com/alecthomas/kong from 1.4.0 to 1.5.1 (#4008)
- build(deps): bump golang.org/x/term from 0.26.0 to 0.27.0 (#4016)
- build(deps): bump golang.org/x/crypto from 0.29.0 to 0.30.0 (#4019)
- build(deps): bump github.com/alecthomas/kong from 1.5.1 to 1.6.0 (#4029)
- build(deps): bump github.com/datarhei/gosrt from 0.7.0 to 0.8.0 (#3992)
- build(deps): bump github.com/bluenviron/gohlslib/v2 from 2.0.0 to 2.1.0 (#4033)
- build(deps): bump golang.org/x/crypto from 0.30.0 to 0.31.0 (#4034)
- build(deps): bump github.com/matthewhartstonge/argon2 (#4039)
- build(deps): bump github.com/pion/rtcp from 1.2.14 to 1.2.15 (#4048)
- build(deps): bump github.com/bluenviron/mediacommon (#4047)
- bump hls.js to v1.5.18 (#4052). Co-authored-by: mediamtx-bot bot@mediamtx
- build(deps): bump github.com/matthewhartstonge/argon2 (#4068)
- build(deps): bump github.com/matthewhartstonge/argon2 (#4070)
- build(deps): bump github.com/abema/go-mp4 from 1.2.0 to 1.3.0 (#4072)
- build(deps): bump github.com/gin-contrib/pprof from 1.5.1 to 1.5.2 (#4071)
- build(deps): bump github.com/go-git/go-git/v5 from 5.12.0 to 5.13.0 (#4091)
- build(deps): bump github.com/go-git/go-billy/v5 from 5.6.0 to 5.6.1 (#4090)
- build(deps): bump github.com/bluenviron/gohlslib/v2 from 2.1.0 to 2.1.1 (#4099)
- build(deps): bump github.com/bluenviron/gortsplib/v4 (#4097)
- build(deps): bump github.com/go-git/go-git/v5 from 5.13.0 to 5.13.1 (#4100)
Security
Binaries have been produced by the Release workflow without human intervention.
SHA256 checksums:
- mediamtx_v1.11.0_darwin_amd64.tar.gz 278eb585eb9121e16b5eb72e64f67f3614fba901c8365341b487f6bfee3da526
- mediamtx_v1.11.0_darwin_arm64.tar.gz 7ad7643f831e2dfc3463c24484e5038f69115eba9a861d3854392b3b77df1d22
- mediamtx_v1.11.0_linux_amd64.tar.gz c6c752d1fb0a8308d718f057a19b455485f5a8320ad4964afe927b592d8e170d
- mediamtx_v1.11.0_linux_arm64v8.tar.gz 12b438df60f6eb844b48887122c6c16335faa0ebfa1bf91a2363910e2732e7fb
- mediamtx_v1.11.0_linux_armv6.tar.gz 38d22b6c65ce52037bce66e07655eeeb0c8d844027f8a64c512bcc90ba467370
- mediamtx_v1.11.0_linux_armv7.tar.gz f284e20a80d01863985fc1e84f74f98aa3c67979af25a5e24a6cc4d382c265a4
- mediamtx_v1.11.0_windows_amd64.zip fa9335346f1e97d79eb658fd3579d9af0e71a1ee062b5b9b8000f6e90b966282