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
831ed9564b
webrtc: support forwarding streams ( #6099 )
2026-08-16 21:09:59 +02:00
Alessandro Ros and GitHub
1b943637a4
moq: support draft-16 ( #6045 )
2026-08-05 12:16:07 +02:00
Alessandro Ros and GitHub
a65bdc1c5a
moq: support draft-17 ( #6040 )
2026-08-04 23:57:27 +02: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
Alessandro Ros and GitHub
6da35dc389
moq: support draft-19 of the specification ( #5968 )
...
* support draft-19 of the specification
* support subscribing the same track multiple times
2026-07-21 00:24:03 +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
99f804d733
api: generate most of OpenAPI automatically ( #5918 )
...
enums and structs are now generated automatically. This eliminates some
inconsistencies and makes development easier.
2026-07-04 17:45:43 +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
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
5decbb4a3d
Add user agent field to RTMP, RTSP, WebRTC, and HLS ( #5753 )
...
Surface user agent in the auth HTTP webhook payload as "userAgent"
and in the API structs for RTMP, RTSP, WebRTC and HLS connections.
---------
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2026-06-02 20:29:07 +02:00
Alessandro Ros and GitHub
903627ffed
apply prettier to the entire repository ( #5799 )
2026-05-26 11:35:14 +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
f87d9e659e
hls: track sessions ( #962 ) ( #5683 )
...
sessions are now tracked through cookies or query parameters.
This provides the ability to inspect sessions through logs, metrics and
API, allows more precise tracking of outbound bytes, decreases load on
external HTTP authentication URLs since they are now called once per
session and not once per request.
2026-04-25 21:10:34 +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
3381b196fb
solve codec labels internally ( #5603 )
...
stop using gortsplib format.Format.Codec() for getting codec names.
2026-03-21 18:22:49 +01:00
Alessandro Ros and GitHub
2b302e7940
api: provide track details ( #5307 ) ( #5333 ) ( #1726 ) ( #5585 )
2026-03-18 00:01:43 +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
c8e07b55d5
api: add new stats ( #5582 )
...
- RTSPSession.outboundRTPPacketsDiscarded
- Path.inboundFramesInError
- SRTConn.outboundFramesDiscarded
- WebRTCSession.outboundFramesDiscarded
- RTMPConn.outboundFramesDiscarded
- HLSMuxer.outboundFramesDiscarded
2026-03-17 17:22:15 +01:00
Alessandro Ros and GitHub
adf45596a3
api: rename WebRTC stats to match RTSP ones ( #5581 )
2026-03-16 23:29:25 +01:00
Alessandro Ros and GitHub
dfce20fefa
api: add RTSP reported lost packets ( #5198 ) ( #5579 )
...
The new outboundRtpPacketsReportedLost property allows to track RTP
packets that have been reported lost by readers. Furthermore, stats now
have a "inbound" or "outbound" prefix to improve readability.
2026-03-16 22:10:18 +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
Alessandro Ros and GitHub
d1fd3df27c
api: add user field to RTSP, RTMP, SRT, WebRTC conns and sessions ( #5104 ) ( #5565 )
2026-03-14 00:03:58 +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
549300cbd4
prevent using alwaysAvailableFile and alwaysAvailableTracks together ( #5529 )
2026-02-28 18:31:41 +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
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
f991821a5f
webrtc: allow tuning WHEP timeouts ( #5027 ) ( #5479 )
...
add whepHandshakeTimeout, whepTrackGatherTimeout, whepSTUNGatherTimeout
2026-02-18 16:29:25 +01:00
Alessandro Ros and GitHub
832cc05f39
api: add conns to RTSP Sessions ( #5454 )
...
this allows to find connections associated with a RTSP session.
2026-02-12 15:45:34 +01:00
Alessandro Ros and GitHub
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 and GitHub
4f859fb40b
add authHTTPFingerprint ( #5413 ) ( #5422 )
2026-02-05 16:51:29 +01:00
Alessandro Ros and GitHub
74eaa11d3a
rtsp: add rtspUDPSourcePortRange param ( #5363 ) ( #5397 )
2026-01-31 16:21:53 +01:00
Alessandro Ros and GitHub
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 and GitHub
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 and GitHub
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 and GitHub
69fdd18d86
docs: update ( #5308 )
2026-01-28 11:52:42 +01:00
Alessandro Ros and GitHub
46b4293e35
api: improve openapi definition ( #5380 )
...
add uint64, uint, uuid, move WebRTCICEServer into dedicated schema
2026-01-25 19:35:43 +01:00
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 and GitHub
3de05c1330
api: always reply with JSON in case of success or failure ( #5252 )
...
Reply with "status": "ok" in case of success, and with "status":
"error" in case of error. This makes the API more accessible and user
friendly.
2025-12-07 10:37:55 +01:00
Omar Ferro and GitHub
e168d2f3f4
apidocs: fix compatibility with OpenAPI 3.0 ( #5210 )
...
double-precision numbers are now represented as double.
2025-11-22 23:05:08 +01:00
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 and GitHub
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 and GitHub
2690ef8e71
api: add /info endpoint ( #945 ) ( #5045 )
2025-09-30 10:39:27 +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