build: raise net.core.rmem_max on receiver installs

UDP receive buffers clamp to net.core.rmem_max, whose stock Debian
default (~208 KB) is smaller than one VBV-bounded keyframe burst at
moderate-to-high bitrates. The resulting packet loss damages every
keyframe, drop-on-damage discards them silently, and the receiver
shows a black screen with no journal errors while the sender streams
happily. The install script now raises rmem_max to 4 MB and persists
the sysctl; buffers are allocated lazily, so this costs no RAM at
rest. Wi-Fi-only boards (Pi Zero 2 W) remain bandwidth-bound — the
RUNBOOK points at --bitrate as the tuning knob.
This commit is contained in:
2026-09-07 13:59:56 +02:00
parent 343c6b45e6
commit 236584c240
2 changed files with 14 additions and 2 deletions
+4 -2
View File
@@ -133,8 +133,10 @@ Optional flags: `--port`, `--peer HOST[:PORT]`, `--bitrate KBPS`,
Notes: the encoder runs a VBV that caps keyframe bursts to roughly two
frame periods of bytes, and the receiver requests a 4MB UDP receive
buffer (clamped by `net.core.rmem_max`). For very high `--bitrate`
values, raise `net.core.rmem_max` on the receiver machine.
buffer (clamped by `net.core.rmem_max`; the install script raises it to
4 MB and persists the change). The remaining bottleneck on Wi-Fi-only
boards is the wireless link itself — lower `--bitrate` until the stream
is stable.
The headless equivalent runs as part of `meson test` (`udp loopback` test):
synthetic frames → encode → packetize → localhost UDP → depacketize →