Per-tile stream quality (high/low), fps cap, latency flags
Cameras carry multiple stream URLs (streams: high/medium/low); each tile picks one via Quality (auto/high/low). Small tiles can pull the low substream to cut Pi decode load. discover --enable-rtsp takes a comma list (high,low), enables each channel, records all enabled ones. TUI: q cycles a tile quality (shown in the tile); discover enables high+low. Player: --framedrop + low-delay demuxer flags; player.max_fps. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -81,11 +81,16 @@ func (p *Player) args() []string {
|
||||
"--title=" + p.Title(),
|
||||
"--input-ipc-server=" + p.ipcPath,
|
||||
"--hwdec=" + p.cfg.HWDec,
|
||||
// Live-stream hygiene: prefer TCP transport, keep buffers small.
|
||||
// Live-stream hygiene: TCP transport, no caching, and drop frames when
|
||||
// behind so latency self-corrects instead of accumulating a backlog.
|
||||
"--rtsp-transport=tcp",
|
||||
"--profile=low-latency",
|
||||
"--cache=no",
|
||||
"--demuxer-lavf-o=stimeout=5000000",
|
||||
"--framedrop=decoder+vo",
|
||||
"--demuxer-lavf-o=stimeout=5000000,fflags=+nobuffer,flags=+low_delay",
|
||||
}
|
||||
if p.cfg.MaxFPS > 0 {
|
||||
args = append(args, fmt.Sprintf("--vf=fps=%d", p.cfg.MaxFPS))
|
||||
}
|
||||
if p.cfg.Profile != "" && p.cfg.Profile != "low-latency" {
|
||||
args = append(args, "--profile="+p.cfg.Profile)
|
||||
|
||||
Reference in New Issue
Block a user