Streaming¶
Streaming settings tune how WebDAV playback uses provider connections, memory, caching, and retries. WebDAV credentials and filesystem behavior remain under WebDAV; queue capacity is under Queue.
Headless ENV
Map config keys below to NZBDAV_CONFIG__... with the
naming algorithm
(usenet.streaming-priority → NZBDAV_CONFIG__USENET__STREAMING_PRIORITY).
Connection allocation¶
| Control | Config key | Default | Effect |
|---|---|---|---|
| Max Download Connections | usenet.max-download-connections |
0 (auto = pool) |
Streaming connection budget |
| Apply limit per stream | usenet.max-download-connections-per-stream |
off | Give each concurrent stream its own budget |
| Per-stream performance | usenet.max-download-connections-per-stream-preset |
high |
low/medium/high/max = 25/50/75/100% |
| Streaming Priority (vs Queue) since 0.9.0 | usenet.streaming-priority |
80 |
Favor playback when streaming and queue imports overlap |
Provider limits still cap total connections. Spare capacity is not held idle for playback; the priority setting only affects admission when a provider pool is saturated.
Speed tuning
Raise Max Download Connections until throughput plateaus without
pegging CPU. Baseline with a host speed test, then time a /view download
from inside the container against the backend.
Streaming performance¶
| Control | Config key | Default | Effect |
|---|---|---|---|
| Enable Segment Cache | usenet.segment-cache.enabled |
off | Cache decoded segments on disk; restart required |
| Cache path | usenet.segment-cache.path |
/config/segment-cache |
Segment-cache directory |
| Maximum size (GB) | usenet.segment-cache.max-gb |
10 |
Segment-cache size limit |
| Streaming Segment Timeout | usenet.streaming-segment-timeout-seconds |
8 |
Per-segment deadline, 2–40 seconds |
| Streaming Read Timeout since 0.9.0 | usenet.streaming-read-timeout-seconds |
30 |
Initial 5–120 second wait to open a GET/range |
| Streaming Segment Retries | usenet.streaming-segment-retries |
3 |
Fresh-connection retries after timeout, 0–5 |
| Article Buffer Size | usenet.article-buffer-size |
40 |
Articles buffered ahead per stream |
| In-flight article budget (MiB) since 0.8.2 | usenet.in-flight-article-budget-mb |
auto | Host-wide decoded-byte cap, 64–8192 MiB |
| Idle connection timeout | usenet.idle-connection-timeout-seconds |
60 |
Close unused connections after 15–300 seconds |
| Pipelined article downloads | usenet.pipelined-body-requests |
on | Fetch WebDAV BODY requests in small batches |
| Container-aware gap fill since 0.10.0 | usenet.container-aware-fill |
on | Experimental MPEG-TS null-packet fill for confirmed gaps |
Article buffer and adaptive prefetch¶
usenet.article-buffer-size bounds how many decoded articles a stream may keep
ahead of the consumer. The in-flight article budget separately caps decoded
bytes across all concurrent streams.
When Pipelined article downloads is on, WebDAV BODY requests start in
batches of up to four articles on one connection. If playback starves waiting
for the next segment, InfiniDysk narrows that batch width (4 → 2 → 1) so more
connections can work in parallel. The width recovers gradually when the
consumer remains ahead.
Experimental container-aware gap fill¶
After every provider and fallback Message-ID confirms an article is missing or
corrupt, InfiniDysk normally emits the same number of zero bytes to preserve
later file offsets. For direct MPEG-TS files (.ts, .m2ts, .mts),
container-aware gap fill emits packet-aligned null packets instead when exact
segment offsets are available.
This can help compatible players resynchronize sooner, but cannot restore missing audio or video. Matroska, MP4/MOV, archive-backed files, and transient transport failures retain their existing behavior.
Capturing a buffering support pack¶
- Use
LOG_LEVEL=INFOso routine debug activity does not evict streaming events. - Enable Developer stream tracing under Settings → Support.
- Reproduce the stall by playing the file from Files so the read goes directly through
/view. - Download the support pack immediately after reproducing the problem.
Streaming and seeking · NNTP pipelining · Logs and crash dumps