Commit Graph
100 Commits
Author SHA1 Message Date
Alessandro RosandGitHub f81c50ee68 rtsp: support reading streams tunneled with HTTP or WebSocket (#4986) 2025-09-17 22:31:20 +02: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 35aceaa4a9 send server name (SNI) when opening TLS connections (#4973) 2025-09-15 19:38:36 +02:00
Alessandro RosandGitHub 22aad7bbd0 docs: improve pprof page (#4969) 2025-09-13 12:10:24 +02:00
Alessandro RosandGitHub 1b8897d30d rtmp: move implementation to gortmplib (#4968) 2025-09-13 11:50:36 +02:00
Alessandro RosandGitHub e8b746b6d5 rtsp: fix memory leak when closing sessions (#4964) (#4678) (#4967) 2025-09-12 15:48:14 +02:00
Alessandro RosandGitHub 0c801564fd playback: fix crash during authentication errors (#4960) (#4966) 2025-09-12 15:24:51 +02:00
Alessandro RosandGitHub a1f3631521 docs: fix links to files (#4959) (#4965) 2025-09-12 13:17:28 +02:00
Alessandro RosandGitHub ccbfafd55b docs: various updates (#4946) 2025-09-12 13:13:09 +02:00
Alessandro RosandGitHub 57021467e9 rename formatprocessor into codecprocessor (#4962) 2025-09-12 10:24:11 +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 e0f4748839 modernize code (#4947) 2025-09-07 16:08:47 +02:00
Alessandro RosandGitHub 3a4d4e1802 docs: add linter (#4945) 2025-09-06 22:51:45 +02:00
Alessandro RosandGitHub 736abc40b3 fix golangci_lint workflow (#4933) 2025-09-03 15:22:27 +02:00
Alessandro RosandGitHub 1c3c4500f2 update documentation (#4930) 2025-09-02 10:39:11 +02:00
Alessandro RosandGitHub 55ff69067e docs: add security page (#4922) 2025-08-31 16:57:27 +02:00
Alessandro RosandGitHub 3ed918bfca docs: fix typo (#4921) 2025-08-31 16:23:33 +02:00
Alessandro RosandGitHub a3926f732a docs: add instructions on how to extract screenshots (#4920) 2025-08-31 16:19:33 +02:00
Alessandro RosandGitHub a558c5681a improve documentation (#4918) 2025-08-31 14:15:58 +02:00
Alessandro RosandGitHub 12182b5913 update documentation (#4915) 2025-08-30 18:03:07 +02:00
Alessandro RosandGitHub f29299db39 update documentation (#4914) 2025-08-30 16:52:53 +02:00
Alessandro RosandGitHub 1a5e736b59 link documentation to mediamtx.org (#4912) 2025-08-30 14:56:11 +02:00
Alessandro RosandGitHub c80220eb7c webrtc: solve domains in webrtcAdditionalHosts on server-side (#4817) (#4866) 2025-08-12 15:49:38 +02:00
Alessandro RosandGitHub 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 RosandGitHub 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 RosandGitHub 89993951ca fix arm32 / arm64 binaries (#4863) 2025-08-12 14:22:50 +02:00
Alessandro RosandGitHub 1a0f8e53f3 webrtc: show SDP answers in logs (#4862) 2025-08-12 14:11:42 +02:00
Alessandro RosandGitHub afff90f00e restore Windows compatibility (#4860) 2025-08-12 13:00:45 +02:00
Alessandro RosandGitHub 03623799f5 use slices.Contains when possible (#4859) 2025-08-12 12:28:20 +02:00
Alessandro RosandGitHub da08b128c4 webrtc: fix crash when loading an invalid configuration (#4856) 2025-08-11 19:16:00 +02:00
Alessandro RosandGitHub 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 RosandGitHub 6d4dfff959 webrtc: fix clock rate of outgoing RTCP receiver reports (#4852) 2025-08-11 13:59:10 +02:00
Alessandro RosandGitHub 2b316cb1f7 fix race conditions in tests (#4853) 2025-08-11 13:48:03 +02:00
Alessandro RosandGitHub 462fb2bd0f allow setting UDP read buffer size (#3308) (#4846)
new parameters: rtspUDPReadBufferSize, rtpUDPReadBufferSize, mpegtsUDPReadBufferSize
2025-08-11 12:21:00 +02:00
Alessandro RosandGitHub 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 RosandGitHub 2660e9629f prevent leakages by exiting gracefully with SIGTERM (#4352) (#4845) 2025-08-09 20:19:59 +02:00
Alessandro RosandGitHub d0430d8ea5 support ingesting RTP streams (#1515) (#4843) 2025-08-09 16:12:10 +02:00
Alessandro RosandGitHub 1f3014aeac rename apidocs into api (#4844)
this is to follow standard Golang project layout
2025-08-09 16:05:34 +02:00
Alessandro RosandGitHub 69d37cc6c6 api: rename udpSource into mpegtsSource (#4842) 2025-08-08 22:04:26 +02:00
Alessandro RosandGitHub 7feff1d1dc support MPEG-TS over unix sockets (#4388) (#4389) (#4828) 2025-08-08 18:03:38 +02:00
Alessandro RosandGitHub fc9de27d92 enable github-actions dependabot (#4834) 2025-08-08 10:25:13 +02:00
Alessandro RosandGitHub 914220d974 udp: listen on default multicast interface (#4565) (#4820)
... instead of listening on all multicast interfaces.
2025-08-04 15:18:48 +02:00
Alessandro RosandGitHub eeb6ac3824 webrtc: re-enable ipv6 (#3227) (#4816) 2025-08-02 23:32:48 +02:00
Alessandro RosandGitHub cc48fdb2b8 metrics: allow filtering metrics (#953) (#4809) 2025-08-02 13:10:57 +02:00
Alessandro RosandGitHub 21404a6821 document metrics introduced in #4797 (#4813) 2025-08-02 13:03:35 +02:00
Alessandro RosandGitHub 548cdbeb8f webrtc: fix crash introduced in #4795 (#4814) 2025-08-02 12:58:45 +02:00
Alessandro RosandGitHub 81abc2e008 webrtc: speed up candidate extraction (#4801) 2025-07-29 12:09:12 +02:00
Alessandro RosandGitHub 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 RosandGitHub 40c4a7fd04 webrtc: fix crash introduced in #4795 (#4800) 2025-07-29 11:02:32 +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 e15795b1be apidocs: add missing format to integers and floats (#4796) 2025-07-27 20:45:09 +02:00
Alessandro RosandGitHub 98f7a749de metrics: add path and remoteAddr tags (#3941) (#3420) (#4794) 2025-07-27 12:07:32 +02:00
Alessandro RosandGitHub b59c37ad4b remove redundant definitions (#4793) 2025-07-27 12:01:52 +02:00
Alessandro RosandGitHub b5c847bad6 metrics: add paths_readers metric (#4473) (#4789) 2025-07-26 16:51:37 +02:00
Alessandro RosandGitHub d423a71aaa update linter settings (#4790) 2025-07-26 16:44:32 +02:00
Alessandro RosandGitHub 7ac752097b rpi: allow setting software H264 profile and level (#3965) (#4786) 2025-07-25 13:40:15 +02:00
Alessandro RosandGitHub 0fe12f8bf6 rpi: rename rpiCameraProfile into rpiCameraH264Profile, rpiCameraLevel into rpiCameraH264Level (#3965) (#4785) 2025-07-25 11:44:55 +02:00
Alessandro RosandGitHub 1cabc382b0 rpi: rename rpiCameraJPEGQuality in rpiCameraMJPEGQuality (#4784) 2025-07-25 11:40:09 +02:00
Alessandro RosandGitHub 94e001e736 rpi: add validity checks on rpiCameraProfile and rpiCameraLevel (#4783) 2025-07-25 11:36:40 +02:00
Alessandro RosandGitHub 0b901ade3e remove PathManager.StartPublisher and StopPublisher (#4766)
simplify path manager usage.
2025-07-21 13:52:55 +02:00
Alessandro RosandGitHub cc27cf6563 mpegts, srt: support MPEG-4 Audio LATM tracks (#4403) (#4759) 2025-07-21 10:02:40 +02:00
Alessandro RosandGitHub 333c4d4c3c fix race condition in tests (#4764) 2025-07-20 19:39:25 +02:00
Alessandro RosandGitHub 9ddcbf5c97 recorder: limit maximum part size (#4674) (#4760)
this prevents RAM exhaustion.
2025-07-20 19:16:33 +02:00
Alessandro RosandGitHub bc95f6240b fix generating timestamp of non-RTSP MPEG-4 video streams (#4758) 2025-07-20 12:20:31 +02:00
Alessandro RosandGitHub 801edf782a remove redundant log message (#4723) 2025-07-13 16:42:35 +02:00
Alessandro RosandGitHub bb3cfeec6f webrtc: fix re-establishing connection in iframe (#4721)
Prevent a bug in Firefox in which, when the page is loaded in an iframe
and the iframe is deleted and recreated, WebRTC is unable to
re-establish the connection.
2025-07-13 09:37:19 +02:00
Alessandro RosandGitHub 82956a4abb rtmp: fix compatibility with GStreamer rtmp2src / rtmp2sink (#1433) (#4718) 2025-07-12 14:17:04 +02:00
Alessandro RosandGitHub 3e9ca21448 rtsp: fix reading with RTSP and hashed credentials (#4698) (#4700) 2025-07-07 10:42:39 +02:00
Alessandro RosandGitHub 00b570297a log workflow errors (#4697) 2025-07-06 22:03:31 +02:00
Alessandro RosandGitHub 544a147124 add missing permissions to GitHub workflow (#4696) 2025-07-06 21:50:42 +02:00
Alessandro RosandGitHub 1083eea307 make RTP packet size compatible with RTSP/SRTP (#4692)
when RTSP encryption is enabled, maximum RTP packet size is slightly
decreased to make room for SRTP.
2025-07-05 15:42:58 +02:00
Alessandro RosandGitHub bf9cd328a9 rpi: fix RTP packet size (#4691)
UDP max payload size was not applied.
2025-07-05 15:31:28 +02:00
Alessandro RosandGitHub c475f84e5d rtsp: support encrypting UDP and UDP-multicast streams (#4690) 2025-07-05 13:46:59 +02:00
Alessandro RosandGitHub 81af4075f0 fix crash when ConfWatcher fails to initialize (#4689) 2025-07-05 10:59:57 +02:00
Alessandro RosandGitHub 51af3a8cbe add missing permission in workflow (#4645) 2025-06-12 19:10:50 +02:00
Alessandro RosandGitHub b3d3fd9b4c add attestation system to protect binaries (#4012) (#4629)
this allows to prove that binaries were produced by GitHub Actions.
2025-06-08 16:51:19 +02:00
Alessandro RosandGitHub 7a7c9c4a6a move checksum generation into Github Actions (#4628) 2025-06-08 13:59:43 +02:00
Alessandro RosandGitHub 5a050a6b4d remove make run, make go-mod-tidy (#4627) 2025-06-08 13:35:47 +02:00
Alessandro RosandGitHub 42a39716a9 update documentation (#4626) 2025-06-08 10:36:12 +02:00
Alessandro RosandGitHub c21c969a8c revert #4583 (#4606)
This reverts commit 500d18b6c6.
2025-06-03 20:27:53 +02:00
Alessandro RosandGitHub 500d18b6c6 rtmp: fix timeout when publishing with GLive T80 (#4002) (#4583) 2025-06-03 18:26:00 +02:00
Alessandro RosandGitHub 3c703052f6 webrtc: fix writing tracks to some clients (#4602)
some clients require PayloadType to be unique among all tracks, not
only among tracks of same kind.
2025-06-03 16:23:38 +02:00
Alessandro RosandGitHub dbc38a7aa6 record: support storing timezone in recording segments (#3566) (#4597) 2025-06-02 20:47:29 +02:00
Alessandro RosandGitHub bf9df762ca rpi: check hash of rpicamera binaries after download (#4012) (#4600) 2025-06-02 20:32:50 +02:00
Alessandro RosandGitHub 06abf6f679 update issue_lock workflow (#4598) 2025-06-02 18:59:40 +02:00
Alessandro RosandGitHub 5ebc0f7f8d cleanup workflows (#4590) 2025-05-31 17:35:32 +02:00
Alessandro RosandGitHub 189c99d5fc improve tests (#4581) 2025-05-29 20:37:44 +02:00
Alessandro RosandGitHub 402b8ff9c9 recorder, playback: support changing codec parameters without switching segment (#4262) (#4582) 2025-05-29 20:37:12 +02:00
Alessandro RosandGitHub 65045c676f stop updating legacy Docker image (#4569) 2025-05-27 22:10:48 +02:00
Alessandro RosandGitHub adf6ca9f90 delete paths that belong to a new configuration (#4013) (#4568)
when a new configuration is pushed with either API or hot reloading,
the server now checks whether existing paths belong to a new
configuration. If they do, these paths are deleted.
2025-05-27 22:02:37 +02:00
Alessandro RosandGitHub 99f4c73e07 recorder: improve fMP4 splitting algorithm (#4566)
consider all tracks when deciding the splitting point.
2025-05-27 19:19:55 +02:00
Alessandro RosandGitHub e799286f1c recorder: fix segment duration when audio is in advance (#4563) 2025-05-27 15:28:30 +02:00
Alessandro RosandGitHub 7b977861ff recorder: fix duration of first part of a segment (#4562)
when the first sample of the first part had a DTS different than the
start DTS of the segment, the starting DTS of the part was wrong, since
it was set to the segment start DTS.
2025-05-27 15:24:24 +02:00
Alessandro RosandGitHub 823697210e webrtc: fix race condition after #4558 (#4564) 2025-05-27 15:17:31 +02:00
Alessandro RosandGitHub 5d203b4d98 webrtc: prevent routine leaks (#4558)
wait for all routines to exit before assuming a WebRTC connection is closed.
2025-05-26 11:33:46 +02:00
Alessandro RosandGitHub 5d4653ba4e rtsp: fix authentication regression (#4557)
since #4267 it was impossible to perform authentication when protocol
is RTSP and credentials are hashed.
2025-05-26 11:08:27 +02:00
Alessandro RosandGitHub fff3b9b315 record: fix loss of audio samples during segment switch (#4556) 2025-05-25 21:29:33 +02:00
Alessandro RosandGitHub 01e6fedc36 playback: fix jerky video (#4555)
this happened when recording has B-frames, playback format is fmp4 and starting position doesn't correspond to a IDR frame.
2025-05-25 21:09:23 +02:00
Alessandro RosandGitHub 9a3bbda8f8 playback: fix error 404 when seeking before start of segment (#4276) (#4533) (#4539)
Fixes #4276
Replaces #4533
2025-05-25 18:50:19 +02:00