v1.6.0

bluenviron/mediamtxv1.6.0Mar 4, 2024by github-actions[bot]

AI Summary

This major release introduces a comprehensive new authentication system covering playback, API, metrics, and PPROF, improving internal and HTTP-based authentication. It also includes significant fixes for RTSP, RTMP, HLS, and WebRTC protocols, along with dependency updates.

Key Highlights

  • New authentication system with JWT support and improved permissions
  • RTSP security improvements including SHA-256 digest support
  • RTMP performance and security improvements via new AMF0 encoder
  • HLS performance and bug fixes
  • Windows build fixes for compilation

New Features

  • New authentication system
  • RTSP SHA-256 digest support
  • RTMP AMF0 encoder
  • HLS performance improvements
  • SRT metrics

Full Release Notes

## New major features

* New authentication system (https://github.com/bluenviron/mediamtx/issues/1341) (https://github.com/bluenviron/mediamtx/issues/1992) (https://github.com/bluenviron/mediamtx/issues/2205) (https://github.com/bluenviron/mediamtx/issues/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 (https://github.com/bluenviron/mediamtx/issues/2993)
* remove hls.js from the repository and restore plain MIT license (https://github.com/bluenviron/mediamtx/issues/3008)
* fix compilation with Windows and git autocrlf (https://github.com/bluenviron/mediamtx/issues/3010) (https://github.com/bluenviron/mediamtx/issues/3011)
* fix double 'v' in automatic hls.js bump commits (https://github.com/bluenviron/mediamtx/issues/3020)
* remove double 'v' from hls.js bump messages (https://github.com/bluenviron/mediamtx/issues/3040)
* in hooks, allow replacing placeholders with environment (https://github.com/bluenviron/mediamtx/issues/3044)
* when stopping hooks, stop all their subprocesses too (https://github.com/bluenviron/mediamtx/issues/3004) (https://github.com/bluenviron/mediamtx/issues/3087)
* mpegts: emit decode error instead of exiting in case of parse errors (https://github.com/bluenviron/mediacommon/issues/110)

RTSP

* add random value to timestamp of tracks from other protocols (https://github.com/bluenviron/mediamtx/issues/3071)
* fix infinite loop when parsing specially-crafted headers (https://github.com/bluenviron/gortsplib/issues/521)
* add fuzz tests to all headers (https://github.com/bluenviron/gortsplib/issues/522)
* split headers.Authenticate and headers.Authorization (https://github.com/bluenviron/gortsplib/issues/523)
* support authenticating with SHA-256 digest (https://github.com/bluenviron/gortsplib/issues/524)
* change rtptime.Encoder signature and initialize time to a random value (https://github.com/bluenviron/gortsplib/issues/525)

RTMP

* add new AMF0 encoder and encoder (https://github.com/bluenviron/mediamtx/issues/3069). This improves performance, security and removes a dependency.

HLS

* in logs, store both ip and port of incoming requests (https://github.com/bluenviron/mediamtx/issues/3013)
* when alwaysRemux is true, prevent clients from creating muxers (https://github.com/bluenviron/mediamtx/issues/3015)
* fix crash when muxer is being recreated, improve performance (https://github.com/bluenviron/mediamtx/issues/3017)
* stop spamming 'stream doesn't contain any supported codec' when hlsAlwaysRemux is true (https://github.com/bluenviron/mediamtx/issues/3018)
* client: fix race condition when decoding time of MPEG-TS streams (https://github.com/bluenviron/gohlslib/issues/141)
* client: fix race condition when reading absolute time (https://github.com/bluenviron/gohlslib/issues/142)

WebRTC

* return an error when proxying stream with no tracks (https://github.com/bluenviron/mediamtx/issues/3042)

SRT

* add additional metrics (https://github.com/bluenviron/mediamtx/issues/2962) by @nerdbaggy

Dependencies

* build(deps): bump golang.org/x/crypto from 0.18.0 to 0.19.0 (https://github.com/bluenviron/mediamtx/issues/3002)
* bump hls-js to v1.5.4 (https://github.com/bluenviron/mediamtx/issues/2999). Co-authored-by: mediamtx-bot <bot@mediamtx>
* bump hls-js to vv1.5.5 (https://github.com/bluenviron/mediamtx/issues/3019). Co-authored-by: mediamtx-bot <bot@mediamtx>
* build(deps): bump github.com/bluenviron/mediacommon from 1.9.1 to 1.9.2 (https://github.com/bluenviron/mediamtx/issues/3030)
* bump hls.js to v1.5.6 (https://github.com/bluenviron/mediamtx/issues/3038). Co-authored-by: mediamtx-bot <bot@mediamtx>
* bump hls.js to v1.5.7 (https://github.com/bluenviron/mediamtx/issues/3072). Co-authored-by: mediamtx-bot <bot@mediamtx>
* build(deps): bump golang.org/x/crypto from 0.19.0 to 0.20.0 (https://github.com/bluenviron/mediamtx/issues/3078)
* build(deps): bump github.com/stretchr/testify from 1.8.4 to 1.9.0 (https://github.com/bluenviron/mediamtx/issues/3090)
* build(deps): bump github.com/pion/rtcp from 1.2.13 to 1.2.14 (https://github.com/bluenviron/mediamtx/issues/3089)