Alessandro Ros and GitHub
04a133290b
test: convert more tests to black-box style ( #6139 )
2026-08-27 10:15:31 +00:00
cf5cd38cf9
webrtc: fix deprecated webrtcICEServers parser for IPv6 hosts; ( #5932 )
...
strings.Split produces wrong part count when the host contains colons
(IPv6). SplitN(s, ";", 4) keeps the hostport token intact.
---------
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2026-08-25 06:55:05 +00:00
3e09466c18
bump golangci-lint to 2.13.1 ( #6129 )
...
* bump golangci-lint to 2.13.1
* additional changes
---------
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2026-08-22 16:57:28 +00:00
Alessandro Ros and GitHub
8ac6ba64c8
moq: support pulling streams from other servers ( #6111 )
2026-08-18 13:23:40 +02:00
Alessandro Ros and GitHub
b80737c122
add destFingerprint parameter ( #6106 )
...
this allows to validate self-signed certificates of forward
destinations.
2026-08-18 09:35:37 +02:00
Alessandro Ros and GitHub
cca0f5a0cb
change default value of authHTTPExclude ( #6103 )
...
by default, do not exclude any action from HTTP authentication. Old
value triggered several security warnings.
2026-08-17 18:30:48 +02:00
Alessandro Ros and GitHub
831ed9564b
webrtc: support forwarding streams ( #6099 )
2026-08-16 21:09:59 +02:00
Alessandro Ros and GitHub
679b2b9532
impose a minimum value to clock rate of always-available tracks ( #6086 )
...
Clock rates below 10 caused the emission of empty samples. Fix the
issue by imposing a minimum value of 8khz, that rises to 22khz in case
of AAC.
2026-08-15 17:08:49 +00:00
Alessandro Ros and GitHub
78081d71d5
rpi: prevent invalid MJPEG sizes ( #6080 )
...
width and height of MJPEG frames must be multiple of 8 and less than
2048, otherwise they cannot be routed with RTP/RTSP.
2026-08-15 16:27:41 +02:00
Alessandro Ros and GitHub
a4ad182e4e
format imports ( #6041 )
2026-08-04 22:13:15 +00:00
Alessandro Ros and GitHub
e0ed9885fc
moq: support publishing and reading through native QUIC ( #6039 )
2026-08-04 23:47:59 +02:00
98ab3009ea
support forwarding streams natively ( #5558 )
...
It is now possible to define forward destinations for each path configuration. For each destination, the server will create a client that will forward the stream to the intended destination. Supported protocols are RTSP, RTMP, SRT. API and metrics have also been improved to allow monitoring the new forwarding system.
---------
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2026-08-04 21:57:15 +02:00
d15c14ec6a
avoid potential timing attack when validating SHA256 credentials ( #5961 )
...
The == operator is vulnerable to timing attacks as it short-circuits on a mismatch. Use
ConstantTimeCompare to avoid this vector.
Co-authored-by: Tristan Matthews <tmatth@videolan.org >
2026-07-19 09:46:34 +02:00
Alessandro Ros and GitHub
fa7a89f840
rtsp: restrict UDP port range to 32768-60999 ( #5398 ) ( #5958 )
...
this is the default Linux ephemeral port range.
2026-07-18 20:59:33 +02:00
Alessandro Ros and GitHub
96aeb1e603
rename runOnReady into runOnAvailable, runOnNotReady into runOnUnavailable ( #5957 )
2026-07-18 17:58:16 +02:00
Alessandro Ros and GitHub
8909e35a17
add runOnOnline / runOnOffline hooks ( #5399 ) ( #5956 )
...
These are triggered and a stream is online (i.e. not just provided by
an offline segment).
2026-07-18 17:41:38 +02:00
Alessandro Ros and GitHub
75bf1af38c
fix clearing lists with environment variables ( #5410 ) ( #5924 )
...
MTX_AUTHINTERNALUSERS_0_IPS, MTX_LOGDESTINATIONS and MTX_RTSPTRANSPORTS
can now be used to clear their corresponding list by setting them to an
empty value.
2026-07-18 10:56:46 +02:00
Alessandro Ros and GitHub
e98b727277
fix error message ( #5922 )
...
'all' is a synonym for 'all_others'
2026-07-05 11:00:09 +02:00
Alessandro Ros and GitHub
7eb5d30075
prevent truncation of 64-bit values on 32-bit platforms ( #5902 )
2026-06-28 11:37:14 +02:00
Alessandro Ros and GitHub
bf098c7eb5
support encoding secondary stream with H264 (2/2) ( #4485 ) ( #5898 )
2026-06-28 11:19:23 +02:00
Alessandro Ros and GitHub
1a7c10af1e
rpicamera: support encoding primary stream with MJPEG (2/2) ( #5892 )
2026-06-27 19:19:36 +02:00
Alessandro Ros and GitHub
07d0e232b2
rpi: add unified rpiCameraH264Profile, rpiCameraH264Level params ( #5894 )
...
These replace rpiCameraHardwareH264Profile, rpiCameraHardwareH264Level, rpiCameraSoftwareH264Profile, rpiCameraSoftwareH264Level.
2026-06-25 22:07:36 +02:00
d31c0b3900
rtsp: add rtspScale parameter to inject Scale header on PLAY ( #5800 )
...
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2026-06-20 12:08:15 +02:00
Alessandro Ros and GitHub
51f826057a
moq: rename moqHTTPS2Address into moqHTTP2Address, moqHTTPS3Address into moqHTTP3Address ( #5841 )
2026-06-07 16:34:37 +02:00
b2dc62e13c
rtmp, rtsp: support PROXY protocol ( #5754 )
...
Support PROXY protocol v1/v2 on RTMP, RTMPS, RTSP, and RTSPS TCP
listeners so real client IPs are visible when running behind L4 proxies
(nginx stream, HAProxy, AWS NLB).
---------
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2026-06-05 21:37:53 +02:00
6d1f152cc2
support using regexp groups in every part of a source URL ( #5766 ) ( #5779 )
...
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2026-06-03 23:40:22 +02:00
Alessandro Ros and GitHub
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
Alessandro Ros and GitHub
0f5a76e253
modernize code ( #5814 )
2026-05-31 20:33:48 +02:00
bluenviron-bot and GitHub
b83d5ac4b3
bump golangci-lint to 2.12.2 ( #5727 )
2026-05-10 17:54:18 +02:00
bluenviron-bot and GitHub
dc979a0be8
bump Golang to 1.26 ( #5721 )
2026-04-30 16:23:45 +02:00
Alessandro Ros and GitHub
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 Ros and GitHub
66a67188fe
tests: use testing.T.TempDir rather than os.TempDir ( #5709 )
2026-04-29 22:47:47 +02:00
Alessandro Ros and GitHub
6d6ebee80d
deprecate authJWTInHTTPQuery and disable JWTs in query parameters ( #5648 )
...
This fixes a long standing security flaw. Even though it's a breaking
change, few users should be impacted since this feature has been discouraged
for some time.
2026-04-06 18:03:22 +02:00
Alessandro Ros and GitHub
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
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 and GitHub
3bad7045c1
api: add missing enums and move all enums in dedicated components ( #5576 )
2026-03-15 22:09:00 +01:00
Alessandro Ros and GitHub
c6bb332664
api: add deprecated fields to the OpenAPI definition ( #5575 )
2026-03-15 19:28:06 +01:00
Roman Sirokov and GitHub
9b36d50b8d
optionally validate JWT iss and aud claims ( #5569 )
2026-03-13 22:38:40 +01:00
Alessandro Ros and GitHub
3f1ff994b7
revert to Go 1.25 ( #5521 ) ( #5538 )
...
It seems like Go 1.26 is causing segmentation faults, related to
channels, on Windows.
2026-03-01 10:09:11 +01:00
Alessandro Ros and GitHub
549300cbd4
prevent using alwaysAvailableFile and alwaysAvailableTracks together ( #5529 )
2026-02-28 18:31:41 +01:00
Alessandro Ros and GitHub
13551f0d98
fix panic when setting writeQueueSize to zero ( #5360 ) ( #5527 )
2026-02-28 09:18:42 +01:00
Alessandro Ros and GitHub
3568c54a02
improve JSON decoder performance ( #5526 )
...
avoid decoding JSON twice.
2026-02-27 23:25:04 +01:00
Alessandro Ros and GitHub
35e1f486c9
add integrated packet dumper ( #5488 )
...
this allows to dump any incoming and outgoing packet, to disk, in
pcapng format.
2026-02-22 13:34:05 +01:00
bluenviron-bot and GitHub
a07526d57c
bump Golang to 1.26 ( #5460 )
2026-02-21 14:48:53 +01:00
Alessandro Ros and GitHub
87fbfebf06
webrtc: add whepBearerTokenParameter ( #3796 ) ( #5486 )
...
this allows to pass Authorization: Bearer to servers that require it.
2026-02-19 11:57:39 +01:00
Alessandro Ros and GitHub
3c46bfd337
warn when alwaysAvailableFile is not MP4 ( #5483 )
2026-02-18 21:29:42 +01:00
Alessandro Ros and GitHub
f991821a5f
webrtc: allow tuning WHEP timeouts ( #5027 ) ( #5479 )
...
add whepHandshakeTimeout, whepTrackGatherTimeout, whepSTUNGatherTimeout
2026-02-18 16:29:25 +01:00
Alessandro Ros and GitHub
cb69d64fac
deprecate unix+rtp ( #5318 ) ( #4999 ) ( #5351 ) ( #5470 )
...
Unix socket are stream-based connections, while RTP requires
packet-based connections. While packet-based Unix sockets exist
(unixgram), no client supports them. Consequently we are forced to
deprecate unix+rtp.
2026-02-15 13:02:18 +01:00
Alessandro Ros and GitHub
a0bbdd9655
replace YAML parser ( #5461 )
...
switch from the unmaintained gopkg.in/yaml to goccy/go-yaml
2026-02-12 15:51:14 +01:00
4a559338ae
improve JSON error message ( #5412 ) ( #5433 )
...
Co-authored-by: Zaphkiel <duambi123@gmail.com >
2026-02-07 19:52:27 +01:00