Alessandro Ros and GitHub
f81c50ee68
rtsp: support reading streams tunneled with HTTP or WebSocket ( #4986 )
2025-09-17 22:31:20 +02:00
Alessandro Ros and GitHub
558d1c3818
api: add tunnel and profile to RTSP conns and sessions ( #4985 )
2025-09-17 22:18:21 +02:00
Alessandro Ros and GitHub
e3b8af8933
switch to gortsplib/v5 ( #4978 )
2025-09-16 13:10:34 +02:00
Alessandro Ros and GitHub
35aceaa4a9
send server name (SNI) when opening TLS connections ( #4973 )
2025-09-15 19:38:36 +02:00
Alessandro Ros and GitHub
22aad7bbd0
docs: improve pprof page ( #4969 )
2025-09-13 12:10:24 +02:00
Alessandro Ros and GitHub
1b8897d30d
rtmp: move implementation to gortmplib ( #4968 )
2025-09-13 11:50:36 +02:00
Alessandro Ros and GitHub
e8b746b6d5
rtsp: fix memory leak when closing sessions ( #4964 ) ( #4678 ) ( #4967 )
2025-09-12 15:48:14 +02:00
Alessandro Ros and GitHub
0c801564fd
playback: fix crash during authentication errors ( #4960 ) ( #4966 )
2025-09-12 15:24:51 +02:00
Alessandro Ros and GitHub
a1f3631521
docs: fix links to files ( #4959 ) ( #4965 )
2025-09-12 13:17:28 +02:00
Alessandro Ros and GitHub
ccbfafd55b
docs: various updates ( #4946 )
2025-09-12 13:13:09 +02:00
Alessandro Ros and GitHub
57021467e9
rename formatprocessor into codecprocessor ( #4962 )
2025-09-12 10:24:11 +02:00
Alessandro Ros and GitHub
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 Ros and GitHub
e0f4748839
modernize code ( #4947 )
2025-09-07 16:08:47 +02:00
Alessandro Ros and GitHub
3a4d4e1802
docs: add linter ( #4945 )
2025-09-06 22:51:45 +02:00
Alessandro Ros and GitHub
736abc40b3
fix golangci_lint workflow ( #4933 )
2025-09-03 15:22:27 +02:00
Alessandro Ros and GitHub
1c3c4500f2
update documentation ( #4930 )
2025-09-02 10:39:11 +02:00
Alessandro Ros and GitHub
55ff69067e
docs: add security page ( #4922 )
2025-08-31 16:57:27 +02:00
Alessandro Ros and GitHub
3ed918bfca
docs: fix typo ( #4921 )
2025-08-31 16:23:33 +02:00
Alessandro Ros and GitHub
a3926f732a
docs: add instructions on how to extract screenshots ( #4920 )
2025-08-31 16:19:33 +02:00
Alessandro Ros and GitHub
a558c5681a
improve documentation ( #4918 )
2025-08-31 14:15:58 +02:00
Alessandro Ros and GitHub
12182b5913
update documentation ( #4915 )
2025-08-30 18:03:07 +02:00
Alessandro Ros and GitHub
f29299db39
update documentation ( #4914 )
2025-08-30 16:52:53 +02:00
Alessandro Ros and GitHub
1a5e736b59
link documentation to mediamtx.org ( #4912 )
2025-08-30 14:56:11 +02:00
Alessandro Ros and GitHub
c80220eb7c
webrtc: solve domains in webrtcAdditionalHosts on server-side ( #4817 ) ( #4866 )
2025-08-12 15:49:38 +02:00
Alessandro Ros and GitHub
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 and GitHub
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 and GitHub
89993951ca
fix arm32 / arm64 binaries ( #4863 )
2025-08-12 14:22:50 +02:00
Alessandro Ros and GitHub
1a0f8e53f3
webrtc: show SDP answers in logs ( #4862 )
2025-08-12 14:11:42 +02:00
Alessandro Ros and GitHub
afff90f00e
restore Windows compatibility ( #4860 )
2025-08-12 13:00:45 +02:00
Alessandro Ros and GitHub
03623799f5
use slices.Contains when possible ( #4859 )
2025-08-12 12:28:20 +02:00
Alessandro Ros and GitHub
da08b128c4
webrtc: fix crash when loading an invalid configuration ( #4856 )
2025-08-11 19:16:00 +02:00
Alessandro Ros and GitHub
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 and GitHub
6d4dfff959
webrtc: fix clock rate of outgoing RTCP receiver reports ( #4852 )
2025-08-11 13:59:10 +02:00
Alessandro Ros and GitHub
2b316cb1f7
fix race conditions in tests ( #4853 )
2025-08-11 13:48:03 +02:00
Alessandro Ros and GitHub
462fb2bd0f
allow setting UDP read buffer size ( #3308 ) ( #4846 )
...
new parameters: rtspUDPReadBufferSize, rtpUDPReadBufferSize, mpegtsUDPReadBufferSize
2025-08-11 12:21:00 +02:00
Alessandro Ros and GitHub
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 and GitHub
2660e9629f
prevent leakages by exiting gracefully with SIGTERM ( #4352 ) ( #4845 )
2025-08-09 20:19:59 +02:00
Alessandro Ros and GitHub
d0430d8ea5
support ingesting RTP streams ( #1515 ) ( #4843 )
2025-08-09 16:12:10 +02:00
Alessandro Ros and GitHub
1f3014aeac
rename apidocs into api ( #4844 )
...
this is to follow standard Golang project layout
2025-08-09 16:05:34 +02:00
Alessandro Ros and GitHub
69d37cc6c6
api: rename udpSource into mpegtsSource ( #4842 )
2025-08-08 22:04:26 +02:00
Alessandro Ros and GitHub
7feff1d1dc
support MPEG-TS over unix sockets ( #4388 ) ( #4389 ) ( #4828 )
2025-08-08 18:03:38 +02:00
Alessandro Ros and GitHub
fc9de27d92
enable github-actions dependabot ( #4834 )
2025-08-08 10:25:13 +02:00
Alessandro Ros and GitHub
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 Ros and GitHub
eeb6ac3824
webrtc: re-enable ipv6 ( #3227 ) ( #4816 )
2025-08-02 23:32:48 +02:00
Alessandro Ros and GitHub
cc48fdb2b8
metrics: allow filtering metrics ( #953 ) ( #4809 )
2025-08-02 13:10:57 +02:00
Alessandro Ros and GitHub
21404a6821
document metrics introduced in #4797 ( #4813 )
2025-08-02 13:03:35 +02:00
Alessandro Ros and GitHub
548cdbeb8f
webrtc: fix crash introduced in #4795 ( #4814 )
2025-08-02 12:58:45 +02:00
Alessandro Ros and GitHub
81abc2e008
webrtc: speed up candidate extraction ( #4801 )
2025-07-29 12:09:12 +02:00
Alessandro Ros and GitHub
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 and GitHub
40c4a7fd04
webrtc: fix crash introduced in #4795 ( #4800 )
2025-07-29 11:02:32 +02:00
Alessandro Ros and GitHub
534ea4d0c6
api: add additional WebRTC statistics ( #4795 )
...
rtpPacketsReceived, rtpPacketsSent, rtpPacketsLost, rtpPacketsJitter,
rtcpPacketsReceived, rtcpPacketsSent
2025-07-29 10:43:52 +02:00
Alessandro Ros and GitHub
e15795b1be
apidocs: add missing format to integers and floats ( #4796 )
2025-07-27 20:45:09 +02:00
Alessandro Ros and GitHub
98f7a749de
metrics: add path and remoteAddr tags ( #3941 ) ( #3420 ) ( #4794 )
2025-07-27 12:07:32 +02:00
Alessandro Ros and GitHub
b59c37ad4b
remove redundant definitions ( #4793 )
2025-07-27 12:01:52 +02:00
Alessandro Ros and GitHub
b5c847bad6
metrics: add paths_readers metric ( #4473 ) ( #4789 )
2025-07-26 16:51:37 +02:00
Alessandro Ros and GitHub
d423a71aaa
update linter settings ( #4790 )
2025-07-26 16:44:32 +02:00
Alessandro Ros and GitHub
7ac752097b
rpi: allow setting software H264 profile and level ( #3965 ) ( #4786 )
2025-07-25 13:40:15 +02:00
Alessandro Ros and GitHub
0fe12f8bf6
rpi: rename rpiCameraProfile into rpiCameraH264Profile, rpiCameraLevel into rpiCameraH264Level ( #3965 ) ( #4785 )
2025-07-25 11:44:55 +02:00
Alessandro Ros and GitHub
1cabc382b0
rpi: rename rpiCameraJPEGQuality in rpiCameraMJPEGQuality ( #4784 )
2025-07-25 11:40:09 +02:00
Alessandro Ros and GitHub
94e001e736
rpi: add validity checks on rpiCameraProfile and rpiCameraLevel ( #4783 )
2025-07-25 11:36:40 +02:00
Alessandro Ros and GitHub
0b901ade3e
remove PathManager.StartPublisher and StopPublisher ( #4766 )
...
simplify path manager usage.
2025-07-21 13:52:55 +02:00
Alessandro Ros and GitHub
cc27cf6563
mpegts, srt: support MPEG-4 Audio LATM tracks ( #4403 ) ( #4759 )
2025-07-21 10:02:40 +02:00
Alessandro Ros and GitHub
333c4d4c3c
fix race condition in tests ( #4764 )
2025-07-20 19:39:25 +02:00
Alessandro Ros and GitHub
9ddcbf5c97
recorder: limit maximum part size ( #4674 ) ( #4760 )
...
this prevents RAM exhaustion.
2025-07-20 19:16:33 +02:00
Alessandro Ros and GitHub
bc95f6240b
fix generating timestamp of non-RTSP MPEG-4 video streams ( #4758 )
2025-07-20 12:20:31 +02:00
Alessandro Ros and GitHub
801edf782a
remove redundant log message ( #4723 )
2025-07-13 16:42:35 +02:00
Alessandro Ros and GitHub
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 Ros and GitHub
82956a4abb
rtmp: fix compatibility with GStreamer rtmp2src / rtmp2sink ( #1433 ) ( #4718 )
2025-07-12 14:17:04 +02:00
Alessandro Ros and GitHub
3e9ca21448
rtsp: fix reading with RTSP and hashed credentials ( #4698 ) ( #4700 )
2025-07-07 10:42:39 +02:00
Alessandro Ros and GitHub
00b570297a
log workflow errors ( #4697 )
2025-07-06 22:03:31 +02:00
Alessandro Ros and GitHub
544a147124
add missing permissions to GitHub workflow ( #4696 )
2025-07-06 21:50:42 +02:00
Alessandro Ros and GitHub
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 Ros and GitHub
bf9cd328a9
rpi: fix RTP packet size ( #4691 )
...
UDP max payload size was not applied.
2025-07-05 15:31:28 +02:00
Alessandro Ros and GitHub
c475f84e5d
rtsp: support encrypting UDP and UDP-multicast streams ( #4690 )
2025-07-05 13:46:59 +02:00
Alessandro Ros and GitHub
81af4075f0
fix crash when ConfWatcher fails to initialize ( #4689 )
2025-07-05 10:59:57 +02:00
Alessandro Ros and GitHub
51af3a8cbe
add missing permission in workflow ( #4645 )
2025-06-12 19:10:50 +02:00
Alessandro Ros and GitHub
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 Ros and GitHub
7a7c9c4a6a
move checksum generation into Github Actions ( #4628 )
2025-06-08 13:59:43 +02:00
Alessandro Ros and GitHub
5a050a6b4d
remove make run, make go-mod-tidy ( #4627 )
2025-06-08 13:35:47 +02:00
Alessandro Ros and GitHub
42a39716a9
update documentation ( #4626 )
2025-06-08 10:36:12 +02:00
Alessandro Ros and GitHub
c21c969a8c
revert #4583 ( #4606 )
...
This reverts commit 500d18b6c6 .
2025-06-03 20:27:53 +02:00
Alessandro Ros and GitHub
500d18b6c6
rtmp: fix timeout when publishing with GLive T80 ( #4002 ) ( #4583 )
2025-06-03 18:26:00 +02:00
Alessandro Ros and GitHub
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 Ros and GitHub
dbc38a7aa6
record: support storing timezone in recording segments ( #3566 ) ( #4597 )
2025-06-02 20:47:29 +02:00
Alessandro Ros and GitHub
bf9df762ca
rpi: check hash of rpicamera binaries after download ( #4012 ) ( #4600 )
2025-06-02 20:32:50 +02:00
Alessandro Ros and GitHub
06abf6f679
update issue_lock workflow ( #4598 )
2025-06-02 18:59:40 +02:00
Alessandro Ros and GitHub
5ebc0f7f8d
cleanup workflows ( #4590 )
2025-05-31 17:35:32 +02:00
Alessandro Ros and GitHub
189c99d5fc
improve tests ( #4581 )
2025-05-29 20:37:44 +02:00
Alessandro Ros and GitHub
402b8ff9c9
recorder, playback: support changing codec parameters without switching segment ( #4262 ) ( #4582 )
2025-05-29 20:37:12 +02:00
Alessandro Ros and GitHub
65045c676f
stop updating legacy Docker image ( #4569 )
2025-05-27 22:10:48 +02:00
Alessandro Ros and GitHub
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 Ros and GitHub
99f4c73e07
recorder: improve fMP4 splitting algorithm ( #4566 )
...
consider all tracks when deciding the splitting point.
2025-05-27 19:19:55 +02:00
Alessandro Ros and GitHub
e799286f1c
recorder: fix segment duration when audio is in advance ( #4563 )
2025-05-27 15:28:30 +02:00
Alessandro Ros and GitHub
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 Ros and GitHub
823697210e
webrtc: fix race condition after #4558 ( #4564 )
2025-05-27 15:17:31 +02:00
Alessandro Ros and GitHub
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 Ros and GitHub
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 Ros and GitHub
fff3b9b315
record: fix loss of audio samples during segment switch ( #4556 )
2025-05-25 21:29:33 +02:00
Alessandro Ros and GitHub
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 Ros and GitHub
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