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
46b4293e35
api: improve openapi definition ( #5380 )
...
add uint64, uint, uuid, move WebRTCICEServer into dedicated schema
2026-01-25 19:35:43 +01:00
Alessandro Ros and GitHub
653d10fb75
use the same filtering process for every codec ( #5324 )
...
this allows to apply features that were previously implemented for
single codecs (like RTP packet resizing), to any codec, and simplifies
future development.
2026-01-16 14:03:13 +01:00
bluenviron-bot and GitHub
320bd3f4ae
bump golangci-lint to 2.8.0 ( #5350 )
2026-01-15 22:43:32 +01:00
Alessandro Ros and GitHub
b9adbc3e09
remove redundant check ( #5311 )
2026-01-01 22:47:03 +01:00
Alessandro Ros and GitHub
ff187b6d8a
update golangci-lint configuration ( #5182 )
2025-11-11 23:57:52 +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
0cdae40fe3
estimate absolute timestamp more precisely ( #5078 )
...
When the absolute timestamp of incoming frames was not available, it
was filled with the current timestamp, which is influenced by latency
over time.
This mechanism is replaced by an algorithm that detects when latency is
the lowest, stores the current timestamp and uses it as reference
throughout the rest of the stream.
2025-10-12 11:02:14 +02:00
Alessandro Ros and GitHub
e1f5d06612
allow changing record parameters without disconnecting readers ( #4663 ) ( #5018 )
2025-09-23 10:31:05 +02:00
Alessandro Ros and GitHub
e3b8af8933
switch to gortsplib/v5 ( #4978 )
2025-09-16 13:10:34 +02:00
Alessandro Ros and GitHub
d423a71aaa
update linter settings ( #4790 )
2025-07-26 16:44:32 +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
9ddcbf5c97
recorder: limit maximum part size ( #4674 ) ( #4760 )
...
this prevents RAM exhaustion.
2025-07-20 19:16:33 +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
defee1eed9
hls: fix toggling hlsAlwaysRemux after server is started ( #4503 )
...
When hlsAlwaysRemux was switched from false to true, through API or hot
reloading, muxers of existing paths were not created. This fixes the
issue.
2025-05-09 22:50:11 +02:00
Alessandro Ros and GitHub
8ce49727d6
rpi: support exposing a secondary stream from the same camera ( #4426 )
2025-04-14 11:56:08 +02:00
Alessandro Ros and GitHub
14f1daa02a
move static source handler into dedicated package ( #4427 )
2025-04-13 21:35:12 +02:00
Alessandro Ros and GitHub
986e270862
count and log all discarded frames, decode errors, lost packets ( #4363 )
...
Discarded frames, decode errors and lost packets were logged
individually, then there was a mechanism that prevented more than 1 log
entry per second from being printed, resulting in inaccurate reports.
Now discarded frames, decode errors and lost packets are accurately
counted, and their count is printed once every second.
2025-03-25 21:59:58 +01:00
Alessandro Ros and GitHub
b329c4bbe8
replace New* with Initialize() ( #4345 )
2025-03-16 15:34:53 +01:00
Alessandro Ros and GitHub
371b9585a6
change error message when stream is not found ( #4301 )
...
Switch from 'no one is publishing to path' to 'no stream is available
on path' since the stream might be provided from a static source too.
2025-03-03 18:09:22 +01:00
Alessandro Ros and GitHub
d822c2a200
rtsp: support using relative URLs in sourceRedirect ( #4260 )
2025-02-18 15:23:07 +01:00
Alessandro Ros and GitHub
b49acb1e00
accept durations expressed as days (i.e. '1d') ( #4094 )
2025-01-02 12:44:15 +01:00
Alessandro Ros and GitHub
4c3ac34425
fix memory leak in case of errors during initialization of a reader ( #3831 )
2024-10-05 00:49:44 +02:00
Alessandro Ros and GitHub
73a300afd0
fix cleaning of recordings in case of multiple recordDeleteAfter values ( #3557 ) ( #3741 )
2024-09-08 20:33:18 +02:00
Alessandro Ros and GitHub
65d90f7cc6
allow using MTX_QUERY inside source ( #3486 )
...
this allows to pass query parameters to sources, for instance:
source: rtsp://my_host/my_path?$MTX_QUERY
sourceOnDemand: true
2024-06-18 22:10:26 +02:00
Alessandro Ros and GitHub
3eabe6ac54
expose MTX_SEGMENT_DURATION to runOnRecordSegmentComplete ( #3440 ) ( #2983 ) ( #3456 )
...
* improve tests
* add duration to OnSegmentComplete
* expose MTX_SEGMENT_DURATION to runOnRecordSegmentComplete
* add tests
2024-06-11 18:30:40 +02:00
Alessandro Ros and GitHub
95f1f79b35
api: fix crash when changing settings of an on-demand source that is idle ( #3246 ) ( #3249 )
2024-04-15 17:44:54 +02:00
Alessandro Ros and GitHub
1ae3240b91
hls: fix crash when muxer is being recreated, improve performance ( #3017 )
2024-02-13 23:32:15 +01:00
Alessandro Ros and GitHub
b6eaa6bc18
move test utilities into 'test' ( #3016 )
...
* move test utilities into 'test'
* rename newEmptyTimer into emptyTimer
2024-02-13 18:49:27 +01:00
Alessandro Ros and GitHub
57c2d5aecb
add playback server ( #2452 ) ( #2906 )
...
* add playback server
* add playback switch
* update readme
2024-01-23 20:52:05 +01:00
Alessandro Ros and GitHub
514036d41a
treat different RTSP formats as different tracks in logs and API ( #2907 )
2024-01-15 12:08:14 +01:00
Alessandro Ros and GitHub
7437ee7a09
update golangci-lint ( #2868 )
2024-01-03 21:13:20 +01:00
Alessandro Ros and GitHub
1341421412
move api, metrics and pprof into dedicated packages ( #2843 )
2023-12-26 13:41:15 +01:00
Alessandro Ros and GitHub
0c131a2e92
rpi: pass log level to libcamera ( #2617 ) ( #2811 )
2023-12-15 12:10:16 +01:00
Alessandro Ros and GitHub
d261bfe773
support static sources in paths with regular expressions ( #824 ) ( #2799 )
...
This allows to proxy requests to other servers by using regular
expressions.
2023-12-10 21:23:41 +01:00
Alessandro Ros and GitHub
11988249df
move servers into internal/servers ( #2792 )
2023-12-08 19:17:17 +01:00
Alessandro Ros and GitHub
20123fd5b9
record: rename segmentPath into path ( #2777 )
2023-12-02 15:35:21 +01:00
Alessandro Ros and GitHub
7c8e593b0b
record: normalize decoding and encoding of segment paths ( #2775 )
2023-12-02 15:15:17 +01:00
Alessandro Ros and GitHub
ce45498769
move hooks into dedicated package ( #2746 )
2023-11-26 22:06:07 +01:00
Alessandro Ros and GitHub
7a1e155531
update dependencies ( #2687 )
2023-11-13 00:09:42 +01:00
Alessandro Ros and GitHub
687d8685ef
webrtc: improve connectivity mechanism ( #2686 )
2023-11-12 23:55:28 +01:00
4bf0d10079
metrics: add paths_bytes_sent, srt_conns, srt_conns_bytes_received, srt_conns_bytes_sent ( #2620 ) ( #2619 ) ( #2629 )
...
* add missing Prometheus exports (#2620 , #2619 ):
paths_bytes_sent, srt_conns, srt_conns_bytes_received, srt_conns_bytes_sent
* protect Stream.BytesSent()
* add tests
---------
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2023-11-08 11:20:16 +01:00
Alessandro Ros and GitHub
813611057d
add runOnUnDemand hook ( #2645 )
2023-11-04 13:07:51 +01:00
Alessandro Ros and GitHub
4f876ed207
fix crash when publishing to a path with 'runOnDemand' from outside 'runOnDemand' ( #2636 ) ( #2637 )
2023-11-03 16:54:25 +01:00
Alessandro Ros and GitHub
43d41c070b
move static sources into dedicated package ( #2616 )
2023-10-31 14:19:04 +01:00
Alessandro Ros and GitHub
3ebc585539
restart recordings in case of errors ( #2439 ) ( #2571 )
2023-10-26 21:40:44 +02:00
Alessandro Ros and GitHub
3a5bb06e26
add environment variable MTX_QUERY to some hooks ( #2483 ) ( #2522 )
2023-10-18 11:50:26 +02:00