mediamtx

Ready-to-use SRT / WebRTC / RTSP / RTMP / LL-HLS media server and media proxy that allows to read, publish, proxy, record and playback video and audio streams.

MIT License

Downloads
71
Stars
11K
Committers
70

Bot releases are visible (Hide)

mediamtx - v1.0.3

Published by github-actions[bot] about 1 year ago

Fixes and improvements

mediamtx - v1.0.2

Published by github-actions[bot] about 1 year ago

Fixes and improvements

General

RTSP

SRT

RTMP

mediamtx - v1.0.1

Published by github-actions[bot] about 1 year ago

Fixes and improvements

General

Codecs

RTSP

RTMP

HLS

Dependencies

mediamtx - v1.0.0

Published by github-actions[bot] about 1 year ago

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

WebRTC

HLS

UDP

General

Fixes and improvements

RTSP

HLS

WebRTC

UDP

API

General

Dependencies

mediamtx - v0.23.8

Published by github-actions[bot] over 1 year ago

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

  • fix a compile error with recent libcamera (#2081) by @hideaki-t
  • rpi camera: add rpiCameraHDR parameter (#1876) (#2083)

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)
mediamtx - v0.23.7

Published by github-actions[bot] over 1 year ago

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)
mediamtx - v0.23.6

Published by github-actions[bot] over 1 year ago

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)
mediamtx - v0.23.5

Published by github-actions[bot] over 1 year ago

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)

mediamtx - v0.23.4

Published by github-actions[bot] over 1 year ago

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

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

  • allow using decimal FPS (#1743) (#1873)

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)
mediamtx - v0.23.3

Published by github-actions[bot] over 1 year ago

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

Dependencies

  • bump github.com/pion/ice/v2 from 2.3.4 to 2.3.5 (#1854)
  • bump github.com/bluenviron/gohlslib from 0.2.4 to 0.2.5 (#1855)
  • bump github.com/pion/webrtc/v3 from 3.2.4 to 3.2.6 (#1856)
mediamtx - v0.23.2

Published by github-actions[bot] over 1 year ago

RTSP

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)
mediamtx - v0.23.1

Published by github-actions[bot] over 1 year ago

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

  • fix 404 error when hlsAlwaysRemux and sourceOnDemand are both true (#1818) (#1834)

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)
mediamtx - v0.21.3

Published by aler9 over 1 year ago

mediamtx - v0.23.0

Published by github-actions[bot] over 1 year ago

New features

General

  • add darwin/arm64 binary (#1789) by @a-wing

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/publish` inside the browser or using the WHIP URL 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 URL http://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 (https://github.com/bluenviron/mediacommon/issues/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

HLS

Raspberry Pi Camera

  • allow setting rpiCameraSaturation to 0 (#1651) (#1772)

Metrics

  • fix: metrics listener address sanitization (#1774) by @tnyeanderson

API

  • fix type of RTMPS readers (#1784) . it was wrongly set to RTMP.
mediamtx - v0.22.2

Published by github-actions[bot] over 1 year ago

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

  • Fix regression introduced in v0.22.0 that corrupted H264 / H265 streams when option udpPayloadMaxSize was not explicitly set or was set to a value greater than 1472 (#1702) (#1711)
mediamtx - v0.22.1

Published by github-actions[bot] over 1 year ago

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 (https://github.com/bluenviron/mediacommon/issues/1)

RTSP server / source

HLS Muxer

WebRTC

  • add viewport meta to hls and webrtc page (#1653)
  • webrtc: fix regression that broke webrtcICEUDPMuxAddress (#1680) (#1699)

RPI Camera

  • support running on 32-bit OS with 64-bit kernel (#1644) (#1700)
mediamtx - v0.22.0

Published by github-actions[bot] over 1 year ago

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

  • add text overlay with current time (#1288) (#1604)
  • support two CSI cameras at once (#1573) (#1574)

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

RTSP source

mediamtx - v0.21.6

Published by github-actions[bot] over 1 year ago

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

RTMP server

HLS muxer

Raspberry Pi Camera

HLS Source

mediamtx - v0.21.5

Published by github-actions[bot] over 1 year ago

Fixes and improvements

WebRTC

HLS source

API Documentation

mediamtx - v0.21.4

Published by github-actions[bot] over 1 year ago

Fixes and improvements

General

  • fix bug introduced in v0.21.3 that prevented publishing twice to the same path (#1469) (#1470)

Raspberry Pi Camera