Commit graph

1460 commits

Author SHA1 Message Date
bluenviron-bot
8e359a1eea
bump hls.js to v1.6.12 (#4957) 2025-09-12 08:53:53 +02:00
Alessandro Ros
9318107779
rtmp: support additional enhanced RTMP features (#4168) (#4321) (#4954)
Some checks are pending
code_lint / go (push) Waiting to run
code_lint / go_mod (push) Waiting to run
code_lint / docs (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
* 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 Ros
e0f4748839
modernize code (#4947)
Some checks failed
code_lint / go (push) Has been cancelled
code_lint / go_mod (push) Has been cancelled
code_lint / docs (push) Has been cancelled
code_lint / api_docs (push) Has been cancelled
code_test / test_64 (push) Has been cancelled
code_test / test_32 (push) Has been cancelled
code_test / test_e2e (push) Has been cancelled
2025-09-07 16:08:47 +02:00
Alessandro Ros
736abc40b3
fix golangci_lint workflow (#4933)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
2025-09-03 15:22:27 +02:00
hyesung913
cb16f68432
rtmp: improve control message compatibility with non-standard cameras (#4909)
* feat: improve RTMP control message compatibility with non-standard cameras

- Add flexible chunk stream ID validation for control messages
- Support common non-standard chunk stream IDs (2,3,4,5,6) used by various cameras
- Maintain backward compatibility with standard RTMP clients
- Fix connection issues with PTZ cameras using chunk stream ID 4

This resolves compatibility issues with IP cameras that don't strictly follow
RTMP spec while maintaining full support for standard RTMP implementations.
Previously, cameras using non-standard chunk stream IDs would fail with
'unexpected chunk stream ID' errors. Now MediaMTX provides nginx-rtmp level
compatibility with real-world camera implementations."

* add tests

* entirely remove control chunk stream ID validation

---------

Co-authored-by: Hyesung.Kim <hyesung.kim@xcath.com>
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2025-09-03 15:11:32 +02:00
Alessandro Ros
a558c5681a
improve documentation (#4918) 2025-08-31 14:15:58 +02:00
bluenviron-bot
9fce341fa2
bump hls.js to v1.6.11 (#4898)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
2025-08-26 23:51:13 +02:00
Pooyan Khanjankhani
3c8d78194c
refactor: remove duplicated http middleware (#4894) 2025-08-24 12:37:56 +02:00
bp0
fa6a20a5f9
hls, webrtc: Add disablepictureinpicture param (#4883)
Some checks failed
code_lint / golangci_lint (push) Has been cancelled
code_lint / mod_tidy (push) Has been cancelled
code_lint / api_docs (push) Has been cancelled
code_test / test_64 (push) Has been cancelled
code_test / test_32 (push) Has been cancelled
code_test / test_e2e (push) Has been cancelled
ref: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/video#disablepictureinpicture
2025-08-17 21:45:48 +02:00
bluenviron-bot
9ab48ea480
bump hls.js to v1.6.10 (#4877)
Some checks failed
code_lint / golangci_lint (push) Has been cancelled
code_lint / mod_tidy (push) Has been cancelled
code_lint / api_docs (push) Has been cancelled
code_test / test_64 (push) Has been cancelled
code_test / test_32 (push) Has been cancelled
code_test / test_e2e (push) Has been cancelled
2025-08-15 10:57:24 +02:00
alex9long
262ce82d58
refactor: use the built-in max/min to simplify the code (#4867)
Signed-off-by: alex9long <alex9long@outlook.com>
2025-08-14 10:32:24 +02:00
Alessandro Ros
c80220eb7c
webrtc: solve domains in webrtcAdditionalHosts on server-side (#4817) (#4866)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
2025-08-12 15:49:38 +02:00
Alessandro Ros
b627128d0f
remove context from webrtc.PeerConnection arguments (#4854)
contexts are useless since there's already PeerConnection.Close().
2025-08-12 15:19:59 +02:00
Alessandro Ros
5ae934887d
remove custom forks of pion/webrtc and pion/ice (#4861)
this fixes IPv6 reliability issues and allows to receive upstream
updates in a more linear way.
2025-08-12 14:30:08 +02:00
Alessandro Ros
89993951ca
fix arm32 / arm64 binaries (#4863) 2025-08-12 14:22:50 +02:00
Alessandro Ros
1a0f8e53f3
webrtc: show SDP answers in logs (#4862) 2025-08-12 14:11:42 +02:00
Alessandro Ros
afff90f00e
restore Windows compatibility (#4860) 2025-08-12 13:00:45 +02:00
Alessandro Ros
03623799f5
use slices.Contains when possible (#4859) 2025-08-12 12:28:20 +02:00
Alessandro Ros
da08b128c4
webrtc: fix crash when loading an invalid configuration (#4856)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
2025-08-11 19:16:00 +02:00
Alessandro Ros
61382e496b
fix memory leak when reloading the configuration (#4855)
When a path has a MPEG-TS, RTP or WebRTC source and the path
configuration is reloaded, a routine was left open because the reload
channel was not handled. This fixes the issue.
2025-08-11 17:50:40 +02:00
Alessandro Ros
6d4dfff959
webrtc: fix clock rate of outgoing RTCP receiver reports (#4852) 2025-08-11 13:59:10 +02:00
Alessandro Ros
2b316cb1f7
fix race conditions in tests (#4853) 2025-08-11 13:48:03 +02:00
Alessandro Ros
462fb2bd0f
allow setting UDP read buffer size (#3308) (#4846)
new parameters: rtspUDPReadBufferSize, rtpUDPReadBufferSize, mpegtsUDPReadBufferSize
2025-08-11 12:21:00 +02:00
dependabot[bot]
9e073cd34f
build(deps): bump github.com/bluenviron/gortsplib/v4 (#4850)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
Bumps [github.com/bluenviron/gortsplib/v4](https://github.com/bluenviron/gortsplib) from 4.16.0 to 4.16.1.
- [Commits](https://github.com/bluenviron/gortsplib/compare/v4.16.0...v4.16.1)

---
updated-dependencies:
- dependency-name: github.com/bluenviron/gortsplib/v4
  dependency-version: 4.16.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>
2025-08-11 11:05:29 +02:00
Alessandro Ros
19a47acca1
webrtc: close WebRTC sessions when closing browser tabs (#4477) (#4849)
This should decrease the delay before WebRTC sessions are marked as closed.
2025-08-11 10:48:37 +02:00
Alessandro Ros
2660e9629f
prevent leakages by exiting gracefully with SIGTERM (#4352) (#4845)
Some checks failed
code_lint / golangci_lint (push) Has been cancelled
code_lint / mod_tidy (push) Has been cancelled
code_lint / api_docs (push) Has been cancelled
code_test / test_64 (push) Has been cancelled
code_test / test_32 (push) Has been cancelled
code_test / test_e2e (push) Has been cancelled
2025-08-09 20:19:59 +02:00
Alessandro Ros
d0430d8ea5
support ingesting RTP streams (#1515) (#4843)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
2025-08-09 16:12:10 +02:00
Alessandro Ros
1f3014aeac
rename apidocs into api (#4844)
this is to follow standard Golang project layout
2025-08-09 16:05:34 +02:00
Alessandro Ros
69d37cc6c6
api: rename udpSource into mpegtsSource (#4842)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
2025-08-08 22:04:26 +02:00
Alessandro Ros
7feff1d1dc
support MPEG-TS over unix sockets (#4388) (#4389) (#4828)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
2025-08-08 18:03:38 +02:00
bluenviron-bot
cb01d81c0e
bump hls.js to v1.6.9 (#4833)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
2025-08-08 10:19:49 +02:00
bluenviron-bot
ecc25c2b37
bump hls.js to v1.6.8 (#4824)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
2025-08-05 17:07:18 +02:00
Alessandro Ros
914220d974
udp: listen on default multicast interface (#4565) (#4820)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
... instead of listening on all multicast interfaces.
2025-08-04 15:18:48 +02:00
krystiancha
6ffa07e8e8
Add support for HTTP over unix sockets (#4241)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
This adds support for using unix scheme in xxxAddress config options.
For example `hlsAddress: "unix://hls.sock"`.

---------

Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2025-08-03 12:30:26 +02:00
Alessandro Ros
eeb6ac3824
webrtc: re-enable ipv6 (#3227) (#4816)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
2025-08-02 23:32:48 +02:00
Alessandro Ros
cc48fdb2b8
metrics: allow filtering metrics (#953) (#4809)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
2025-08-02 13:10:57 +02:00
Alessandro Ros
548cdbeb8f
webrtc: fix crash introduced in #4795 (#4814) 2025-08-02 12:58:45 +02:00
Alessandro Ros
81abc2e008
webrtc: speed up candidate extraction (#4801)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
2025-07-29 12:09:12 +02:00
Alessandro Ros
89e295eb4a
metrics: add additional WebRTC metrics (#3304) (#4797)
webrtc_sessions_rtp_packets_received, webrtc_sessions_rtp_packets_sent,
webrtc_sessions_rtp_packets_lost, webrtc_sessions_rtp_packets_jitter,
webrtc_sessions_rtcp_packets_received,
webrtc_sessions_rtcp_packets_sent.
2025-07-29 11:17:12 +02:00
Alessandro Ros
40c4a7fd04
webrtc: fix crash introduced in #4795 (#4800) 2025-07-29 11:02:32 +02:00
Alessandro Ros
534ea4d0c6
api: add additional WebRTC statistics (#4795)
rtpPacketsReceived, rtpPacketsSent, rtpPacketsLost, rtpPacketsJitter,
rtcpPacketsReceived, rtcpPacketsSent
2025-07-29 10:43:52 +02:00
Alessandro Ros
e15795b1be
apidocs: add missing format to integers and floats (#4796)
Some checks failed
code_lint / golangci_lint (push) Has been cancelled
code_lint / mod_tidy (push) Has been cancelled
code_lint / api_docs (push) Has been cancelled
code_test / test_64 (push) Has been cancelled
code_test / test_32 (push) Has been cancelled
code_test / test_e2e (push) Has been cancelled
2025-07-27 20:45:09 +02:00
Alessandro Ros
98f7a749de
metrics: add path and remoteAddr tags (#3941) (#3420) (#4794)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
2025-07-27 12:07:32 +02:00
Alessandro Ros
b59c37ad4b
remove redundant definitions (#4793) 2025-07-27 12:01:52 +02:00
Alessandro Ros
b5c847bad6
metrics: add paths_readers metric (#4473) (#4789)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
2025-07-26 16:51:37 +02:00
Alessandro Ros
d423a71aaa
update linter settings (#4790) 2025-07-26 16:44:32 +02:00
Alessandro Ros
7ac752097b
rpi: allow setting software H264 profile and level (#3965) (#4786)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
2025-07-25 13:40:15 +02:00
Alessandro Ros
0fe12f8bf6
rpi: rename rpiCameraProfile into rpiCameraH264Profile, rpiCameraLevel into rpiCameraH264Level (#3965) (#4785) 2025-07-25 11:44:55 +02:00
Alessandro Ros
1cabc382b0
rpi: rename rpiCameraJPEGQuality in rpiCameraMJPEGQuality (#4784) 2025-07-25 11:40:09 +02:00
Alessandro Ros
94e001e736
rpi: add validity checks on rpiCameraProfile and rpiCameraLevel (#4783) 2025-07-25 11:36:40 +02:00