Releases: bluenviron/mediamtx
Releases · bluenviron/mediamtx
v0.20.4
Fixes and improvements
Raspberry Pi Camera
- add docker images with libcamera included (#110)
- return an error when rpiCamera in used in two paths (#1257)
RTSP server
- return error in case of unexpected interleaved frames (bluenviron/gortsplib@2a5b3e3)
- allow invalid RTCP packets (bluenviron/gortsplib@99855bd)
RTSP source
- allow invalid RTCP packets (bluenviron/gortsplib@99855bd)
v0.20.3
New minor features
API / Metrics
Fixes and improvements
-
General
-
RTSP Server
- improve precision of NTP time in sender reports (bluenviron/gortsplib@f20350d)
- Fix parsing of Transport header with multiple transports (bluenviron/gortsplib#145)
- Fix decode error with H264 streams (bluenviron/gortsplib#150)
- Fix freeze that happened when timestamp of RTP packets was resetted and transport was UDP (bluenviron/gortsplib@34545be)
-
RTSP Source
- support tracks without clock rate (bluenviron/gortsplib@d521a78)
-
RTMP Server
- fix responses to ping requests (#1245)
-
Raspberry Pi Camera
- fix compatibility with libcamera 0.0.2 (3f5c550)
v0.20.2
Fixes and improvements
General
- Decode the content of RTP packets once and only when needed. This allows to save CPU when there's no need to decode RTP packets (for instance, when all streaming happens with RTSP) and when there are multiple RTMP readers, since previously RTP packets were decoded by each reader individually (#1218)
- add license file to binaries and docker images (#1138)
- try to fix DTS extraction of nvenc H264 streams (#1002)
Raspberry Pi Camera
- allow to use the Raspberry Pi Camera when running the server inside Docker (#1212) (#1110)
- fix compatibility with latest version of libcamera - please upgrade libcamera by running apt update && apt upgrade before using this version (#1195)
- avoid hanging during encode errors (#1133)
RTSP server
- fix memory leak (#1206)
- fix bug that allowed two readers to use the same UDP ports (bluenviron/gortsplib@0b75c24)
- server: when a session is closed, close all associated connections. This allows to close UDP publishers when they are kicked out (bluenviron/gortsplib@ededb49)
- show a warning when there are lost RTP packets (bluenviron/gortsplib@e8fde26)
- show a warning when there are oversized UDP packets (bluenviron/gortsplib@b1f72f9)
- wait for a packet with DTS equal to PTS before filling RTP-Info (bluenviron/gortsplib@dbb6934)
- log decode errors on screen (f7fdd60)
RTSP source
- show a warning when there are lost RTP packets (bluenviron/gortsplib@e8fde26)
- show a warning when there are oversized UDP packets (bluenviron/gortsplib@b1f72f9)
- support generic tracks with multiple formats (#1103)
- support FritzBox 660 Cable (#1119)
- log decode errors on screen (584cc93)
HLS source
- skip packets received before the 1st packet of the leading track; make sure that the initial DTS is zero (7981522)
- ignore data from unrecognized tracks in MPEG-TS segments (cc0d8f7)
api docs
- add missing rpicamera params (8cec54c)
v0.20.1
New minor features
-
HLS source
-
Raspberry Pi Camera
- many camera parameters have been added to the configuration file: rpiCameraHFlip, rpiCameraVFlip, rpiCameraBrightness, rpiCameraContrast, rpiCameraSaturation, rpiCameraSharpness, rpiCameraExposure, rpiCameraAWB, rpiCameraDenoise, rpiCameraShutter, rpiCameraMetering, rpiCameraGain, rpiCameraEV, rpiCameraROI, rpiCameraTuningFile, rpiCameraMode (#1198) (#1111)
Fixes and improvements
-
General
- Fix reading H264 streams that uses Annex-B encoding with a variable delimiter (bluenviron/gortsplib@b3c70f5)
- prepend SPS and PPS once when remuxing H264 stream. This allows to support H264 streams that have multiple IDR NALUs in the same group (8aa719e)
- impose a limit on the number of H264 NALUs during Annex-B and AVCC unmarshaling (bluenviron/gortsplib@e97d290)
-
RTSP server
- send RTCP sender reports to TCP clients too. This allows Nvidia Deepstream to compute the NTP timestamp of frames (bluenviron/gortsplib@0cfbb1f)
- when a H264 track has no SPS / PPS yet, do not insert a empty sprop-parameter-sets inside the SPS (bluenviron/gortsplib#129)
-
RTSP source
-
HLS source
-
HLS Muxer
- use segment IDs as segment names when hlsVariant is mpegts, this prevents conflicts that were previously caused by the fact that the timestamp was used as segment name (42b6e1f)
- add WWW-Authenticate header when external authentication is enabled (1e788f8)
- change m3u8 Content-Type to application/x-mpegURL (680b348)
- print only tracks that are effectively being converted (c9de689)
- fix compatibility with grafov/m3u8 (dfef383)
-
Raspberry Pi Camera
-
API
-
apidocs
- add missing methods rtmpsconns/*(3e529f4)
v0.20.0
New major features
- Add native support for the raspberry Pi camera. Please take a look at the README in order to enable this feature (#1057)
- Support the RTMPS protocol (#1089)
- API: add "created" field to RTSP sessions, RTMP connections, HLS muxers (092a2be)
- API: add published track list to /v1/paths/list (101ea25)
Fixes and improvements
- General: bump golang to 1.18, node to 16 (8267f4c)
- General: print track codecs into logs (cb8aec8)
- General: fix deadlock when sourceOnDemand is true and source exits (f5a031d)
- General: support HE-AAC v1 and HE-AAC v2 tracks (#1068)
- API: return static sources in paths/list even if sourceOnDemand is true (7067c02)
- RTSP server: Return 501 and keep connection open in case of unhandled methods (#1066)
- RTSP server: fix freeze caused by race condition (bluenviron/gortsplib@8883050)
- RTMP server / source: improve performance. Reuse existing structs instead of allocating them during every read() (0db2d3e)
- RTMP server: set right command ID when replying to a play request (a19a20a)
- RTMP server: fix reading metadata from onMetadata when there's no audio (4990e98)
- RTMP server: stop inserting a AV_SEQHDR message before every IDR (51e0bbd)
v0.19.3
Fixes and improvements
- General: print log to stdout instead of stderr (#1042)
- General: use more efficient bit reader / writer
- General: prefer POC method over SEI method for extracting H264 DTS (bluenviron/gortsplib@793cea6)
- RTSP server / source: implement packet reordering for UDP / Multicast transports (bluenviron/gortsplib#132)
- RTSP server / source: support streams that encode NALUs into Annex-B (#1029)
- RTSP server / source: accept RTP/H264 packets even if the server is unable to parse them (#1049)
- RTSP server / source: add limit on nalus per group (bluenviron/gortsplib@e3c9f0c)
- RTSP source: avoid sending/receiving invalid packet when reading with multicast (bluenviron/gortsplib@fb39087)
- RTSP source: support ADTS-encoded, fragmented AUs (bluenviron/gortsplib@570be5c)
- RTSP source: fix RTSPS default port (bluenviron/gortsplib@36c6d0b)
- RTMP server / source: rewrite implementation of connections from scratch. This slightly improve efficiency and allows to rapidly fix eventual bugs (#1047)
- RTMP server: fix rtmp -> rtsp audio conversion (822a896)
- HLS muxer: create only 7 initial gaps (#999)
- HLS muxer: when hlsAlwaysRemux is on, automatically recreate muxers in case of errors 8a4743f
v0.19.2
Fixes and improvements
- General: fix extracting DTS from H264 streams encoded with nvenc (#989)
- General: fix bug that caused on-demand commands to be closed after 10secs (#1000)
- General: replace bit reader / writer with a better implementation, improving performance
- RTSP server: correctly close sessions in case of errors during SETUP, preventing a memory leak (#965)
- RTSP server: server: fix crash that happens when a reader tries to setup a closed stream (#866)
- RTSP server / proxy: improve handling of RTP/H264 packets, in order to heal invalid packets wherever they come from
- RTSP proxy: fix parsing of transport headers with empty source (#986)
- RTSP proxy: support TP-Link application tracks (#990)
- RTMP server: fix compatibility with some DJI drones (#928)
- HLS muxer: compensate latency by using the hls.js parameter maxLiveSyncPlaybackRate inside the default player. This further decreases decreases LL-HLS latency and prevents it from increasing over time (#972)
- HLS muxer: return 404 instead of 500 when a stream is not found
- HLS muxer: show real client IPs when behind a proxy. A new parameter hlsTrustedProxies has been added in order to set trusted proxies IPs (#955)
v0.19.1
Fixes and improvements
- RTSP source: Persist credentials on source redirections (bluenviron/gortsplib#124)
- RTSP server: fix RTCP report in case of non-H264 tracks
- HLS muxer: fix error "wrong nal_ref_idc" (#966)
- HLS muxer, RTMP server: extract DTS from NALUs instead of estimating it
- HLS muxer: improve performance, decrease memory consumption
- HLS muxer: cache content of init.mp4
- HLS muxer: do not use EXT-X-GAP with fmp4 variant
v0.19.0
New major features
-
Support Low-Latency HLS (#938) (#556) (#641) - LL-HLS is a recently-introduced HLS variant that allows to significantly decrease latency when viewing a stream through the browser. It is disabled by default, to enable it you have to follow instructions in the README. Please be aware that:
- it requires a TLS/HTTPS certificate;
- it greatly increases the number of requests/responses exchanged between clients and the server - therefore, it's much heavier than standard HLS in terms of client requirements (not server requirements, since tests showed that generating MP4 segments consumes much less CPU than MPEG-TS segments);
- although this version has been tested on ~500 cameras from various vendors, there could still be compatibility problems with some streams. If you have problems, first try to increase the
hlsPartDuration
parameter, then feel free to open an issue.
other than that, this server is now is one of the few (if not the only one) that allows to generate LL-HLS without re-encoding the stream, therefore enjoy!