Releases: bluenviron/mediamtx
Releases · bluenviron/mediamtx
v1.5.1
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
- fix compatibility with some TP-Link cameras (bluenviron/gortsplib#509) (bluenviron/gortsplib#510)
- fix ClockRate() of G711 16khz tracks (bluenviron/gortsplib#511)
- client: prevent UDP listener from closing twice (bluenviron/gortsplib#515)
RPI Camera
- add rpiCameraAWBGains (#2858)
Dependencies
- bump Linux Alpine to 3.19 (https://github.com/bluenviron/mediamtx/issues/2837) (#2953)
- build(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0 (#2939)
- bump hls-js to v1.5.2 (#2948). . Co-authored-by: mediamtx-bot bot@mediamtx
- bump hls-js to v1.5.3 (#2964). . Co-authored-by: mediamtx-bot bot@mediamtx
v1.5.0
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
- support G711 multiple channels and custom sample rates (bluenviron/gortsplib#497)
- Fixing issue for SDP avigilon when activating onvif backchannel (bluenviron/gortsplib#479) (bluenviron/gortsplib#501)
SRT
- wait some seconds before returning authentication errors (#2918)
- support standard streamID syntax (#2469) (#2919)
API
Dependencies
v1.4.2
Fixes and improvements
General
- Log start errors of custom commands (#2828) by @jsbohnert
RTSP
- support detecting LPCM formats with payload types 10 and 11 (bluenviron/gortsplib#496)
RTMP
HLS
- client: support reading streams in Low-Latency mode (bluenviron/gohlslib#72) (bluenviron/gohlslib#126)
- muxer: progressively increase SequenceNumber of parts (bluenviron/gohlslib#115). . this prevents warning 'Fragment sequence discontinuity detected' in VLC
- muxer: allow writing audio frames before video frames (bluenviron/gohlslib#116)
- client: correctly sort tracks of multivariant playlists (bluenviron/gohlslib#120)
- client: return ErrClientEOS when a playlist ends (bluenviron/gohlslib#59) (bluenviron/gohlslib#125)
WebRTC
API
Dependencies
- build(deps): bump golang.org/x/term from 0.15.0 to 0.16.0 (#2873)
- build(deps): bump github.com/pion/rtcp from 1.2.12 to 1.2.13 (bluenviron/gortsplib#482)
- build(deps): bump github.com/google/uuid from 1.4.0 to 1.5.0 (bluenviron/gortsplib#483)
v1.4.1
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
SRT
- rtmp, srt: fix output of 'is reading from' log entry (#2820)
RPI Camera
- pass log level to libcamera (https://github.com/bluenviron/mediamtx/issues/2617) (#2811)
Dependencies
v1.4.0
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
- sdp: fix parsing SDP from UDP technology cameras (bluenviron/gortsplib#474) (bluenviron/gortsplib#478)
- sdp: fix compatibility with Altasec NVRs (bluenviron/gortsplib#476). . (#2762)
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
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
v1.3.1
Fixes and improvements
General
- allow using 'fallback' with static sources (#2606) (#2706)
- record: fix invalid segment duration in case of offsets between video/audio (#2477) (#2715)
- h264: fix DTS extraction in case of long NALUs (bluenviron/mediacommon#98)
- h265: improve DTS extractor performance (bluenviron/mediacommon#99)
SRT
- Add query as optional block for SRT publish and read (#2656)
HLS
- fix parsing and generating EXT-X-PLAYLIST-TYPE (bluenviron/gohlslib#108)
- support optional URI in EXT-X-MEDIA tag (bluenviron/gohlslib#104)
- muxer: fix invalid fMP4 BaseTime in case of negative DTS (bluenviron/gohlslib#111)
WebRTC
- fix crash when reading from path 'publish' (#2688) (#2692)
- fix bad quality when converting Opus from WebRTC to LL-HLS (#2499) (#2740)
API
- apidocs: add missing recording settings to PathConf (#2705)
Dependencies
v1.3.0
New features
General
- metrics: add paths_bytes_sent, srt_conns, srt_conns_bytes_received, srt_conns_bytes_sent (#2620) (#2619) (#2629) by @rse
- metrics: expose state of WebRTC sessions (#2662)
- add runOnUnDemand hook (#2645)
WebRTC
- improve connectivity mechanism: add
webrtcAdditionalHosts
and allow to use DNS names in place of IPs; always use a fixed UDP port; allow to disable UDP; do not use a STUN server by default (#2686) - add options (width, height, framerate, audio capture) and store parameters in URL (#1837) (#2167) (#2584) by @Lukinoh
Fixes and improvements
General
- fix crash when publishing to a path with 'runOnDemand' from outside 'runOnDemand' (#2636) (#2637)
- tests: fix race condition in TestPathRunOnDemand (#2663)
- fix setting 'recordDeleteAfter' to zero (#2670) (#2671)
- record: fix deleting segments in case of relative paths (#2526) (#2673)
- record: allow using special characters in recording path (#2674)
RTSP
- rename sourceProtocol into rtspTransport, sourceAnyPortEnable into rtspAnyPort (#2644)
- server: fix crash in case of requests with nil URL (bluenviron/gortsplib#458) by @database64128
RTMP
WebRTC
- fix crash in case of errors during PATCH (#2609) (#2613)
- allow using sourceFingerprint with WebRTC sources (#2618) (#2626)
- restore compatibility when running behind a proxy, in a subpath (#2638)
- prevent pion/webrtc from writing log lines (#2681)
API
HLS
- apply readTimeout to HLS sources (#2627)
- HLS.js usage: bugfix, stability improvements and resilience improvement (#2631)
- muxer: fix discontinuity in part ID (bluenviron/gohlslib#107). . (#2317). . this prevented Low-Latency HLS from running smoothly on Safari
SRT
- fix race condition when disposing late packets (#2648)
Dependencies
- build(deps): bump github.com/pion/interceptor from 0.1.24 to 0.1.25 (#2622)
- build(deps): bump github.com/gorilla/websocket from 1.5.0 to 1.5.1 (#2652)
- build(deps): bump github.com/pion/rtcp from 1.2.10 to 1.2.11 (#2669)
- build(deps): bump golang.org/x/term from 0.13.0 to 0.14.0 (#2667)
- build(deps): bump golang.org/x/crypto from 0.14.0 to 0.15.0 (#2668)
- build(deps): bump github.com/pion/rtcp from 1.2.11 to 1.2.12 (#2676)
- build(deps): bump github.com/pion/rtp from 1.8.2 to 1.8.3 (#2677)
- build(deps): bump github.com/pion/webrtc/v3 from 3.2.21 to 3.2.22 (#2675)
v1.2.1
Fixes and improvements
General
- add environment variable MTX_QUERY to some hooks (#2483) (#2522)
- bump Go to 1.21 (#2546)
- fix crash when setting deprecated settings with environment (#2529) (#2550)
- restart recordings in case of errors (#2439) (#2571)
- fix hot reloading on Windows when letter case changes (#2586) by @jsbohnert
RTSP
- support receiving responses with spaces in CSeq (bluenviron/gortsplib#437) (bluenviron/gortsplib#446)
- support SDPs without leading version (bluenviron/gortsplib#448) (bluenviron/gortsplib#450)
- support cameras with decimal numbers in SDP origin (bluenviron/gortsplib#455). . (#2558)
WebRTC
- fix compatibility with Alexa offers (#2544)
- support WHIP/WHEP DELETE method (#2507) by @rgl
- improve stability by reordering incoming packets (#2570)
- return detailed errors in responses (#2594)
RTMP
RPI Camera
- Fix Raspberry Pi Camera 3 auto focus (#2326) (#2552)
- Switch default autofocus mode to 'continuous' (#2591)
API
- return full configuration in config/paths/list and config/paths/get (#2535) (#2595)
- add path name to config/paths/list and config/paths/get (#2535) (#2596)
- return 500 instead of 404 in case of non-existing items (#2582)
- send error messages in response body (#2518) (#2583)
Dependencies
v1.2.0
New features
- add a new configuration setting
pathDefaults
that allows to change the default parameters of all paths. Existing configurations are fully compatible with the new configuration schema, but the API has been bumped to /v3 in order to support this change (#2455) - allow setting different recording parameters for each path (#2410) (#2457)
- support recording to MPEG-TS (#2505)
- support recording LPCM tracks (#2475)
- add runOnRecordSegmentComplete and rclone integration (#2404) (#2428)
- add runOnRecordSegmentCreate hook (#2451) (#2503)
Fixes and improvements
General
- rename 'all' path configuration into 'all_others' (#2443)
- allow to start/stop recording without disconnecting clients (#2395) (#2434)
- move 'srtReadPassphrase' into the right section (#2435)
- print path of configuration file (#2441)
- fix 'fragment sequence discontinuity' warning when reading record segments with VLC (#2476)
- h264: support empty NALUs inside AVCC (bluenviron/mediacommon#84). . (#2375)
- h265: fix DTS extraction of streams with short_term_ref_pic_set_sps_flag=1 (bluenviron/mediacommon#95). . (#2417)
RTSP
- support SDPs without session name (bluenviron/gortsplib#439). . (#2473)
RTMP
HLS
- muxer: generate multivariant playlist and init.mp4 after a segment is ready (bluenviron/gohlslib#99)
- muxer: regenerate init.mp4 only when its content changes (bluenviron/gohlslib#100)
WebRTC
- Supports webrtc interface filtering on server (#2460) by @PieterFabry
- add Location header to CORS-allowed headers (#2453) by @rgl
- print lost packets (#2468)
- fix reading Opus stereo tracks with Chrome (#2043) (#2470)
- disallow publishing screen on devices that don't support it (#2066) (#2471)
- optimize publish page for mobile devices (#2066) (#2472)
- expose ice servers on OPTIONS CORS requests (#2479) by @sainak
API
- return 400 in case of non-existent config fields (#2425)
- save errors in logs (#2426)
- fix crash when retrieving RTMP and SRT connections (#2430) by @p4xx07
- apidocs: remove invalid value from PathSourceOrReader (#2450)
Dependencies
- build(deps): bump github.com/abema/go-mp4 from 0.13.0 to 1.0.0 (#2413)
- build(deps): bump github.com/pion/rtp from 1.8.1 to 1.8.2 (#2415)
- build(deps): bump github.com/pion/webrtc/v3 from 3.2.20 to 3.2.21 (#2414)
- build(deps): bump github.com/abema/go-mp4 from 1.0.0 to 1.1.0 (#2421)
- build(deps): bump github.com/pion/interceptor from 0.1.19 to 0.1.20 (#2437)
- build(deps): bump github.com/abema/go-mp4 from 1.1.0 to 1.1.1 (#2447)
- build(deps): bump github.com/pion/interceptor from 0.1.20 to 0.1.21 (#2456)
- build(deps): bump golang.org/x/crypto from 0.13.0 to 0.14.0 (#2465)
- build(deps): bump github.com/pion/interceptor from 0.1.21 to 0.1.22 (#2482)
- build(deps): bump github.com/alecthomas/kong from 0.8.0 to 0.8.1 (#2493)
- build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0 (#2501)
v1.1.1
Fixes and improvements
General
- fix default value of some settings (#2367): rtmpServerKey, rtmpServerCert, recordPath, rpiCameraExposure,. rpiCameraAWB, rpiCameraDenoise, rpiCameraMetering, rpiCameraAfMode,. rpiCameraAfRange, rpiCameraAfSpeed were not set correctly when missing in the configuration file.
- fix crash when processing H265 (#2378) (#2381)
- normalize configuration (#2399)
- rename 'external commands' into 'hooks' (#2400)
Recording
- support recording AC-3 tracks (#2376)
- support recording M-JPEG tracks (#2391)
- update recordDeleteAfter documentation (#2361) (#2362)
- automatically set 'record: yes' when not specified (#2366)
- fix race condition wen record agent is closing (#2369)
RTSP
- fix timestamp of outgoing RTSP/RTP packets in case of aggregated access units (#2389)
- fix compatibility with Annex-B encoded H264 SPS/PPS (bluenviron/gortsplib#402) (bluenviron/gortsplib#426)
- discard invalid H264 parameters (bluenviron/gortsplib#431). . (#2348)
SRT
- support AC-3 tracks in SRT and UDP; support recording AC-3 tracks (#2376)
- Support SRT encryption passphrases on configured paths (#2385)
UDP
- support AC-3 tracks in SRT and UDP; support recording AC-3 tracks (#2376)
RPI Camera
- rpi camera: add additional checks on configuration (#2368)
WebRTC