Releases: bluenviron/mediamtx
v0.23.6
Fixes and improvements
General
- fix 'runOnDemandRestart: yes' (#1947)
- rename environment variable RTSP_PATH into MTX_PATH (#1967)
- add Arch Linux package to the README (#1957) (#1969)
WebRTC
- make preflight OPTIONS requests work with external auth (#1941) (#1964)
- fix using inline credentials in URLs (#1919) (#1966)
RTSP
- return an error in case of invalid packet (bluenviron/gortsplib#305). . when reading with TCP and packet has an unknown format.
- allow using odd interleaved IDs (bluenviron/gortsplib#304) (#1762)
- client: support URLs with IPv6 and no port (bluenviron/gortsplib#313) (bluenviron/gortsplib#316)
HLS
- support ISO8601 dates (bluenviron/gohlslib#50) (#1958)
Dependencies
v0.23.5
Fixes and improvements
-
Add Docker images with FFmpeg included and change docker repository name (#1771) (#1909) (#1923). Available images now are:
name FFmpeg included RPI Camera support bluenviron/mediamtx:latest ❌ ❌ bluenviron/mediamtx:latest-ffmpeg ✔️ ❌ bluenviron/mediamtx:latest-rpi ❌ ✔️ bluenviron/mediamtx:latest-ffmpeg-rpi ✔️ ✔️ -
return an error in case default configuration file can't be opened (#1920)
-
bump github.com/pion/webrtc/v3 from 3.2.8 to 3.2.9 (#1906)
v0.23.4
Fixes and improvements
General
- allow using special characters in external commands (#1652) (#1868), on Windows, when using cmd.exe or a bat file as external command.
- print error that caused an external command to exit (#1869)
- fix sending session ID to external authentication (#1871). this fixes a regression introduced in v0.23.0
- replace math/rand with crypto/rand, increasing security (#1872)
WebRTC
- Add WebRTC stream id to whep response headers (#1879) by @vvitkovsky
RTSP
- support otherDataPresent and crcCheckPresent inside StreamMuxConfig of MP4A-LATM format (bluenviron/mediacommon#18) (#1881)
- fix using multicast when a single interface doesn't support it (bluenviron/gortsplib#293) (https://github.com/bluenviron/mediamtx/discussions/1744)
RTMP
- fix timestamp conversion from RTSP/HLS to RTMP (#1899). this was causing moments of silence and timing errors when reading with RTMP a stream originally published with RTSP or HLS.
- support reading MP4A-LATM-encoded AAC with RTMP and HLS (#1694) (#1898)
HLS
UDP
- fix using multicast when a single interface doesn't support it (#1874)
RPI Camera
API
- fix setting default parameters when creating a path (#1853) (#1905). . this fixes a regression introduced in v0.23.0.
Dependencies
v0.23.3
Fixes and improvements
WebRTC
- fix WHIP/WHEP implementation (#1857) (#1861). Offers and answers are now encoded in SDP in place of JSON; Location header is sent to clients. This fixes compatibility with GStreamer and whipsink.
HLS
- fix parsing multivariant playlists with windows-style newlines (bluenviron/gohlslib#43)
Dependencies
v0.23.2
RTSP
- fix sending keepalives to sources (#1812) (bluenviron/gortsplib#287). This fixes a regression introduced in v0.23.0
WebRTC
- Expose E-Tag, Accept-Patch and Link headers for cross-origin WHIP/WHEP requests (#1841)
- add POST and PATCH methods to Access-Control-Allow-Methods (#1848)
API
- allow using paths/list endpoint when a path is being deleted (#1849)
v0.23.1
Note
This release is mostly dedicated to fix regressions introduced in v0.23.0. Major releases allow to introduce new features, but every addition is linked the risk of breaking something. Thanks to all the people that immediately tested the new version, reported issues and allowed to quickly develop the fixes included in this release: @tbnguyen1407, @alpe12, @felder, @nigelsim, @blu006, @Tokolosh, @0ip
Fixes and improvements
WebRTC
- fix exception in browser when webrtcICEServers is empty (#1817) (#1821). this fixes a regression introduced in v0.23.0.
RTMP
- fix crash when publishing video-only tracks (#1819) (#1822). this fixes a regression introduced in v0.23.0.
HLS
API
- bump API prefix from /v1 to /v2 (#1815)
- add /get endpoints (#1577) (#1823). this allows to get entities by ID or name after /list endpoints were changed in v0.23.0.
- fix wrong pageCount in /list endpoints (#1813) (#1824)
- add item count to /list endpoints (#1813) (#1829)
- sort results of /list endpoints (#1828)
General
- fix missing H264/H265 keyframe warning message (#1825)
v0.23.0
New features
General
RTMP
- support publishing H265 and AV1 tracks with Enhanced RTMP (#1393) (#1446) (#1621) (#1756) . This restores compatibility with OBS 29.1.
- support publishing, reading and proxying MPEG-2 audio (MP3) tracks (#1102) (#1736)
WebRTC
- support publishing streams with WebRTC and the WHIP specification (#1659) (#1786). You can publish streams by either opening
http://localhost:8889/mystream/whip
. - support reading streams with WebRTC and the WHEP specification (#1800). You can read streams by either opening
http://localhost:8889/mystream
inside the browser or using the WHEP URLhttp://localhost:8889/mystream/whep
. - support reading AV1 tracks with WebRTC (#1768)
API
- add pagination to all /list endpoints (#1808) (BREAKING CHANGE)
Fixes and improvements
General
- change repository owner (#1801)
- print warning in case no key frames are being received (#1763)
- return error in case of string-to-int overflows (#1776)
- allow external authentication to return an error by using the HTTP body (#1756)
- mpeg4audio: fix crash when unmarshaling specially-crafted ADTS packets (bluenviron/mediacommon#4)
- mpeg4audio: fix number of channels of PS object types (https://github.com/bluenviron/5)
- build(deps): bump github.com/pion/webrtc/v3 from 3.1.59 to 3.1.62 (#1721)
- build(deps): bump golang.org/x/crypto from 0.8.0 to 0.9.0 (#1783)
WebRTC
- validate ICE servers in configuration (#1798)
- remove pion/ice replacement (#1803)
- discard empty RTP packets coming from Chrome (#1804)
- return 404 when a stream is not present (#1805)
RTSP
- Allow sending Range header to RTSP sources (#1780) by @Jordy84
- handle additional fields of MPEG4-generic: streamtype, mode, profile-level-id (bluenviron/gortsplib#250)
- fix parsing of MP4A-LATM formats with no channels and object (bluenviron/gortsplib#254) (#1716)
- infer object, sample rate, clock of MPEG4AudioLATM from config (bluenviron/gortsplib#255)
- support fragmented MPEG-2 audio frames (bluenviron/gortsplib#259)
- rtpmpeg2audio: improve decoder robustness (bluenviron/gortsplib#262)
- fix timeout with some cameras by decreasing interval between keepalives (bluenviron/gortsplib#265) (#1403)
- print number of lost packets even when using TCP (bluenviron/gortsplib#269)
- add 32-bit tests; return errors in case of string-to-int overflows (bluenviron/gortsplib#276)
- fix compatibility with Mercury cameras (bluenviron/gortsplib#271) (bluenviron/gortsplib#275)
- rtptime: fix time encoding on arm32 (bluenviron/gortsplib#274) (bluenviron/gortsplib#277)
- server: remove dashes from session ID (bluenviron/gortsplib#278)
HLS
- bump hls.js (#1807)
- show index page even if stream is not present (#1806)
- muxer: print error in case generation of init.mp4 fails (bluenviron/gohlslib#30)
- add 32-bit tests; return errors in case of string-to-int overflows (bluenviron/gohlslib#39)
- force some integers to be unsigned (bluenviron/gohlslib#40)
Raspberry Pi Camera
Metrics
- fix: metrics listener address sanitization (#1774) by @tnyeanderson
API
- fix type of RTMPS readers (#1784) . it was wrongly set to RTMP.
v0.22.2
Important announcement
rtsp-simple-server is being rebranded as MediaMTX. Furthermore, my main open source projects are being transferred to the bluenviron organization, in order to allow the community to maintain and evolve the code regardless of my personal availability.
Fixes and improvements
v0.22.1
Important announcement
rtsp-simple-server is being rebranded as MediaMTX. Furthermore, my main open source projects are being transferred to the bluenviron organization, in order to allow the community to maintain and evolve the code regardless of my personal availability.
Fixes and improvements
General
- build(deps): bump golang.org/x/net from 0.8.0 to 0.9.0 (#1655)
- build(deps): bump golang.org/x/crypto from 0.7.0 to 0.8.0 (#1668)
- allow additional characters in usernames and passwords (#1580) (#1666)
- add remote port to HTTP requests in logs (#1663)
- do not listen on IPv6 when host is 0.0.0.0 (#1665) (#1678)
- metrics: log HTTP requests when logLevel is debug (#1687)
- add read deadline to all incoming HTTP requests (#1689)
- metrics: return metrics even if there are no paths or clients (#1688)
- improve precision of H264 DTS extractor (bluenviron/mediacommon#1)
RTSP server / source
- use normalized trackID in place of mediaUUID (bluenviron/gortsplib#190) (bluenviron/gortsplib#226)
- fix SDP unmarshaling with some Chinese cameras (bluenviron/gortsplib#201) (bluenviron/gortsplib#228)
- fix crash when Content-Length is set to a negative value (bluenviron/gortsplib#233)
- add MPEG-4 video format (bluenviron/gortsplib#236) (#1550)
- add MP4A-LATM format (bluenviron/gortsplib#237)
- add MPEG-TS format (bluenviron/gortsplib#244)
- support TCP read requests without interleaved IDs (bluenviron/gortsplib#246) (#1650)
HLS Muxer
- add viewport meta to hls and webrtc page (#1653)
- muxer: save init.mp4 on disk (bluenviron/gohlslib#20) (#1648)
- muxer: wait presence of segments before serving index.m3u8 and init.mp4 (bluenviron/gohlslib#22)
- muxer: improve disk write performance of MPEG-TS segments (bluenviron/gohlslib#23)
- muxer: change Content-Type of playlist and restore compatibility with iOS (bluenviron/gohlslib#24)
- muxer: truncate float values to 5 digits and restore compatibility with iOS (bluenviron/gohlslib#26)
- muxer: round PART-TARGET to milliseconds to avoid illegal changes (bluenviron/gohlslib#27)
WebRTC
- add viewport meta to hls and webrtc page (#1653)
- webrtc: fix regression that broke webrtcICEUDPMuxAddress (#1680) (#1699)
RPI Camera
v0.22.0
Important announcement
rtsp-simple-server is being rebranded as MediaMTX. Furthermore, my main open source projects are being transferred to the bluenviron organization, in order to allow the community to maintain and evolve the code regardless of my personal availability.
New features
General
- support reading UDP/MPEG-TS streams (#1490)
- add option to set max size of outgoing UDP packets (#1588) (#1601)
HLS Muxer
- add option to dump segments on disk (#1322) (#1567)
- make Low Latency-HLS the default variant (#1610)
Raspberry Pi Camera
Fixes and improvements
General
- change prefix of environment variables, rename configuration file, repository and executable (#1639) (#1640) (#1641)
- bump Golang to 1.20 (#1602)
- Bump golang.org/x/net from 0.7.0 to 0.8.0 (#1594)
- Bump github.com/fsnotify/fsnotify from 1.4.9 to 1.6.0 (#1595)
- Bump golang.org/x/crypto from 0.5.0 to 0.7.0 (#1596)
- Bump github.com/pion/webrtc/v3 from 3.1.47 to 3.1.58 (#1598)
- Bump github.com/gookit/color from 1.4.2 to 1.5.3 (#1599)
- Bump github.com/pion/ice/v2 from 2.3.1 to 2.3.2 (#1614)
- Bump github.com/pion/webrtc/v3 from 3.1.58 to 3.1.59 (#1626)
RTSP server
- use absolute RTSP URL as control attribute (bluenviron/gortsplib#210)
RTSP source
- Support JPEG comment markers in MJPEG encoder (bluenviron/gortsplib#219)
- fix parsing and generation of control attributes that contain RTSPS URLs (bluenviron/gortsplib#216)