New major features
- New authentication system (#1341) (#1992) (#2205) (#3081). This is a new authentication system that covers all the features exposed by the server, including playback, API, metrics and PPROF, improves internal authentication by adding permissions, improves HTTP-based authentication by adding the ability to exclude certain actions from being authenticated, adds an additional method (JWT-based authentication).
Fixes and improvements
General
- stop logging HTTP requests twice (#2993)
- remove hls.js from the repository and restore plain MIT license (#3008)
- fix compilation with Windows and git autocrlf (#3010) (#3011)
- fix double 'v' in automatic hls.js bump commits (#3020)
- remove double 'v' from hls.js bump messages (#3040)
- in hooks, allow replacing placeholders with environment (#3044)
- when stopping hooks, stop all their subprocesses too (#3004) (#3087)
- mpegts: emit decode error instead of exiting in case of parse errors (bluenviron/mediacommon#110)
RTSP
- add random value to timestamp of tracks from other protocols (#3071)
- fix infinite loop when parsing specially-crafted headers (bluenviron/gortsplib#521)
- add fuzz tests to all headers (bluenviron/gortsplib#522)
- split headers.Authenticate and headers.Authorization (bluenviron/gortsplib#523)
- support authenticating with SHA-256 digest (bluenviron/gortsplib#524)
- change rtptime.Encoder signature and initialize time to a random value (bluenviron/gortsplib#525)
RTMP
- add new AMF0 encoder and encoder (#3069). This improves performance, security and removes a dependency.
HLS
- in logs, store both ip and port of incoming requests (#3013)
- when alwaysRemux is true, prevent clients from creating muxers (#3015)
- fix crash when muxer is being recreated, improve performance (#3017)
- stop spamming 'stream doesn't contain any supported codec' when hlsAlwaysRemux is true (#3018)
- client: fix race condition when decoding time of MPEG-TS streams (bluenviron/gohlslib#141)
- client: fix race condition when reading absolute time (bluenviron/gohlslib#142)
WebRTC
- return an error when proxying stream with no tracks (#3042)
SRT
- add additional metrics (#2962) by @nerdbaggy
Dependencies
- build(deps): bump golang.org/x/crypto from 0.18.0 to 0.19.0 (#3002)
- bump hls-js to v1.5.4 (#2999). Co-authored-by: mediamtx-bot bot@mediamtx
- bump hls-js to vv1.5.5 (#3019). Co-authored-by: mediamtx-bot bot@mediamtx
- build(deps): bump github.com/bluenviron/mediacommon from 1.9.1 to 1.9.2 (#3030)
- bump hls.js to v1.5.6 (#3038). Co-authored-by: mediamtx-bot bot@mediamtx
- bump hls.js to v1.5.7 (#3072). Co-authored-by: mediamtx-bot bot@mediamtx
- build(deps): bump golang.org/x/crypto from 0.19.0 to 0.20.0 (#3078)
- build(deps): bump github.com/stretchr/testify from 1.8.4 to 1.9.0 (#3090)
- build(deps): bump github.com/pion/rtcp from 1.2.13 to 1.2.14 (#3089)