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 - v0.21.2

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

New features

General

Fixes and improvements

General

RTSP server

RTSP source

HLS Muxer

RTMP Server

mediamtx - v0.21.1

Published by github-actions[bot] almost 2 years ago

New features

RTMP server

HLS muxer

HLS source

API

WebRTC

Fixes and improvements

General

RTSP server

RTSP source

WebRTC

HLS source

HLS muxer

Raspberry Pi Camera

mediamtx - v0.21.0

Published by github-actions[bot] almost 2 years ago

New major features

WebRTC

  • Support reading with WebRTC (#1242) (#566)

RTSP

Fixes and improvements

RTSP server / source

HLS Muxer

API

mediamtx - v0.20.4

Published by github-actions[bot] almost 2 years ago

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

RTSP source

mediamtx - v0.20.3

Published by github-actions[bot] almost 2 years ago

New minor features

API / Metrics

  • Add number of bytes received and sent (#1235)
  • Add metrics of RTSP connections (#1233)

Fixes and improvements

mediamtx - v0.20.2

Published by github-actions[bot] almost 2 years ago

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

RTSP source

HLS source

api docs

mediamtx - v0.20.1

Published by github-actions[bot] almost 2 years ago

New minor features

  • HLS source

    • the client has been improved in order to support a wider variety of external HLS streams, in particular: streams with fMP4 segments, streams with audio in separate playlist, streams that use EXT-X-BYTERANGE (#1179) (#1094)
  • 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

  • RTSP server

  • RTSP source

    • support cameras that sends invalid RTCP packets with TCP (#1085)
    • support cameras with invalid SSRC in transport header (#1118)
  • HLS source

    • in case of live feeds, playback now starts from the end of the stream (#1179)
    • variants with unsupported codecs are now skipped (#1179)
  • 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 (42b6e1f922f169a4e8cc9d52643d795f10f1a631)
    • add WWW-Authenticate header when external authentication is enabled (1e788f81fd46c7e8f5314bd4ae04989debfff52c)
    • change m3u8 Content-Type to application/x-mpegURL (680b34890230054da4ad2cd3cf6bf166d3b0ee6a)
    • print only tracks that are effectively being converted (c9de689a72e9f2531004d11d75f5706cf9080f8d)
    • fix compatibility with grafov/m3u8 (dfef3833111cc35e2f896c728c7287a9a4fc43d7)
  • Raspberry Pi Camera

    • change default resolution to 1920x1080 (532592c0991c5466c986bb6cacb6c48f3d4e13c3)
    • use exact frame timestamps (4f6121b1c423cecf3b805d0c99dba04c272ddb26)
  • API

    • always encode timestamps wth RFC3339 (#1093)
    • mark RTMPS connections as rtmpsConns instead of rtmpConns (#1099)
  • apidocs

    • add missing methods rtmpsconns/*(3e529f436a7e2efc2761ad3a2699c98b551f859f)
mediamtx - v0.20.0

Published by github-actions[bot] about 2 years ago

New major features

Fixes and improvements

mediamtx - v0.19.3

Published by github-actions[bot] over 2 years ago

Fixes and improvements

mediamtx - v0.19.2

Published by github-actions[bot] over 2 years ago

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

Published by github-actions[bot] over 2 years ago

Fixes and improvements

  • RTSP source: Persist credentials on source redirections (https://github.com/aler9/gortsplib/pull/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
mediamtx - v0.19.0

Published by github-actions[bot] over 2 years ago

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!

mediamtx - v0.18.5

Published by github-actions[bot] over 2 years ago

Fixes and improvements

  • General: fix regression that caused a source to be closed after 10secs when sourceOnDemand is yes (#949)
  • RTSP server / source: support SDPs with TIAS bandwidths (#948)
mediamtx - v0.18.4

Published by github-actions[bot] over 2 years ago

Fixes and improvements

  • General: fix rtmp -> rtsp audio conversion (#932)
  • RTSP server: improve performance when reading with TCP
  • RTSP server: fix wrong RTP-Info header that caused error messages in FFmpeg after 13h14m of reading (#922)
  • RTSP source: support cameras that provide base URL inside control attribute (#683)
  • RTMP server: fix bias error in AAC timestamp
  • HLS client: improve video / audio sync
mediamtx - v0.18.3

Published by github-actions[bot] over 2 years ago

Fixes and improvements

  • General: fix panic that happens when publishing to a path with source = redirect (#933)
  • General: fix bias error in AAC timestamp
  • RTSP source: restore support for cameras with percent sign in password
  • HLS muxer: prefer hls.js over native HLS
mediamtx - v0.18.2

Published by github-actions[bot] over 2 years ago

Fixes and improvements

  • General: add limit on AU (AAC units) and NALU (H264 units) sizes in order to prevent RAM exhaustion
  • RTSP source: support AUs wrapped inside ADTS (#855)
  • RTSP source: fix timeout that happens when there's a UDP->TCP switch and Content-Base contains an absolute URL (#897)
  • HLS muxer: fix PCR insertion when stream is audio only
  • HLS muxer: update primary playlist in case SPS/PPS changed
  • HLS muxer: remove progressive flag; add liveSyncDurationCount, liveMaxLatencyDurationCount to hls.js
  • HLS muxer: upgrade hls.js
mediamtx - v0.18.1

Published by github-actions[bot] over 2 years ago

Fixes and improvements

  • RTSP server: change default RTSPS port (#867)
  • RTSP server: fix reading with ffplay and stateless ipv6
  • RTSP server: fix reading with multicast when host is macOS (#895)
  • RTSP source: support AAC tracks with custom sizelength, indexlength and indexdeltalength
  • RTSP source: fix parsing of transport header with dahua rtsp server (https://github.com/aler9/gortsplib/issues/121)
  • HLS muxer: add EXT-X-INDEPENDENT-SEGMENTS tag
  • HLS muxer: do not increase version number of MPEG-TS tables unless there's a reason (https://github.com/asticode/go-astits/pull/38)
  • HLS muxer: fix crash in case of null SPS
  • HLS muxer: add EXT-X-VERSION to primary playlist
mediamtx - v0.18.0

Published by github-actions[bot] over 2 years ago

New major features

  • General: support H264 streams with dynamic SPS / PTS, i.e. streams with a resolution that changes over time. This is particularly useful when dealing with IP cameras, whose resolution can be changed into their settings page
  • RTSP server/source: parse all incoming RTP/RTCP packets. This allowed to solve a series of long-standing issues that required a deeper understanding on what exactly is routed by the server, including:
    • remove padding from outgoing RTP packets, saving bandwidth
    • generate RTCP sender reports automatically; stop routing RTCP packets from publishers to readers
    • automatically remux oversized RTP/H264 packets into smaller packets; remove parameter readBufferSize since it is not necessary anymore
    • fix computation of RTCP sender report timestamps, RTCP receiver report timestamps and timestamp of the RTP-Info header, in case of H264 streams with B-frames. This prevents timing issues with FFmpeg and a lot of other software (#622)

Fixes and improvements

  • General: fix panic that happened when integer keys are used in config maps (#865)
  • General: (breaking change) remove runOnPublish; it is replaced by the more generic runOnReady
  • General: add upper limit on H264 NALU size and AAC AU size in order to prevent RAM exhaustion
  • RTSP server: set timeout in Session header only when client is playing
  • RTSP server: remove Session header from ANNOUNCE responses, supporting some additional clients (#840)
  • RTSP server: set multicast TTL to 16 (#873)
  • RTSP source: skip tracks with an invalid clock rate (#832)
  • RTSP source: support servers that sends UDP packets with a different IP
  • RTSP source: support IOI trk-101 (https://github.com/aler9/gortsplib/pull/116)
  • HLS muxer: fix blank screen on iOS / Android in case of video-only streams (#816)
  • HLS muxer: fix format of EXT-X-PROGRAM-DATE-TIME
  • HLS muxer: fix computation of last PTS of segments
  • HLS muxer: fix (again) DTS computation
  • HLS source: support segments with relative URLs
  • HLS source: fix freeze that happened during a video decoding error
  • HLS source: ignore Annex-B decode errors
  • RTMP server: always send H264 configuration before IDR frames
mediamtx - v0.17.17

Published by github-actions[bot] over 2 years ago

Fixes and improvements

  • RTSP server: fix multicast listen error on Windows (#742)
  • RTSP source: fix memory leak in case source doesn't send H264 params in time
  • RTMP: support clients that publish with empty metadata or no metadata (#386)
  • RTMP, HLS: fix wrong timestamp computation that happened at 28h28m
mediamtx - v0.17.16

Published by github-actions[bot] over 2 years ago

Fixes and improvements

  • fix bad track cloning and restore HLS audio support (#808)
  • fix crash that happened when publishing audio with RTMP (#810)