Skip to content

Releases: bluenviron/mediamtx

v1.1.0

16 Sep 21:32
bedfa96
Compare
Choose a tag to compare

New features

  • Add native recording. This allows to record streams without using FFmpeg in a fault tolerant, browser compatible format (#1399) (#2255).

  • Add additional custom commands: runOnDisconnect, runOnNotReady, runOnUnread (#1464) (#2355)

  • Add additional environment variables to custom commands (#1414) (#2356). New variables: MTX_CONN_TYPE, MTX_CONN_ID, MTX_SOURCE_TYPE, MTX_SOURCE_ID, MTX_READER_TYPE, MTX_READ_ID

Fixes and improvements

General

  • print the reason why a source is started or stopped (#2322)
  • search for configuration file in various paths, print paths if configuration is not found (#1993) (#2276) (#2357)

Codecs

RTSP

RTMP

HLS

  • bump hls-js to v1.4.12 (#2283)

SRT

  • support publishing and reading MPEG-1/2/4 video with SRT and UDP/MPEG-TS (#2277)

UDP

  • fix reading two streams with same port and different multicast IP (#2133) (#2332)
  • support publishing and reading MPEG-1/2/4 video with SRT and UDP/MPEG-TS (#2277)

API

  • apidocs: mark discrete parameters as integers (#2331) (#2354)

Dependencies

  • build(deps): bump golang.org/x/term from 0.11.0 to 0.12.0 (#2294)
  • build(deps): bump github.com/pion/webrtc/v3 from 3.2.17 to 3.2.18 (#2292)
  • build(deps): bump golang.org/x/crypto from 0.12.0 to 0.13.0 (#2299)
  • build(deps): bump github.com/pion/ice/v2 from 2.3.10 to 2.3.11 (#2300)
  • build(deps): bump golang.org/x/net from 0.14.0 to 0.15.0 (#2301)
  • build(deps): bump github.com/pion/webrtc/v3 from 3.2.18 to 3.2.19 (#2328)
  • build(deps): bump github.com/pion/interceptor from 0.1.18 to 0.1.19 (#2329)
  • build(deps): bump github.com/pion/webrtc/v3 from 3.2.19 to 3.2.20 (#2340)

v1.0.3

01 Sep 21:25
ffa3442
Compare
Choose a tag to compare

Fixes and improvements

  • fix regression introduced in v1.0.1 that prevented multiple readers from accessing the same stream (#2281) (#2282)

v1.0.2

01 Sep 18:20
966bec8
Compare
Choose a tag to compare

Fixes and improvements

General

  • fix changing log level with hot reloading or API (#2278)

RTSP

SRT

  • fix memory leak during reader disconnection (#2273)

RTMP

  • fix RTMPE handshake error when a public key starts with zero (#2269)

v1.0.1

30 Aug 11:20
f69be81
Compare
Choose a tag to compare

Fixes and improvements

General

  • print warning when the write queue is full (#2251)
  • limit logging of decode errors (#2253)
  • fix maxReaders limit in case of multiple tracks (#2246) (#2264)

Codecs

RTSP

RTMP

  • allow RTMP streaming with codecid=av01 or hvc1 (#2232) by @ph0b
  • support publishing AV1/H265 with OBS 30 (#2217) (#2234)
  • support publishing VP9 tracks with RTMP (#2247)
  • fix conversion of AV1/VP9 tracks from HLS/RTMP to RTSP (#2263)
  • support ingesting RTMPE streams (#2189)
  • add limit on message body size (#2252)

HLS

  • embed hls.js into the server (#2202) (#2236)
  • bump hls-js to v1.4.10 (#2239)
  • fix conversion of AV1/VP9 tracks from HLS/RTMP to RTSP (#2263)
  • fix wrong protocol sent to external authentication server (#2213)
  • hls source: fix formatting debug log messages (#2243)
  • return 404 when requesting hls.min.js.map (#2262)

Dependencies

  • build(deps): bump github.com/pion/webrtc/v3 from 3.2.14 to 3.2.15 (#2216)
  • build(deps): bump github.com/pion/webrtc/v3 from 3.2.15 to 3.2.16 (#2220)
  • build(deps): bump github.com/google/uuid from 1.3.0 to 1.3.1 (#2228)
  • build(deps): bump github.com/pion/webrtc/v3 from 3.2.16 to 3.2.17 (#2229)
  • build(deps): bump github.com/asticode/go-astits from 1.12.0 to 1.13.0 (bluenviron/mediacommon#56)

v1.0.0

08 Aug 12:31
2726057
Compare
Choose a tag to compare

Why 1.0?

This software now supports all the main streaming protocols (SRT / WebRTC / RTSP / RTMP / LL-HLS), a wide range of codecs, a series of innovative protocol-codec combinations (for instance HLS + AV1), and is deployed in production environments. The main objective of the project has been achieved, that is to provide a routing solution for real-time media streams to any user, from householders that want to manage their video feeds to developers that need to route media streams to and from microservices.

There are a couple of secondary features that will be certainly developed in the near future (native recording, native scalability, both can already be achieved by using external integrations) but other than that the focus will be on fixing eventual issues related to the existing features.

New features

SRT

  • support publishing, reading, proxying with SRT (#2068)

WebRTC

  • support proxying WebRTC streams with WHEP (#2142)

HLS

  • support muxing and proxying AV1 tracks (#2155)
  • support muxing and proxying VP9 tracks (#2162)

UDP

  • support reading MPEG-1 tracks (#2147)

General

  • support setting a maximum number of readers per path (#1286) (#2154)

Fixes and improvements

RTSP

HLS

  • show IP in logs in case of failed authentication (#2099)
  • prevent brute-force attacks by waiting before sending responses (#2100)
  • reply status code 204 to OPTIONS requests (#2141)
  • prefer Opus tracks to MPEG-4 tracks (#2158)
  • fix parsing decimal EXT-X-TARGETDURATION (bluenviron/gohlslib#55)
  • fix parsing EXT-X-STREAM-INF with spaces (bluenviron/gohlslib#56)
  • fix parsing playlists without trailing newline (bluenviron/gohlslib#58)
  • add Cache-Control header to all responses
  • prepend prefix to segments. . This is needed to prevent usage of cached segments from previous muxing sessions

WebRTC

  • show both IP and port during session creation and in API (#2096)
  • send session ID to external auth server (#1981) (#2098)
  • show IP in logs in case of failed authentication (#2099)
  • prevent brute-force attacks by waiting before sending responses (#2100)
  • speed up track detection (#2105)
  • fix race condition when broadcasting RTP packets (#2117)
  • reply status code 204 to OPTIONS requests (#2141)

UDP

  • support using domain names instead of IPs (#2150)

API

  • fix crash when calling /v1/webrtcsessions/list just after session creation (#2097)
  • add transport to RTSP sessions (#2151)
  • remove sourceReady from docs (#2163)

General

  • return an error in case the random number generator fails (#2120)
  • remove warning when decoding VP8 or VP9 (#2159). . avoid printing 'received a non-starting fragment without any previous starting fragment'
  • disable check for missing key frames (#1904) (#2161)
  • rename disablePublisherOverride into overridePublisher (#2164)
  • remove 'disable' from names of configuration parameters (#2101)
  • fix crash in case of specially-crafted HTTP requests (#2166) (#2169)
  • Add video player options via query string (#2145)
  • mpegts: fix panic with specially-crafted strings; add fuzzing (bluenviron/mediacommon#29)
  • h264, h265: raise MaxNALUSize (bluenviron/mediacommon#30)
  • h264, h265: rename MaxNALUSize to MaxAccessUnitSize and apply to entire access unit (bluenviron/mediacommon#36)
  • h264: fix 'invalid POC' error (bluenviron/mediacommon#55)

Dependencies

  • build(deps): bump github.com/pion/rtp from 1.7.13 to 1.8.0 (#2091)
  • build(deps): bump github.com/pion/webrtc/v3 from 3.2.12 to 3.2.13 (#2092)
  • build(deps): bump github.com/gookit/color from 1.5.3 to 1.5.4 (#2089)
  • build(deps): bump github.com/abema/go-mp4 from 0.10.1 to 0.11.0 (#2112)
  • build(deps): bump github.com/pion/rtp from 1.8.0 to 1.8.1 (#2129)
  • build(deps): bump golang.org/x/net from 0.12.0 to 0.13.0 (#2139)
  • build(deps): bump github.com/pion/webrtc/v3 from 3.2.13 to 3.2.14 (#2140)
  • build(deps): bump golang.org/x/term from 0.10.0 to 0.11.0 (#2148)
  • build(deps): bump golang.org/x/net from 0.13.0 to 0.14.0 (#2170)
  • build(deps): bump github.com/pion/ice/v2 from 2.3.9 to 2.3.10 (#2171)
  • build(deps): bump github.com/asticode/go-astits

v0.23.8

19 Jul 18:38
e3b8ee4
Compare
Choose a tag to compare

Fixes and improvements

General

  • hls, webrtc: add Authorization to Access-Control-Allow-Headers (#2018) (#2020)
  • stop execution in case of panics when handling HTTP requests (#2021)
  • disable colored log lines when output is not a terminal (#1477) (#2050)
  • make sure components are closed in a specific order (#2065)
  • update list of supported codecs inside error messages (#2058) (#2073)

WebRTC

  • allow removing default WebRTC ICE server with environment variables (#2064)
  • fix race condition that caused random crashes during handshake (#2072)
  • fix memory leak during shutdown or session kick (#2079)
  • display publish-related errors in web page (#1836) (#2080)

Raspberry Pi Camera

API

  • add path to RTMP connections, RTSP sessions, WebRTC sessions (#1962) (#2022)
  • apidocs: fix source/reader types (#2027)
  • fix error in case of nested paths (#2040) by @Jordy84
  • return 404 when a path configuration is not found (#2067) (#2074)
  • allow to edit properties of path config "all" (#2067) (#2075)
  • add 'readyTime' to paths (#2049) (#2082)

Dependencies

  • build(deps): bump golang.org/x/net from 0.11.0 to 0.12.0 (#2025)
  • build(deps): bump github.com/pion/ice/v2 from 2.3.8 to 2.3.9 (#2031)
  • build(deps): bump github.com/pion/webrtc/v3 from 3.2.11 to 3.2.12 (#2051)

v0.23.7

01 Jul 10:30
74df255
Compare
Choose a tag to compare

Fixes and improvements

General

  • set Access-Control-Allow-Headers to a static string (#1973)

WebRTC

  • do not pass preflight requests to external auth (#1941) (#1972)
  • in the web page, pass query parameters to inner requests (#1976)
  • fix memory leak when publishing or reading (#1884) (#1983)
  • fix bitrate not being applied (#1984)
  • forbid publishing zero tracks (#1991)
  • allow setting Opus bitrate (#1908) (#1985)
  • add option to disable audio effects (#1908) (#1989)
  • move codec and bitrate settings on client side (#1990)
  • support publishing with OBS and WebRTC (#1998)
  • allow using special characters in ICE server credentials (#1953) (#2000)

RTSP

HLS

  • in the web page, pass query parameters to inner requests (#1976)

RPI Camera

  • check libcamera architecture by using the ELF header (#1940) (#1997)

API

  • return 404 in /get and /kick endpoints (#1994) (#1995). . when an entity is not found

Dependencies

  • bump github.com/pion/webrtc/v3 from 3.2.10 to 3.2.11 (#2002)

v0.23.6

21 Jun 14:31
5033d1e
Compare
Choose a tag to compare

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

HLS

Dependencies

  • build(deps): bump github.com/pion/webrtc/v3 from 3.2.9 to 3.2.10 (#1932)
  • build(deps): bump golang.org/x/crypto from 0.9.0 to 0.10.0 (#1945)
  • build(deps): bump golang.org/x/net from 0.10.0 to 0.11.0 (#1946)
  • build(deps): bump github.com/pion/ice/v2 from 2.3.7 to 2.3.8 (#1956)

v0.23.5

07 Jun 10:48
c9eb1a5
Compare
Choose a tag to compare

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

02 Jun 17:15
e2a6c38
Compare
Choose a tag to compare

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

RTSP

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

  • support reading MP4A-LATM-encoded AAC with RTMP and HLS (#1694) (#1898)

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

  • build(deps): bump github.com/pion/webrtc/v3 from 3.2.6 to 3.2.8 (#1862)
  • build(deps): bump github.com/stretchr/testify from 1.8.3 to 1.8.4 (#1880)
  • build(deps): bump github.com/gin-gonic/gin from 1.9.0 to 1.9.1 (#1897)