Releases: bluenviron/mediamtx
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 wr 8000 ong 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
v1.10.0
New features
WebRTC
Fixes and improvements
General
- improve unsafe path handling (#3927)
- fix crash when recording a stream with unsupported tracks (#3978) (#3996) (#3978)
WebRTC
- include query parameters in session URL (#3920)
- move JavaScript reader and publisher into portable classes (#3921)
- restart ICE only on failed connection states (#3899)
RPI Camera
- increase default camera bitrate to 5 Mbps (#3896)
- ix restarting stream in case of disconnections or driver errors (#3988)
- ix restarting camera when component crashes (#3997)
- improve performance by using DMA buffers (bluenviron/mediamtx-rpicamera#29). this speeds up text drawing and software encoding.
- fix freeze when RAM is full or under pressure (bluenviron/mediamtx-rpicamera#33)
- emit error signal in case of driver errors (bluenviron/mediamtx-rpicamera#34)
- remove useless timestamp normalization (bluenviron/mediamtx-rpicamera#35)
- always free incoming commands from memory (bluenviron/mediamtx-rpicamera#36)
Dependencies
- build(deps): bump github.com/go-git/go-billy/v5 from 5.5.0 to 5.6.0 (#3900)
- build(deps): bump github.com/fsnotify/fsnotify from 1.7.0 to 1.8.0 (#3925)
- build(deps): bump github.com/alecthomas/kong from 1.2.1 to 1.3.0 (#3926)
- bump Golang to 1.23 (#3702)
- build(deps): bump github.com/alecthomas/kong from 1.3.0 to 1.4.0 (#3940)
- build(deps): bump golang.org/x/sys from 0.26.0 to 0.27.0 (#3948)
- build(deps): bump golang.org/x/crypto from 0.28.0 to 0.29.0 (#3946)
- build(deps): bump golang.org/x/term from 0.25.0 to 0.26.0 (#3947)
- build(deps): bump github.com/gin-contrib/pprof from 1.5.0 to 1.5.1 (#3955)
- build(deps): bump github.com/matthewhartstonge/argon2 (#3950)
- build(deps): bump github.com/stretchr/testify from 1.9.0 to 1.10.0 (#3979)
- bump mediamtx-rpicamera to v2.3.6 (#4004)
v1.9.3
Fixes and improvements
General
- fix version reporting with --version (#3846) (#3847)
- make better use of Gin middleware system (#3849)
- pprof: fix required authentication action (#3850)
- restore pprof service (#3848) (#3851)
- fix setting version in Arch Linux package (#3852)
- warn instead of exiting when it is not possible to get version from git (#3857)
- fix wrong -dirty prefix in version (#3869)
- h264: improve performance of SPS parser (bluenviron/mediacommon#152)
- h264: fix memory filling up in case of malicious SPS (bluenviron/mediacommon#153). When CpbCntMinus1 is set to unreasonably high values, the RAM fills up.
RTSP
- support H264 with payload type 35 from Bosh Cameras (bluenviron/gortsplib#632)
- server: fix error message (bluenviron/gortsplib#634). Return error 'can't setup medias with different protocols' when trying to use UDP and TCP in sequence.
RPI Camera
- fix using software encoder when frame stride is different from frame width (bluenviron/mediamtx-rpicamera#18)
- improve performance of H264 hardware encoder (bluenviron/mediamtx-rpicamera#25). Performance is increased by sharing structs between multiple API calls.
- improve performace of H264 hardware encoder (bluenviron/mediamtx-rpicamera#26). remove call to poll()
- fix segfault when using invalid ROI or AfWindow parameters (bluenviron/mediamtx-rpicamera#27)
Dependencies
- bump hls.js to v1.5.17 (#3885)
v1.9.2
Fixes and improvements
General
- fix memory leak in case of errors during initialization of a reader (#3831)
- log track ID when skipping tracks (#3798)
- support using JWT in Authorization header with API, Metrics, PProf (#3630) (#3795)
- show right server version when server is compiled from source (#3409)
- add Unity instructions (#3837)
- route original timestamps without converting to durations (#3839). This improves timestamp precision.
- add instructions about SELinux distributions (#3673)
RTSP
- fix generating media URL with leading slash in control attribute (#3517) (bluenviron/gortsplib#625)
- use native timestamps instead of time.Duration (bluenviron/gortsplib#627). this improves timestamp precision
HLS
- support generating streams with multiple audio tracks (#2728) (#3793) (bluenviron/gohlslib#181)
- muxer: put EXT-X-MEDIA before EXT-X-STREAM (bluenviron/gohlslib#183)
- muxer: prevent creating empty parts before switching segments (bluenviron/gohlslib#184)
- muxer: serve different tracks in different streams (bluenviron/gohlslib#180)
- muxer: keep TARGETDURATION constant to minimize iOS errors (bluenviron/gohlslib#187)
- use native timestamps instead of time.Duration (bluenviron/gohlslib#190)
- client: fix computing absolute timestamp with multiple renditions (bluenviron/gohlslib#192)
WebRTC
- fix crash in case of congestion (#3813) (#3815)
- fix connection timeout when webrtcAdditionalHosts is filled with existing IP (#3835).
Dependencies
- build(deps): bump github.com/MicahParks/jwkset from 0.5.19 to 0.5.20 (#3787)
- build(deps): bump github.com/pion/interceptor from 0.1.30 to 0.1.31 (#3825)
- build(deps): bump golang.org/x/term from 0.24.0 to 0.25.0 (#3827)
- build(deps): bump github.com/pion/interceptor from 0.1.31 to 0.1.32 (#3830)
- build(deps): bump golang.org/x/crypto from 0.27.0 to 0.28.0 (#3828)
- build(deps): bump github.com/pion/interceptor from 0.1.32 to 0.1.37 (#3840)