Skip to content

Releases: bluenviron/mediamtx

v1.8.2

19 May 12:53
0ace308
Compare
Choose a tag to compare

Fixes and improvements

General

API

  • make replace paths idempotent (#3362). Don't return a 404 error if the path doesn't exist yet by @bouk

RTSP

HLS

WebRTC

  • fix returning code 404 when a stream does not exist (#3369)

Dependencies

  • build(deps): bump golang.org/x/crypto from 0.22.0 to 0.23.0 (#3330)
  • build(deps): bump github.com/gin-gonic/gin from 1.9.1 to 1.10.0 (#3334)
  • bump GitHub Actions OS (#3341)
  • build(deps): bump github.com/MicahParks/jwkset from 0.5.17 to 0.5.18 (#3363)
  • build(deps): bump github.com/MicahParks/keyfunc/v3 from 3.3.2 to 3.3.3 (#3364)

v1.8.1

05 May 17:13
dcb5b45
Compare
Choose a tag to compare

Fixes and improvements

General

  • fix unexpected behavior of authInternalUsers or authHTTPExclude (#3316). when some subfields of authInternalUsers or authHTTPExclude were not set explicitly in the configuration file, default values were used in their place. This is caused by a strange behavior of Go (golang/go#21092)
  • fix 'no segments found' error message (#3323)
  • h264: support 4K videos encoded with tune=zerolatency (#2985) (bluenviron/mediacommon#120)
  • vp9: fix crash when retrieving width / height / chroma and frame is not a key frame (bluenviron/mediacommon#123)

RTSP

RTMP

  • fix error when reading metadata (#3302). some rtmp client will send set chunk size after publish stream

WebRTC

  • fix error when charset is in Content-Type (#3126) (#3318)

Dependencies

  • build(deps): bump github.com/pion/rtp from 1.8.5 to 1.8.6 (#3288)

v1.8.0

21 Apr 15:28
3d69edb
Compare
Choose a tag to compare

New features

  • support HTTPS, Allow-Origin and trusted proxies in API, playback server, metrics server and pprof server (#2658) (#2491) (#3235) (#3280)

Fixes and improvements

General

API

  • fix crash when changing settings of an on-demand source that is idle (#3246) (#3249)
  • fix crash when calling config/paths/patch on an empty path config (#3265)

RTSP

HLS

  • fix population of runOnDemand's MTX_QUERY (#3255)

WebRTC

  • improve layout of publish page; add 'ideal' label to width, height and framerate (#2845) (#3254)
  • fix setting bitrate when 'optimize for voice' is off (#3262)
  • fix loading default video and devices from query (#3260)
  • in publish page, prevent same device from appearing multiple times (#3261)
  • detect stereo tracks published with the web page (#2902) (#3263)
  • support charset in Content-Type of WHIP offer responses (#3274)
  • support WHIP/WHEP endpoints without PATCH support (#3273) (#3277)

Dependencies

  • build(deps): bump github.com/pion/interceptor from 0.1.28 to 0.1.29 (#3259)
  • bump Go to 1.22 (#3279)

v1.7.0

14 Apr 17:40
099a6e8
Compare
Choose a tag to compare

New features

  • playback: support serving streams in standard MP4 format (#3213). This provides an alternative stream format that offers greater compatibility with some players.

Fixes and improvements

General

  • do not switch to legacy authentication system when readUser, readPass, publishUser, publishPass are present but are empty (#3113)
  • playback: do not concatenate segments with different tracks (#3197)
  • playback: fix concatenation of segments with multiple tracks (#3198). the duration of segments was computed erroneously, since it was taking. into consideration the last track only. Now the duration of a segment. corresponds to the maximum duration among all tracks.
  • playback: decrease concatenation tolerance to 0.5 secs (#3199)
  • playback: increase sequence number of fMP4 parts (#3200)
  • playback: adjust speed to compensate discrepancies between NTP and DTS (#3202)
  • playaback: use a fixed fMP4 part duration (#3203)
  • playback: improve performance when reading big segments (#3209)
  • playback: fix bug that messed up duration of last sample of each track (#3210)
  • playback: support serving tracks with any time scale (#3211)
  • record: use original timescale of track instead of 90khz (#3212)
  • deprecate path.playback parameter (#3217). this has become useless after the introduction of the new. authentication system, that already allows to select which paths are. available for playback
  • formats/fmp4: improve unmarshaler performance (bluenviron/mediacommon#112)

RTMP

  • fix streaming errors by handling AMF0 strict arrays (#3188) (#3189). * add amf0 strict array decode. * add amf0 long string decode. * support amf0 types undefined, unsupported, xmldocument and date. * fix error and add tests. * modify tests to follow original way to test. * do not skip markerUnsupported / markerUndefined. * implement StrictArray marshaling; remove handling of long strings, XML documents, date. ---------. Co-authored-by: aler9 46489434+aler9@users.noreply.github.com

HLS

  • decrease number of idle connections kept open after a reconnection (#3128)
  • fix freeze in case of muxing errors (#3135) (#3150)
  • fix directory creation when using hlsDirectory (#3135) (#3151)
  • store init.mp4 exclusively on RAM (bluenviron/gohlslib#143)
  • webrtc, hls: use absolute paths in Location header (#3195) (#3177) (#3240)

WebRTC

  • fix deadlock when a WHEP source fails (#3062) (#3108) (#3110). Co-authored-by: Jonathan Martin jonathan.martin@marss.com. Co-authored-by: aler9 46489434+aler9@users.noreply.github.com
  • fix memory leak when WHEP track gathering fails and decrease count of idle HTTP connections (#3124). * fix: whep gathering failure leaks peer connections. * fix: failure to create whep client leaks. when read fails, client is not closed. * fix: close idle connection with whip client. * fix: no link check on early whip client close. * move http.Client.CloseIdleConnections() outside WHIPClient. * automatically call WHEPClient.Close() in case of errors during WHEPClient.Read() or WHEPClient.Publish(). ---------. Co-authored-by: Jonathan Martin jonathan.martin@marss.com. Co-authored-by: aler9 46489434+aler9@users.noreply.github.com
  • fix crash when marshaling ICE fragments (#3231)
  • return 404 in case a WHIP PATCH or WHIP DELETE request fails (#3232)
  • webrtc, hls: use absolute paths in Location header (#3195) (#3177) (#3240)
  • Add option for ICE servers to be client only (#3164). * Add option for ICE servers to be client only. * add clientOnly to configuration file and API docs. ---------. Co-authored-by: aler9

API

  • Fix API version in docs (#3180)

Dependencies

  • build(deps): bump golang.org/x/sys from 0.17.0 to 0.18.0 (#3099)
  • build(deps): bump golang.org/x/term from 0.17.0 to 0.18.0 (#3098)
  • build(deps): bump github.com/pion/sdp/v3 (#3102)
  • build(deps): bump github.com/golang-jwt/jwt/v5 from 5.2.0 to 5.2.1 (#3104)
  • build(deps): bump github.com/MicahParks/keyfunc/v3 from 3.2.5 to 3.2.7 (#3105)
  • build(deps): bump golang.org/x/crypto from 0.20.0 to 0.21.0 (#3103)
  • build(deps): bump github.com/pion/sdp/v3 from 3.0.7 to 3.0.8 (#3120)
  • build(deps): bump github.com/MicahParks/keyfunc/v3 from 3.2.7 to 3.2.8 (#3132)
  • build(deps): bump github.com/MicahParks/keyfunc/v3 from 3.2.8 to 3.2.9 (#3136)
  • build(deps): bump github.com/alecthomas/kong from 0.8.1 to 0.9.0 (#3133)
  • build(deps): bump google.golang.org/protobuf from 1.30.0 to 1.33.0 (#3139)
  • build(deps): bump github.com/pion/rtp from 1.8.3 to 1.8.4 (#3153)
  • build(deps): bump github.com/datarhei/gosrt from 0.5.7 to 0.6.0 (#3154)
  • build(deps): bump github.com/pion/interceptor from 0.1.25 to 0.1.27 (#3171)
  • build(deps): bump github.com/pion/rtp from 1.8.4 to 1.8.5 (#3178)
  • build(deps): bump github.com/MicahParks/keyfunc/v3 from 3.2.9 to 3.3.2 (#3168)
  • build(deps): bump github.com/pion/sdp/v3 from 3.0.8 to 3.0.9 (#3179)
  • build(deps): bump golang.org/x/term from 0.18.0 to 0.19.0 (#3191)
  • build(deps): bump golang.org/x/crypto from 0.21.0 to 0.22.0 (#3192)
  • bump hls.js to v1.5.8 (#3222). Co-authored-by: mediamtx-bot bot@mediamtx
  • build(deps): bump github.com/pion/interceptor from 0.1.27 to 0.1.28 (#3228)

v1.6.0

04 Mar 13:41
dec395c
Compare
Choose a tag to compare

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

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

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)

v1.5.1

04 Feb 23:08
b92c8c2
Compare
Choose a tag to compare

Fixes and improvements

General

  • playback: add /list endpoint to list available timespans (#2978)
  • playback: accept durations written in seconds (#2979)
  • playback: make 'format' parameter optional (#2980)
  • prevent multiple crashes when reloading the configuration (#2945)

HLS

  • fix infinite loop in web client when reading incompatible codecs (#2956). . when a player received a stream with incompatible codecs, it started. polling the server for index.m3u8 in an infinite loop. This was caused. by #2631
  • hls, webrtc: in the web page, show connection errors to users (#2957)
  • hls, webrtc: in web page, prevent video from overflowing (#2958)
  • hls, webrtc: in web page, add shadow to messages (#2959)
  • fix crash in case of disk write errors (bluenviron/gohlslib#136) (bluenviron/gohlslib#137)

WebRTC

  • hls, webrtc: in the web page, show connection errors to users (#2957)
  • hls, webrtc: in web page, prevent video from overflowing (#2958)
  • hls, webrtc: in web page, add shadow to messages (#2959)

API

  • add endpoints for recording management (#2901) (#2988)
  • improve performance by using RWMutex (#2968)
  • apidocs: group operations by using tags (#2987)

RTSP

RPI Camera

  • add rpiCameraAWBGains (#2858)

Dependencies

v1.5.0

23 Jan 20:07
cf7088a
Compare
Choose a tag to compare

New major features

Fixes and improvements

General

  • support G711 tracks with multiple channels and custom sample rates (#2891)
  • Add Argon2 credential hash support (#2888)
  • treat different RTSP formats as different tracks in logs and API (#2907)
  • do not wait for HTTP connections to close when shutting down the server (#2909)
  • record: use reception time instead of current time in segment names (#2925)
  • h264: fix chroma_format_idc value for baseline profile (bluenviron/mediacommon#103)
  • support MPEG-2 audio (bluenviron/mediacommon#107) (bluenviron/gortsplib#486)

RTSP

SRT

  • wait some seconds before returning authentication errors (#2918)
  • support standard streamID syntax (#2469) (#2919)

API

  • return 404 when an entity is not found (#2582) (#2920)

Dependencies

  • build(deps): bump golang.org/x/crypto from 0.17.0 to 0.18.0 (#2896)
  • build(deps): bump github.com/abema/go-mp4 from 1.1.1 to 1.2.0 (#2913)
  • build(deps): bump github.com/datarhei/gosrt from 0.5.5 to 0.5.7 (#2912)
  • bump hls-js to v1.5.1 (#2903)

v1.4.2

07 Jan 16:58
b8b64fd
Compare
Choose a tag to compare

Fixes and improvements

General

RTSP

RTMP

  • support publishing G711 and LPCM tracks (#2857) (#2884)

HLS

WebRTC

  • prevent NotReadableError when publishing with Android (#2698) (#2842)

API

  • add 'query' field to RTMP, RTSP, SRT and WebRTC clients (#2689) (#2844)

Dependencies

v1.4.1

24 Dec 11:20
e6fec31
Compare
Choose a tag to compare

Fixes and improvements

RTMP

  • fix parsing error caused by extended timestamps (#2393) (#2556) (#2384) (#1550) (#2564) (#2808)
  • return error in case of extended chunk stream IDs (#2806)
  • rtmp, srt: fix output of 'is reading from' log entry (#2820)
  • change default RTMPS port to 1936 when it is omitted in source (#2821)

HLS

  • bump hls-js to v1.4.14 (#2825)

WebRTC

  • support Chrome versions older than M72 (#2621) (#2814)

SRT

  • rtmp, srt: fix output of 'is reading from' log entry (#2820)

RPI Camera

Dependencies

  • build(deps): bump github.com/pion/rtcp from 1.2.12 to 1.2.13 (#2801)
  • build(deps): bump github.com/google/uuid from 1.4.0 to 1.5.0 (#2804)
  • build(deps): bump golang.org/x/crypto from 0.16.0 to 0.17.0 (#2823)

v1.4.0

10 Dec 20:30
d261bfe
Compare
Choose a tag to compare

New features

  • support using static sources in paths with regular expressions (#824) (#2799). This allows to proxy requests to other servers by using regular expressions.

Fixes and improvements

General

  • support unix timestamp in filenames of recorded segments (#2774) by @neerajkanhere
  • fix crash when requesting metrics and RTMP, SRT or WebRTC servers are not present anymore (#2782)
  • add RTMPS metrics (#2783)
  • always use 'all_others' or 'all' after every other path configuration (#2798)

RTSP

HLS

  • bump hls-js to v1.4.13 (#2791). . Co-authored-by: mediamtx-bot bot@mediamtx
  • fix appending slash when behind a reverse proxy (#2770)
  • hls, webrtc: prevent XSS attack when appending slash to paths (#2766) (#2767) (#2772)
  • hls, webrtc: fix appending slash to paths that contain slashes (#2773)

RPI Camera

  • allow to change bitrate and IDR period dynamically (#2703) (#2764)

WebRTC

  • hls, webrtc: prevent XSS attack when appending slash to paths (#2766) (#2767) (#2772)
  • hls, webrtc: fix appending slash to paths that contain slashes (#2773)
  • fix propagating query parameters when appending slash to paths (#2771)

Dependencies

  • build(deps): bump golang.org/x/crypto from 0.15.0 to 0.16.0 (#2751)
  • build(deps): bump github.com/bluenviron/gortsplib/v4 from 4.6.0 to 4.6.1 (#2785)