124 Commits
Author SHA1 Message Date
Alessandro RosandGitHub a56c635f8e fix deadlock when changing configuration through file and API (#6077) (#6101)
When changing configuration in parallel by editing the configuration
file and calling the API, the server could get into a deadlock that
prevented any further action. This is fixed.
2026-08-17 11:14:01 +00:00
Alessandro RosandGitHub b5b63d02fc support reading and publishing with Media-over-QUIC (#5815)
Media-over-QUIC is a streaming protocol built upon cutting edge
protocols (QUIC, HTTP3) and browser APIs (WebTransport, WebCodecs).
It's slightly faster than WebRTC, has an advanced data recovery
mechanism (placed at the frame level and not at the packet level), it
supports additional codecs (FLAC) and is less complicated to route.
2026-06-02 23:04:24 +02:00
5decbb4a3d Add user agent field to RTMP, RTSP, WebRTC, and HLS (#5753)
Surface user agent in the auth HTTP webhook payload as "userAgent"
and in the API structs for RTMP, RTSP, WebRTC and HLS connections.

---------

Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2026-06-02 20:29:07 +02:00
Alessandro RosandGitHub 7ab03cdc58 webrtc: rename incoming/outgoing into inbound/outbound (#5816) 2026-06-02 09:15:49 +02:00
Alessandro RosandGitHub ddb5f7212f hls: add hlsCDNSecret (#5716)
this allows to serve HLS streams behind a CDN in a simplified way, compatible with the new HLS session system.
2026-04-30 15:52:11 +02:00
Alessandro RosandGitHub 66a67188fe tests: use testing.T.TempDir rather than os.TempDir (#5709) 2026-04-29 22:47:47 +02:00
Alessandro RosandGitHub f87d9e659e hls: track sessions (#962) (#5683)
sessions are now tracked through cookies or query parameters.

This provides the ability to inspect sessions through logs, metrics and
API, allows more precise tracking of outbound bytes, decreases load on
external HTTP authentication URLs since they are now called once per
session and not once per request.
2026-04-25 21:10:34 +02:00
Alessandro RosandGitHub 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 RosandGitHub 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 RosandGitHub adf45596a3 api: rename WebRTC stats to match RTSP ones (#5581) 2026-03-16 23:29:25 +01:00
Alessandro RosandGitHub 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
Alessandro RosandGitHub 3bad7045c1 api: add missing enums and move all enums in dedicated components (#5576) 2026-03-15 22:09:00 +01:00
Alessandro RosandGitHub d1fd3df27c api: add user field to RTSP, RTMP, SRT, WebRTC conns and sessions (#5104) (#5565) 2026-03-14 00:03:58 +01:00
Alessandro RosandGitHub f991821a5f webrtc: allow tuning WHEP timeouts (#5027) (#5479)
add whepHandshakeTimeout, whepTrackGatherTimeout, whepSTUNGatherTimeout
2026-02-18 16:29:25 +01:00
Alessandro RosandGitHub 832cc05f39 api: add conns to RTSP Sessions (#5454)
this allows to find connections associated with a RTSP session.
2026-02-12 15:45:34 +01:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
62effa79ef build(deps): bump github.com/bluenviron/gortmplib from 0.1.2 to 0.2.0 (#5300)
Bumps [github.com/bluenviron/gortmplib](https://github.com/bluenviron/gortmplib) from 0.1.2 to 0.2.0.
- [Commits](https://github.com/bluenviron/gortmplib/compare/v0.1.2...v0.2.0)

---
updated-dependencies:
- dependency-name: github.com/bluenviron/gortmplib
  dependency-version: 0.2.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>
2025-12-28 17:29:27 +01:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
f843df4ab8 build(deps): bump github.com/bluenviron/mediacommon/v2 (#5297)
Bumps [github.com/bluenviron/mediacommon/v2](https://github.com/bluenviron/mediacommon) from 2.5.3 to 2.6.0.
- [Commits](https://github.com/bluenviron/mediacommon/compare/v2.5.3...v2.6.0)

---
updated-dependencies:
- dependency-name: github.com/bluenviron/mediacommon/v2
  dependency-version: 2.6.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>
2025-12-28 15:44:36 +01:00
Alessandro RosandGitHub 3de05c1330 api: always reply with JSON in case of success or failure (#5252)
Reply with "status": "ok" in case of success, and with "status":
"error" in case of error. This makes the API more accessible and user
friendly.
2025-12-07 10:37:55 +01:00
Alessandro RosandGitHub ff187b6d8a update golangci-lint configuration (#5182) 2025-11-11 23:57:52 +01:00
Alessandro RosandGitHub 558d1c3818 api: add tunnel and profile to RTSP conns and sessions (#4985) 2025-09-17 22:18:21 +02:00
Alessandro RosandGitHub e3b8af8933 switch to gortsplib/v5 (#4978) 2025-09-16 13:10:34 +02:00
Alessandro RosandGitHub 1b8897d30d rtmp: move implementation to gortmplib (#4968) 2025-09-13 11:50:36 +02:00
Alessandro RosandGitHub 9318107779 rtmp: support additional enhanced RTMP features (#4168) (#4321) (#4954)
* support reading AV1, VP9, H265, Opus, AC-3, G711, LPCM
* support reading multiple video or audio tracks at once
2025-09-11 23:18:46 +02:00
Alessandro RosandGitHub 534ea4d0c6 api: add additional WebRTC statistics (#4795)
rtpPacketsReceived, rtpPacketsSent, rtpPacketsLost, rtpPacketsJitter,
rtcpPacketsReceived, rtcpPacketsSent
2025-07-29 10:43:52 +02:00
Alessandro RosandGitHub d423a71aaa update linter settings (#4790) 2025-07-26 16:44:32 +02:00
Alessandro RosandGitHub 1b9dfbd367 rtmp: support connecting to sources that require standard credentials (#4530) 2025-05-15 14:23:03 +02:00
Alessandro RosandGitHub a85d8f1391 rtmp: fix connect command when reading (#4512)
when reading, the "connect" command should not contain fpad,
capabilities, audioCodecs, videoCodecs, videoFunction.
2025-05-10 15:26:48 +02:00
Alessandro RosandGitHub 416ac1357e bump mediacommon and gortsplib (#4364) 2025-03-24 17:25:18 +01:00
Alessandro RosandGitHub c692f3b78c webrtc: rewrite WHIP client (#4299) 2025-03-01 17:01:57 +01:00
Alessandro RosandGitHub 244da930a1 switch to mediacommon/v2 (#4259) 2025-02-17 14:54:58 +01:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
c6a9d81d4c build(deps): bump github.com/bluenviron/mediacommon (#4193)
Bumps [github.com/bluenviron/mediacommon](https://github.com/bluenviron/mediacommon) from 1.13.4-0.20250119173005-20b296ab1174 to 1.13.4.
- [Commits](https://github.com/bluenviron/mediacommon/commits/v1.13.4)

---
updated-dependencies:
- dependency-name: github.com/bluenviron/mediacommon
  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>
2025-01-24 11:04:08 +01:00
Alessandro RosandGitHub 8f6267deb8 bump pion/webrtc to v4 (#4145) 2025-01-13 23:19:29 +01:00
Alessandro RosandGitHub 8cbbbc05c3 rtmp: support additional Enhanced-RTMP features (#3685) (#4088)
new features:
* support publishing Opus and AC-3 tracks
* support publishing more than 2 tracks. This is compatible with OBS multitrack video and OBS VOD audio track
2025-01-02 12:44:01 +01:00
Alessandro RosandGitHub dfb792eb90 rtsp: rename encryption, protocols, serverKey, serverCert into rtspEncryption, rtspProtocols, rtspServerKey, rtspServerCert (#4078) 2024-12-25 18:26:14 +01:00
Alessandro RosandGitHub 8a808ac0f6 api: add 'session' field to RTSPConn (#3974) (#4074) 2024-12-25 16:17:53 +01:00
Alessandro RosandGitHub 57addb1cc2 api, metrics: add additional RTSP statistics (#3312) (#4073) 2024-12-25 15:43:41 +01:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>aler9
cf01683168 build(deps): bump github.com/datarhei/gosrt from 0.7.0 to 0.8.0 (#3992)
* build(deps): bump github.com/datarhei/gosrt from 0.7.0 to 0.8.0

Bumps [github.com/datarhei/gosrt](https://github.com/datarhei/gosrt) from 0.7.0 to 0.8.0.
- [Commits](https://github.com/datarhei/gosrt/compare/v0.7.0...v0.8.0)

---
updated-dependencies:
- dependency-name: github.com/datarhei/gosrt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix tests

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2024-12-11 00:42:16 +01:00
Alessandro RosandGitHub 1a6547f13b restore pprof service (#3848) (#3851) 2024-10-08 17:06:47 +02:00
Alessandro RosandGitHub 6a38c87a5b hls, webrtc: add FromStream / ToStream (#3752) 2024-09-09 12:59:23 +02:00
Alessandro RosandGitHub 80a133afc9 bump dependencies (#3457) 2024-06-11 22:43:27 +02:00
Alessandro RosandGitHub 1204f76eb7 update golangci-lint (#3300) 2024-04-28 18:20:08 +02:00
2bd8ac7e19 fix support for JWT authentication in API, metrics, playback, pprof (#3253)
Co-authored-by: Rafael Scheidt <rafaelscheidt@Rafaels-MacBook-Air.local>
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2024-04-18 23:55:48 +02:00
Alessandro RosandGitHub 24cc62e344 hls: decrease number of idle connections kept open after a reconnection (#3128) 2024-03-10 11:51:15 +01:00
Alessandro RosandGitHub c7bdcea741 move RTSP tests into internal/servers/rtsp (#3049) 2024-02-20 19:35:35 +01:00
Alessandro RosandGitHub 9e5de737f0 move SRT tests into internal/servers/srt (#3037) 2024-02-17 20:42:41 +01:00
Alessandro RosandGitHub ad58efe47d move RTMP tests into internal/servers/rtmp (#3035) 2024-02-16 23:27:27 +01:00
e5e029a7f4 srt: add additional metrics (#2962)
* first attempt at the srt metrics

* Updated variables to better match mediamtx

* Prometheus metrics for SRT

* Update readme for SRT metrics

* Switch openapi to number from float

* SRT metrics metrics response fix

* Make the metric test less strict, and nolint line length on the SRT metrics struct

* remove nolint

* move BytesSent and BytesReceived into APISRTConnMetrics

* merge APISRTConn and APISRTConnMetrics

* improve tests

---------

Co-authored-by: slowe <slowe@clairglobal.com>
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2024-02-16 14:22:30 +01:00
Alessandro RosandGitHub 1ae3240b91 hls: fix crash when muxer is being recreated, improve performance (#3017) 2024-02-13 23:32:15 +01:00
Alessandro RosandGitHub b6eaa6bc18 move test utilities into 'test' (#3016)
* move test utilities into 'test'

* rename newEmptyTimer into emptyTimer
2024-02-13 18:49:27 +01:00
Alessandro RosandGitHub 0332ba59a0 api: add endpoints for recording management (#2901) (#2988) 2024-02-04 23:51:51 +01:00