Alessandro Ros
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
4472bcfc4b
use "token" as query parameter key to pass tokens ( #5647 )
...
the legacy "jwt" query parameter key is still supported.
2026-04-06 17:51:59 +02:00
Alessandro Ros
141b789fa9
docs: further decrease Keycloak JWT length ( #5646 )
...
this helps a lot in using JWTs with players with URL limitations.
2026-04-06 17:23:10 +02:00
Alessandro Ros
33f12816cd
docs: update ( #5598 )
2026-03-22 10:38:53 +01:00
Alessandro Ros
12687e5abb
improve documentation ( #5586 )
2026-03-18 09:47:46 +01:00
eh
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
Roman Sirokov
9a485119ec
docs: clarify jwt in query option for rtsp and rtmp ( #5577 )
2026-03-16 21:41:05 +01:00
Roman Sirokov
9b36d50b8d
optionally validate JWT iss and aud claims ( #5569 )
2026-03-13 22:38:40 +01:00
Alessandro Ros
e59fbd4590
docs: update ( #5567 )
2026-03-12 13:48:35 +01:00
Alessandro Ros
549300cbd4
prevent using alwaysAvailableFile and alwaysAvailableTracks together ( #5529 )
2026-02-28 18:31:41 +01:00
Alessandro Ros
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
Alessandro Ros
28b0e21910
suggest using JWTs in query parameters for RTSP and RTMP ( #5267 ) ( #5493 )
...
In case of RTSP and RTMP, JWTs cannot be used as passwords since
there's a size limit. Therefore, documentation is updated to suggest
passing JWT through query parameters, and authJWTInHTTPQuery is updated
to act on HTTP requests only.
2026-02-20 22:16:56 +01:00
Alessandro Ros
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
d492db6114
docs: update ( #5471 )
2026-02-19 11:57:07 +01:00
Alessandro Ros
f991821a5f
webrtc: allow tuning WHEP timeouts ( #5027 ) ( #5479 )
...
add whepHandshakeTimeout, whepTrackGatherTimeout, whepSTUNGatherTimeout
2026-02-18 16:29:25 +01:00
Alessandro Ros
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
9793f90453
make config file YAML 1.2 compliant ( #5345 ) ( #5456 )
2026-02-12 15:46:06 +01:00
Alessandro Ros
c250e34075
support X-Forwarded-Proto in playback server ( #4970 ) ( #5445 )
...
allow reverse proxies to change the schema of URLs returned by the
server through the X-Forwarded-Proto header.
2026-02-11 21:47:02 +01:00
Alessandro Ros
2c93262635
update documentation ( #5418 )
2026-02-07 19:41:43 +01:00
Alessandro Ros
4f859fb40b
add authHTTPFingerprint ( #5413 ) ( #5422 )
2026-02-05 16:51:29 +01:00
Alessandro Ros
4dc09e1d51
set default udpMaxPayloadSize to an IPv6 compatible value ( #4882 ) ( #5402 )
...
When using IPv6, there are 20 bytes less available for UDP payload,
which has been adjusted accordingly.
2026-02-05 16:32:02 +01:00
Alessandro Ros
74eaa11d3a
rtsp: add rtspUDPSourcePortRange param ( #5363 ) ( #5397 )
2026-01-31 16:21:53 +01:00
Alessandro Ros
92f9ee7b78
deprecate fallback ( #5388 )
...
The fallback feature worked with RTSP only and did not allow readers to
resume the original stream. It has been replaced by alwaysAvailable.
2026-01-31 15:29:24 +01:00
Alessandro Ros
115dab1533
api: add available, availableTime, online, onlineTime properties ( #5391 )
...
these replace ready and readyTime and allow to monitor the new
"always-available" feature.
2026-01-31 14:54:10 +01:00
Alessandro Ros
a56408db19
add always available streams ( #5335 )
...
When the publisher or source of a stream is offline, the server can be
configured to fill gaps in the stream with a video that is played on
repeat until a publisher comes back online. This allows readers to stay
connected regardless of the state of the stream. The offline video and
any future online stream are concatenated without decoding or
re-encoding packets, using the original codec.
2026-01-31 14:44:58 +01:00
Alessandro Ros
69fdd18d86
docs: update ( #5308 )
2026-01-28 11:52:42 +01:00
Felipe de Luca Andrea
e34f978860
Update hlsEncryption documentation on Low-Latency HLS requirements ( #5379 )
2026-01-28 11:25:02 +01:00
Eugene Marushchenko
9e9fae9a10
add structured logging ( #5219 )
...
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2025-12-27 20:42:06 +01:00
Alessandro Ros
3692b2448a
set syslog priority and do not write level and date to syslog ( #4923 ) ( #5296 )
...
When writing log entries to syslog, pass the level (WARN, INFO, etc)
directly to syslog. Avoid writing level and date. This provides a
better integration and allows to use syslog search tools.
2025-12-27 14:06:26 +01:00
KHuynh
ade0cddeb3
support multiple CORS origins ( #5150 )
...
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2025-11-21 02:00:46 +01:00
Alessandro Ros
adc4a6ceb6
add udpReadBufferSize parameter ( #5129 )
...
this allows to set a global UDP read buffer, applied to every UDP socket.
2025-10-29 11:28:22 +01:00
Alessandro Ros
ccaccc51b4
replace incoming absolute timestamps of any source ( #5081 )
...
Absolute timestamps are used to generate recording segments, so users
should not be able to change them, unless explicitly allowed.
Parameter useAbsoluteTimestamp allowed to re-enable absolute timestamps
with RTSP and WebRTC, now it is extended to all protocols.
2025-10-13 12:23:51 +02:00
Alessandro Ros
85f57b90db
stop accepting JWTs from query parameters unless allowed in conf ( #5010 )
...
This is the first step into removing support for JWTs in
query parameters, which is a security flaw.
2025-09-22 10:04:51 +02:00
Alessandro Ros
0b635617c7
docs: update ( #4994 )
2025-09-18 18:41:51 +02:00
Alessandro Ros
f81c50ee68
rtsp: support reading streams tunneled with HTTP or WebSocket ( #4986 )
2025-09-17 22:31:20 +02:00
Alessandro Ros
35aceaa4a9
send server name (SNI) when opening TLS connections ( #4973 )
2025-09-15 19:38:36 +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
Alessandro Ros
d0430d8ea5
support ingesting RTP streams ( #1515 ) ( #4843 )
2025-08-09 16:12:10 +02:00
Alessandro Ros
7feff1d1dc
support MPEG-TS over unix sockets ( #4388 ) ( #4389 ) ( #4828 )
2025-08-08 18:03:38 +02:00
Alessandro Ros
7ac752097b
rpi: allow setting software H264 profile and level ( #3965 ) ( #4786 )
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
Alessandro Ros
9ddcbf5c97
recorder: limit maximum part size ( #4674 ) ( #4760 )
...
this prevents RAM exhaustion.
2025-07-20 19:16:33 +02:00
Alessandro Ros
c475f84e5d
rtsp: support encrypting UDP and UDP-multicast streams ( #4690 )
2025-07-05 13:46:59 +02:00
Alessandro Ros
42a39716a9
update documentation ( #4626 )
2025-06-08 10:36:12 +02:00
Alessandro Ros
dbc38a7aa6
record: support storing timezone in recording segments ( #3566 ) ( #4597 )
2025-06-02 20:47:29 +02:00
Alessandro Ros
e0ad33320e
update docs ( #4520 )
2025-05-11 11:20:03 +02:00
Alessandro Ros
74bfb988d7
allow disabling JWT in HTTP query parameters ( #4518 )
2025-05-11 10:21:08 +02:00
Alessandro Ros
f97213ae6e
support passing JWTs through the password field ( #4516 )
...
This is safer than passing JWTs through query parameters, unfortunately support is limited.
2025-05-10 22:54:24 +02:00