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: Кадышев Вячеслав [email protected]
- 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