Skip to content

Releases: bluenviron/mediamtx

v0.18.3

10 May 15:39
Compare
Choose a tag to compare

Fixes and improvements

  • General: fix panic that happens when publishing to a path with source = redirect (#933)
  • General: fix bias error in AAC timestamp
  • RTSP source: restore support for cameras with percent sign in password
  • HLS muxer: prefer hls.js over native HLS

v0.18.2

02 May 17:32
Compare
Choose a tag to compare

Fixes and improvements

  • General: add limit on AU (AAC units) and NALU (H264 units) sizes in order to prevent RAM exhaustion
  • RTSP source: support AUs wrapped inside ADTS (#855)
  • RTSP source: fix timeout that happens when there's a UDP->TCP switch and Content-Base contains an absolute URL (#897)
  • HLS muxer: fix PCR insertion when stream is audio only
  • HLS muxer: update primary playlist in case SPS/PPS changed
  • HLS muxer: remove progressive flag; add liveSyncDurationCount, liveMaxLatencyDurationCount to hls.js
  • HLS muxer: upgrade hls.js

v0.18.1

24 Apr 09:40
Compare
Choose a tag to compare

Fixes and improvements

  • RTSP server: change default RTSPS port (#867)
  • RTSP server: fix reading with ffplay and stateless ipv6
  • RTSP server: fix reading with multicast when host is macOS (#895)
  • RTSP source: support AAC tracks with custom sizelength, indexlength and indexdeltalength
  • RTSP source: fix parsing of transport header with dahua rtsp server (bluenviron/gortsplib#121)
  • HLS muxer: add EXT-X-INDEPENDENT-SEGMENTS tag
  • HLS muxer: do not increase version number of MPEG-TS tables unless there's a reason (asticode/go-astits#38)
  • HLS muxer: fix crash in case of null SPS
  • HLS muxer: add EXT-X-VERSION to primary playlist

v0.18.0

10 Apr 16:00
Compare
Choose a tag to compare

New major features

  • General: support H264 streams with dynamic SPS / PTS, i.e. streams with a resolution that changes over time. This is particularly useful when dealing with IP cameras, whose resolution can be changed into their settings page
  • RTSP server/source: parse all incoming RTP/RTCP packets. This allowed to solve a series of long-standing issues that required a deeper understanding on what exactly is routed by the server, including:
    • remove padding from outgoing RTP packets, saving bandwidth
    • generate RTCP sender reports automatically; stop routing RTCP packets from publishers to readers
    • automatically remux oversized RTP/H264 packets into smaller packets; remove parameter readBufferSize since it is not necessary anymore
    • fix computation of RTCP sender report timestamps, RTCP receiver report timestamps and timestamp of the RTP-Info header, in case of H264 streams with B-frames. This prevents timing issues with FFmpeg and a lot of other software (#622)

Fixes and improvements

  • General: fix panic that happened when integer keys are used in config maps (#865)
  • General: (breaking change) remove runOnPublish; it is replaced by the more generic runOnReady
  • General: add upper limit on H264 NALU size and AAC AU size in order to prevent RAM exhaustion
  • RTSP server: set timeout in Session header only when client is playing
  • RTSP server: remove Session header from ANNOUNCE responses, supporting some additional clients (#840)
  • RTSP server: set multicast TTL to 16 (#873)
  • RTSP source: skip tracks with an invalid clock rate (#832)
  • RTSP source: support servers that sends UDP packets with a different IP
  • RTSP source: support IOI trk-101 (bluenviron/gortsplib#116)
  • HLS muxer: fix blank screen on iOS / Android in case of video-only streams (#816)
  • HLS muxer: fix format of EXT-X-PROGRAM-DATE-TIME
  • HLS muxer: fix computation of last PTS of segments
  • HLS muxer: fix (again) DTS computation
  • HLS source: support segments with relative URLs
  • HLS source: fix freeze that happened during a video decoding error
  • HLS source: ignore Annex-B decode errors
  • RTMP server: always send H264 configuration before IDR frames

v0.17.17

15 Feb 08:58
Compare
Choose a tag to compare

Fixes and improvements

  • RTSP server: fix multicast listen error on Windows (#742)
  • RTSP source: fix memory leak in case source doesn't send H264 params in time
  • RTMP: support clients that publish with empty metadata or no metadata (#386)
  • RTMP, HLS: fix wrong timestamp computation that happened at 28h28m

v0.17.16

01 Feb 18:30
Compare
Choose a tag to compare

Fixes and improvements

  • fix bad track cloning and restore HLS audio support (#808)
  • fix crash that happened when publishing audio with RTMP (#810)

v0.17.15

31 Jan 09:18
Compare
Choose a tag to compare

New minor features

  • HLS: add new parameter hlsSegmentMaxSize that prevents RAM exhaustion

Fixes and improvements

  • General: do not print raw bytes into logs; print hex dump instead
  • General: send query values to external authentication service
  • General: save regexp groups in G1, G2 env variables instead of 1, 2 (#642)
  • General: on Linux/macOS, launch external commands directly without using the shell
  • RTSP source: fix memory leak that happened when a PLAY request failed
  • RTSP source: send keepalive requests within the session timeout. This fixes a lot of timeouts with the UDP protocol (#702)
  • RTSP source: fix crash in case a PLAY request fails before receiving the response
  • RTSP server: send session timeout to clients through the session header (#702)
  • RTSP server: allow again H264 tracks without SPS or PPS in the SDP (#787)
  • HLS muxer: create first segment only after the first IDR is received
  • HLS muxer: set audio codec mime according to mpeg4 type
  • HLS muxer, RTMP server: support H264 tracks that contains extra data in sprop-parameter-set

v0.17.14

19 Jan 22:38
Compare
Choose a tag to compare

New minor features

  • Add new parameter 'runOnReady'. This is called when a stream is ready, whether it is published or proxied, and allows to save to disk proxied streams. It replaces 'runOnPublish'. (#752)

Fixes and improvements

  • General: fix freeze when server is shut down and runOnPublish is not empty
  • RTSP source: fix error 'invalid transport header: encoding/hex: invalid byte: U+0020' with some Hikvision cameras
  • RTSP source: fix '401 Unauthorized' error when automatically switching protocol with some Hikvision cameras
  • HLS server, RTMP server: fix timestamp decoding in case of an overflow followed by a negative time difference

v0.17.13

24 Dec 10:03
Compare
Choose a tag to compare

Fixes and improvements

  • HLS: restore Android compatibility, in particular the case in which the stream has an audio track and the video is black (#749)
  • HLS: fix intermittent audio on iOS
  • HLS: print exact reason why a muxer is closed

v0.17.12

22 Dec 22:43
Compare
Choose a tag to compare

New minor features

  • support external authentication (#504) (#517)
  • make regexp groups available to custom commands (#642)

Fixes and improvements

  • General: do not wait for external commands to exit during runtime
  • General: print a message when a custom command exits suddently
  • HLS, RTMP: compute duration correctly in case of an RTP overflow
  • HLS, RTMP: fix DTS generation, avoid non-increasing DTS
  • HLS: upgrade hls.js and enable progressive mode