Commit Graph

3069 Commits

Author SHA1 Message Date
Alessandro Ros f453b59cd6 improve listener labels (#5635)
add a label after every "listener opened on :XXX" message that mentions
protocols of every listener.
2026-04-03 16:35:31 +02:00
dependabot[bot] 4ed821add0 build(deps): bump github.com/alecthomas/kong from 1.14.0 to 1.15.0 (#5631)
Bumps [github.com/alecthomas/kong](https://github.com/alecthomas/kong) from 1.14.0 to 1.15.0.
- [Commits](https://github.com/alecthomas/kong/compare/v1.14.0...v1.15.0)

---
updated-dependencies:
- dependency-name: github.com/alecthomas/kong
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 10:58:33 +02:00
Alessandro Ros 5addbed337 Revert "modernize make dockerhub (#5628)" (#5630)
This reverts commit d76c6b561a.
v1.17.1
2026-03-31 23:04:24 +02:00
bluenviron-bot 489a69af38 bump mediamtx-rpicamera to v2.5.5 (#5629) 2026-03-31 22:34:55 +02:00
Alessandro Ros d76c6b561a modernize make dockerhub (#5628) 2026-03-31 22:34:46 +02:00
dependabot[bot] e144f8b97e build(deps): bump github.com/bluenviron/gortmplib from 0.3.0 to 0.3.1 (#5625)
Bumps [github.com/bluenviron/gortmplib](https://github.com/bluenviron/gortmplib) from 0.3.0 to 0.3.1.
- [Commits](https://github.com/bluenviron/gortmplib/compare/v0.3.0...v0.3.1)

---
updated-dependencies:
- dependency-name: github.com/bluenviron/gortmplib
  dependency-version: 0.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 21:31:19 +02:00
dependabot[bot] 89b1d526f9 build(deps): bump github.com/bluenviron/gortsplib/v5 from 5.5.0 to 5.5.1 (#5626)
Bumps [github.com/bluenviron/gortsplib/v5](https://github.com/bluenviron/gortsplib) from 5.5.0 to 5.5.1.
- [Commits](https://github.com/bluenviron/gortsplib/compare/v5.5.0...v5.5.1)

---
updated-dependencies:
- dependency-name: github.com/bluenviron/gortsplib/v5
  dependency-version: 5.5.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 21:24:03 +02:00
dependabot[bot] 20111af27e build(deps): bump github.com/go-git/go-git/v5 from 5.17.1 to 5.17.2 (#5623)
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.17.1 to 5.17.2.
- [Release notes](https://github.com/go-git/go-git/releases)
- [Commits](https://github.com/go-git/go-git/compare/v5.17.1...v5.17.2)

---
updated-dependencies:
- dependency-name: github.com/go-git/go-git/v5
  dependency-version: 5.17.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 21:10:01 +02:00
Alessandro Ros 0eb7089ed6 use safer atomic structs instead of atomic functions (#5622) 2026-03-31 11:30:50 +02:00
dependabot[bot] 19f66ed06a build(deps): bump github.com/gin-contrib/pprof from 1.5.3 to 1.5.4 (#5620)
Bumps [github.com/gin-contrib/pprof](https://github.com/gin-contrib/pprof) from 1.5.3 to 1.5.4.
- [Release notes](https://github.com/gin-contrib/pprof/releases)
- [Commits](https://github.com/gin-contrib/pprof/compare/v1.5.3...v1.5.4)

---
updated-dependencies:
- dependency-name: github.com/gin-contrib/pprof
  dependency-version: 1.5.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 11:13:14 +02:00
Alessandro Ros 525c020736 docs: fix typo (#5621) 2026-03-31 11:08:23 +02:00
dependabot[bot] 1aa7e09d96 build(deps): bump github.com/pion/webrtc/v4 from 4.2.9 to 4.2.11 (#5615)
Bumps [github.com/pion/webrtc/v4](https://github.com/pion/webrtc) from 4.2.9 to 4.2.11.
- [Release notes](https://github.com/pion/webrtc/releases)
- [Commits](https://github.com/pion/webrtc/compare/v4.2.9...v4.2.11)

---
updated-dependencies:
- dependency-name: github.com/pion/webrtc/v4
  dependency-version: 4.2.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 11:07:50 +02:00
dependabot[bot] c3184d4cb7 build(deps): bump codecov/codecov-action from 5 to 6 (#5616)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5 to 6.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 11:07:20 +02:00
dependabot[bot] 3e8c7de439 build(deps): bump github.com/go-git/go-git/v5 from 5.17.0 to 5.17.1 (#5619)
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.17.0 to 5.17.1.
- [Release notes](https://github.com/go-git/go-git/releases)
- [Commits](https://github.com/go-git/go-git/compare/v5.17.0...v5.17.1)

---
updated-dependencies:
- dependency-name: github.com/go-git/go-git/v5
  dependency-version: 5.17.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 11:07:01 +02:00
dependabot[bot] b4d198647d build(deps): bump github.com/pion/ice/v4 from 4.2.1 to 4.2.2 (#5609)
Bumps [github.com/pion/ice/v4](https://github.com/pion/ice) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/pion/ice/releases)
- [Commits](https://github.com/pion/ice/compare/v4.2.1...v4.2.2)

---
updated-dependencies:
- dependency-name: github.com/pion/ice/v4
  dependency-version: 4.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-26 08:37:14 +01:00
Alessandro Ros 7418e51031 prevent directory traversal attacks (#5602)
Path names are used as part of paths in several components: in the
recorder, in the playback server and in every HTTP-based component
(WebRTC, HLS, API). Special characters that allow to escape from the
intended directory are now forbidden in order to prevent directory
traversal attacks.
2026-03-23 20:16:12 +01:00
Alessandro Ros d5d1de0bd2 webrtc: strip TWCC extension of incoming RTP packets (#5146) (#5605)
The TWCC extension is used as part of the WebRTC congestion control
algorithm placed between the publisher and the server. If this
extension is routed untouched from the server to readers, it messes
with the congestion control algorithm present between the server and
each reader. Remove it.
2026-03-23 14:14:46 +01:00
bluenviron-bot ff4ca04fb4 bump golangci-lint to 2.11.4 (#5607) 2026-03-23 13:50:19 +01:00
Alessandro Ros 33f12816cd docs: update (#5598) 2026-03-22 10:38:53 +01:00
t-animal 8568d8c57c webrtc: fix random absolute timestamps with Opus, G711 and LPCM (#5597)
When rewriting audio RTP timestamps in WebRTC egress, NTP was
derived using regenerated packet timestamps minus the incoming
RTP base timestamp.

That mixed timestamp domains and could shift absolute time by an
arbitrary offset while still exposing mapping as available.

Fix by using a consistent outgoing RTP domain in rewritten audio
paths:
- snapshot outgoing base timestamp before rewriting each unit
- compute NTP from (outgoing packet timestamp - outgoing base
  timestamp)

This keeps RTP<->NTP mapping coherent for sender reports and prevents
random absolute-time offsets in WebRTC loopback with
useAbsoluteTimestamp.

---------

Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2026-03-21 19:46:39 +01:00
Alessandro Ros 3381b196fb solve codec labels internally (#5603)
stop using gortsplib format.Format.Codec() for getting codec names.
2026-03-21 18:22:49 +01:00
Alessandro Ros 0f42f087ab test: add docslinks linter (#5601)
this checks links in the documentation.
2026-03-21 13:04:14 +01:00
Alessandro Ros a82e0c7a9d rpi: restore Docker compatibility with armv6 devices (#5590) (#5595) 2026-03-19 21:21:27 +01:00
Alessandro Ros 12687e5abb improve documentation (#5586) 2026-03-18 09:47:46 +01:00
Alessandro Ros 2b302e7940 api: provide track details (#5307) (#5333) (#1726) (#5585) v1.17.0 2026-03-18 00:01:43 +01:00
dependabot[bot] 95e5b55dae build(deps): bump code.cloudfoundry.org/bytefmt from 0.66.0 to 0.67.0 (#5583)
Bumps [code.cloudfoundry.org/bytefmt](https://github.com/cloudfoundry/bytefmt) from 0.66.0 to 0.67.0.
- [Release notes](https://github.com/cloudfoundry/bytefmt/releases)
- [Commits](https://github.com/cloudfoundry/bytefmt/compare/v0.66.0...v0.67.0)

---
updated-dependencies:
- dependency-name: code.cloudfoundry.org/bytefmt
  dependency-version: 0.67.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-17 19:14:19 +01:00
eh f98c9c59ca rtsp: support unwrapping MPEG-TS tracks (#5476)
this allows to use MPEG-TS tracks with other protocols and with the recording system.

---------

Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2026-03-17 19:14:04 +01:00
Alessandro Ros c8e07b55d5 api: add new stats (#5582)
- RTSPSession.outboundRTPPacketsDiscarded
- Path.inboundFramesInError
- SRTConn.outboundFramesDiscarded
- WebRTCSession.outboundFramesDiscarded
- RTMPConn.outboundFramesDiscarded
- HLSMuxer.outboundFramesDiscarded
2026-03-17 17:22:15 +01:00
Alessandro Ros adf45596a3 api: rename WebRTC stats to match RTSP ones (#5581) 2026-03-16 23:29:25 +01:00
Alessandro Ros 02e05f1f16 metrics: add two missing SRT stats (#5580) 2026-03-16 22:18:16 +01:00
Alessandro Ros dfce20fefa api: add RTSP reported lost packets (#5198) (#5579)
The new outboundRtpPacketsReportedLost property allows to track RTP
packets that have been reported lost by readers. Furthermore, stats now
have a "inbound" or "outbound" prefix to improve readability.
2026-03-16 22:10:18 +01:00
Roman Sirokov 9a485119ec docs: clarify jwt in query option for rtsp and rtmp (#5577) 2026-03-16 21:41:05 +01:00
Alessandro Ros 3bad7045c1 api: add missing enums and move all enums in dedicated components (#5576) 2026-03-15 22:09:00 +01:00
Alessandro Ros c6bb332664 api: add deprecated fields to the OpenAPI definition (#5575) 2026-03-15 19:28:06 +01:00
Alessandro Ros a7290a2069 webrtc: support publishing multiple video/audio renditions (#5573)
this allows to receive multiple video tracks from OBS Studio with the
new WebRTC Simulcast feature introduced in v32.1.0.
2026-03-14 16:59:05 +01:00
Alessandro Ros d1fd3df27c api: add user field to RTSP, RTMP, SRT, WebRTC conns and sessions (#5104) (#5565) 2026-03-14 00:03:58 +01:00
Roman Sirokov 9b36d50b8d optionally validate JWT iss and aud claims (#5569) 2026-03-13 22:38:40 +01:00
Alessandro Ros a6856e9e58 tests: fix race conditions (#5571) 2026-03-13 22:32:06 +01:00
Alessandro Ros 7c9023f139 docs: update (#5570) 2026-03-13 14:13:42 +01:00
dependabot[bot] 1ef2af64b1 build(deps): bump golang.org/x/crypto from 0.48.0 to 0.49.0 (#5568)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.48.0 to 0.49.0.
- [Commits](https://github.com/golang/crypto/compare/v0.48.0...v0.49.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-version: 0.49.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-13 13:57:44 +01:00
Alessandro Ros e59fbd4590 docs: update (#5567) 2026-03-12 13:48:35 +01:00
Alessandro Ros 979ddaf81d webrtc: fix panic with WHIP POST authentication failures (#5566) 2026-03-12 12:14:49 +01:00
dependabot[bot] 622513cb24 build(deps): bump code.cloudfoundry.org/bytefmt from 0.65.0 to 0.66.0 (#5560)
Bumps [code.cloudfoundry.org/bytefmt](https://github.com/cloudfoundry/bytefmt) from 0.65.0 to 0.66.0.
- [Release notes](https://github.com/cloudfoundry/bytefmt/releases)
- [Commits](https://github.com/cloudfoundry/bytefmt/compare/v0.65.0...v0.66.0)

---
updated-dependencies:
- dependency-name: code.cloudfoundry.org/bytefmt
  dependency-version: 0.66.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 23:00:29 +01:00
dependabot[bot] 4da3015388 build(deps): bump golang.org/x/term from 0.40.0 to 0.41.0 (#5563)
Bumps [golang.org/x/term](https://github.com/golang/term) from 0.40.0 to 0.41.0.
- [Commits](https://github.com/golang/term/compare/v0.40.0...v0.41.0)

---
updated-dependencies:
- dependency-name: golang.org/x/term
  dependency-version: 0.41.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 23:00:20 +01:00
dependabot[bot] d0d6272825 build(deps): bump github.com/abema/go-mp4 from 1.4.1 to 1.5.0 (#5564)
Bumps [github.com/abema/go-mp4](https://github.com/abema/go-mp4) from 1.4.1 to 1.5.0.
- [Release notes](https://github.com/abema/go-mp4/releases)
- [Commits](https://github.com/abema/go-mp4/compare/v1.4.1...v1.5.0)

---
updated-dependencies:
- dependency-name: github.com/abema/go-mp4
  dependency-version: 1.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 23:00:08 +01:00
bluenviron-bot 8a4c89f6e9 bump golangci-lint to 2.11.3 (#5561) 2026-03-11 22:59:54 +01:00
bluenviron-bot 891befedf6 bump golangci-lint to 2.11.2 (#5555) 2026-03-09 20:39:54 +01:00
dependabot[bot] abf31b65f7 build(deps): bump golang.org/x/sys from 0.41.0 to 0.42.0 (#5557)
Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.41.0 to 0.42.0.
- [Commits](https://github.com/golang/sys/compare/v0.41.0...v0.42.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-version: 0.42.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-09 20:39:42 +01:00
JulienCossec 184899dfab fix: avoid buffering HTTP response body in loggerWriter (#5552)
loggerWriter was shadow-copying every response byte into a bytes.Buffer
to report the body size, causing the entire response to be accumulated
in memory for the lifetime of each request. Replace the buffer with a
plain int counter since dump() only ever reported the byte count anyway.
2026-03-07 18:36:10 +01:00
Alessandro Ros daec21324f rtsp: fix rtsps scheme not being used in requests (#5236) (#5544) 2026-03-07 18:30:40 +01:00