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.17.15

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

New minor features

  • HLS: add new parameter hlsSegmentMaxSize that prevents RAM exhaustion

Fixes and improvements

  • General: do not print raw bytes into logs; print hex dump instead
  • General: send query values to external authentication service
  • General: save regexp groups in G1, G2 env variables instead of 1, 2 (#642)
  • General: on Linux/macOS, launch external commands directly without using the shell
  • RTSP source: fix memory leak that happened when a PLAY request failed
  • RTSP source: send keepalive requests within the session timeout. This fixes a lot of timeouts with the UDP protocol (#702)
  • RTSP source: fix crash in case a PLAY request fails before receiving the response
  • RTSP server: send session timeout to clients through the session header (#702)
  • RTSP server: allow again H264 tracks without SPS or PPS in the SDP (#787)
  • HLS muxer: create first segment only after the first IDR is received
  • HLS muxer: set audio codec mime according to mpeg4 type
  • HLS muxer, RTMP server: support H264 tracks that contains extra data in sprop-parameter-set
mediamtx - v0.17.14

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

New minor features

  • Add new parameter 'runOnReady'. This is called when a stream is ready, whether it is published or proxied, and allows to save to disk proxied streams. It replaces 'runOnPublish'. (#752)

Fixes and improvements

  • General: fix freeze when server is shut down and runOnPublish is not empty
  • RTSP source: fix error 'invalid transport header: encoding/hex: invalid byte: U+0020' with some Hikvision cameras
  • RTSP source: fix '401 Unauthorized' error when automatically switching protocol with some Hikvision cameras
  • HLS server, RTMP server: fix timestamp decoding in case of an overflow followed by a negative time difference
mediamtx - v0.17.13

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

Fixes and improvements

  • HLS: restore Android compatibility, in particular the case in which the stream has an audio track and the video is black (#749)
  • HLS: fix intermittent audio on iOS
  • HLS: print exact reason why a muxer is closed
mediamtx - v0.17.12

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

New minor features

  • support external authentication (#504) (#517)
  • make regexp groups available to custom commands (#642)

Fixes and improvements

  • General: do not wait for external commands to exit during runtime
  • General: print a message when a custom command exits suddently
  • HLS, RTMP: compute duration correctly in case of an RTP overflow
  • HLS, RTMP: fix DTS generation, avoid non-increasing DTS
  • HLS: upgrade hls.js and enable progressive mode
mediamtx - v0.17.11

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

Fixes and improvements

  • RTSP server: write UDP packets in parallel. This increases bandwidth and prevents freezes caused by lagging readers.
  • RTSP server: log error if config parsing fails
  • RTSP server, rtsp source: send receiver reports only after receiving a sender report
  • RTSP source: send receiver reports even with sourceAnyPortEnable (#698)
  • RTSP source: set ServerName when using TLS (#708)
  • HLS: correctly compute segment duration
mediamtx - v0.17.10

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

Fixes and improvements

  • General: fix crash that happens when using an invalid log file (#706)
  • RTSP source: support cameras that don't provide SPS and PPS inside the SDP (#411) (#707)
  • RTSP source: fix EOF error that happens when using TCP with some cameras (#548)
  • RTSP server: validate announced tracks
  • RTSP server: reply with code 454 when session is not found
mediamtx - v0.17.9

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

New minor features

  • RTSP: support reading with VLC and multicast

Fixes and improvements

  • General: switch to go 1.17
  • General: close all connections gracefully when shutting down the server (#682)
  • General: change log level of path open / close message to Debug
  • RTSP source: support reading from servers that use random UDP ports (#691)
mediamtx - v0.17.8

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

New minor features

  • API: add /v1/hlsmuxers/list endpoint
  • Metrics: add hls_muxers metric

Fixes and improvements

  • General: do not add an 'all' path automatically if not present in the configuration file
  • General: fix automatic deletion of regexp paths (#664) (#680)
  • General: allow to set logLevel: error in config
  • General: remove count of readers and publishers from log lines
  • General: use opened / closed instead of created / destroyed in logs
  • General: log the exact reason why a path is closed
  • RTSP server: make VLC-related error message more clear
  • RTSP server: print opened listeners in a single line
  • RTSP source: fix detection of GET_PARAMETER support
  • HLS: fix race condition
  • Metrics: implement per-path metrics
  • API docs: add missing HLS source to /v1/paths/list
mediamtx - v0.17.7

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

Fixes and improvements

  • General: add "error" log level
  • General: print log levels with 3 characters, tidy up errors
  • RTSP: make sourceFingerprint optional and allow standard validation of RTSPS server certificates
  • RTSP: print exact reason when a session is destroyed (#649)
  • HLS: allow disabling HTTPS validation by using sourceFingerprint (#665)
  • API: sort arrays in configuration (#644)
mediamtx - v0.17.6

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

Fixes and improvements

  • Fix regression that prevented usage of logLevel: debug
mediamtx - v0.17.5

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

Fixes and improvements

  • fix regression that prevented setting config slices with env variables (#612)
mediamtx - v0.17.4

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

Fixes and improvements

  • General: avoid crash in case of invalid H264 SPS (#590)
  • General: add log messages when runOnPublish, runOnConnect, runOnRead are started or stopped
  • General: print log messages about custom commands closing after they are closed
  • General: avoid deadlock when a runOnPublish command is reading and the publisher times out (#595) (#495)
  • General: avoid deadlock when a runOnDemand command is used and a path is deleted
  • General: close custom commands with SIGINT again (#495)
  • General: return error in case of non-existent parameters in the configuration file
  • General: use crypto/rand instead of math/rand to avoid port conflicts and security issues
  • RTSP: do not allow a session to setup UDP tracks from different IPs
  • RTSP: do not allow a reader to use the same UDP ports of another reader
  • RTSP: do not allow a client to control a session created with a different IP
  • RTMP: do not raise an error in case of metadata packets (#577)
  • RTMP: run runOnRead command also with RTMP readers
  • HLS source: avoid crash when proxing HLS (#558)
  • API: support working with path configs that contains slashes (#581)
  • API: decode durations from strings instead of numbers
mediamtx - v0.17.3

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

New minor features

  • support proxying HLS streams

Fixes and improvements

  • HLS: insert segments into playlist only after they're complete. In this way, EXT-X-TARGETDURATION and EXTINF are always filled correctly and playback is much smoother
  • HLS: fix discontinuity of TS counters between segments. This avoids errors in VLC
  • HLS: serve primary playlist (index.m3u8) and stream playlist (stream.m3u8) separately
  • HLS: remove initial difference of 2secs between PTS and DTS of H264. This decreases latency
  • HLS: send PCR periodically
  • HLS: do not send DTS if PTS = DTS
  • RTSP source: support servers that change interleaved IDs
  • RTMP: print clearer error message in case no H264/AAC tracks are found
  • RTMP: remove initial difference of 2secs between PTS and DTS of H264
  • API: fix concurrency issue when creating multiple path configs at once (#542)
  • API: normalize entity names
  • API: return rtspsSessions in case of RTSPS sessions
  • General: do not allow closed static sources to set a path as ready
  • General: print 'ready' only when a source is really ready
  • General: fix crash when manually pushing to an ondemand path
mediamtx - v0.17.2

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

Fixes and improvements

  • General: close custom commands with SIGQUIT instead of SIGINT (#495)
  • General: fill version correctly (#503)
  • HLS: fix compatibility with video.js, iOS Safari, macOS Safari
  • HLS, RTMP: print clearer error messages (#501)
  • HLS: reply with 404 to invalid requests
  • HLS: set default segment count to 3
  • HLS: write PMT/PAT tables once at the beginning of every TS segment
  • HLS: increase video size up to 100% of the page (#480)
  • HLS: speed up loading by decreasing PTS
  • HLS: send PCR once, at the beginning of every TS segment
  • API: log requests and responses even in case of code 404
  • API: log right protocol version of responses
mediamtx - v0.17.1

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

New minor features

  • Metrics: new metrics system that provides more data (#492)
  • API: add "state" field to RTSP sessions and RTMP connections
  • API: add RTSPS endpoints to list and kick RTSPS sessions

Fixes and improvements

  • General: fix crash that happens when sourceOnDemand is true and a source times out
  • HLS: fix freeze when sourceOnDemand is yes and multiple sources are requested at the same time (#493)
  • API: make sure that entities are deleted immediately after a kick request
mediamtx - v0.17.0

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

New major features

  • Add an HTTP API to query and control the server. Documentation is available here.
  • HLS: new option hlsAlwaysRemux to always remux streams into HLS, not only when requested

Fixes and improvements

  • (BREAKING) general: rename readIps and PublishIps into readIPs and publishIPs
  • (BREAKING) general: rename "record" source value into "publisher"
  • (BREAKING) general: change default listen IP of metrics and pprof to 127.0.0.1
  • general: reload only rtsp server when authMethods is changed
  • general: fix multiple freezes during shutdown of components
  • general: Allow dot and tilde as part of paths
  • general: Minor spelling fix
  • HLS: make sure to send entire TS segments to clients
  • HLS: reject methods other than GET and OPTIONS
mediamtx - v0.16.4

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

Fixes and improvements:

  • rename arm6 and arm7 releases into armv6 and armv7
  • RTSP server: support setupping tracks with arbitrary interleaved IDs (#402)
  • HLS: fix CORS issues with HLS player using authorization
  • HLS: add Access-Control-Allow-Origin to every HTTP response; add parameter hlsAllowOrigin (#415)
  • HLS: skip frames received before the first IDR frame
  • HLS: fix crash on armv7 (#440)
  • HLS: add Content-Type header (#408)
mediamtx - v0.16.3

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

New minor features

  • RTSP server: support reading with UDP-multicast (#214) (#324)
  • RTSP source: support proxing with UDP-multicast
  • RTSP source: add option sourceAnyPortEnable to support cameras that don't provide server ports (#407)

Fixes and improvements

  • switch to go 1.16
  • HLS converter: fill correctly EXTINF and EXT-X-TARGETDURATION in stream manifest (#418)
  • HLS converter: do not print an error message if there isn't any error
  • RTSP source: always set Range header inside PLAY requests, fixing compatibility with Parrot Streaming Server (#413)
mediamtx - v0.16.2

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

Fixes and improvements

  • RTSP source: fix authentication during SETUP, preventing 401s during automatic protocol switches (#392)
  • RTSP source: support servers that send frames with a frequency lower than 1sec
  • RTSP source: support sources with empty passwords (#395)
  • RTSP source: support SSRCs with missing zeros (#396)
  • HLS: add CORS header to all responses (#389)
  • HLS: support paths with slashes (#381)
mediamtx - v0.16.1

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

Fixes and improvements

  • RTSP source: support cameras that use non-conventional Transport headers
  • RTSP reader/publisher: strictly follow the specification when generating SDP of AAC tracks (#112)
  • RTSP reader/publisher: add SSRC to Transport header (#380)
  • HLS reader: skip packets that are part of frames sent before initalization of the converter (#374)
  • General: fix crash that happens during override of publisher
  • General: code rewritten to use Golang contexts