viewer: drop forced --hwdec=auto (froze video on frame 1)

The screen-share viewer ran mpv with --profile=low-latency (hwdec off by
default) and then forced --hwdec=auto back on. On some drivers the HW H.264
decoder stalls mid-stream: a viewer receiving a software-x264 share froze on
the first frame while audio kept playing (one MPEG-TS byte stream, so bytes
were still flowing — the video decoder gave up, the audio decoder didn't).
Screen-share H.264 at these bitrates decodes trivially in software, so leave
hwdec at the low-latency default.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-04 21:15:11 -04:00
parent c1b21b32c7
commit b6240c17c5
2 changed files with 4 additions and 2 deletions
+3 -1
View File
@@ -281,8 +281,10 @@ impl Player {
&[ &[
// No `--untimed`: it ignores audio timestamps and drifts a // No `--untimed`: it ignores audio timestamps and drifts a
// shared video out of sync. Pacing to audio keeps A/V synced. // shared video out of sync. Pacing to audio keeps A/V synced.
// Also leave hwdec at the `low-latency` default (software
// decode): forcing `--hwdec=auto` froze some viewers on
// frame 1 while audio kept playing.
"--profile=low-latency", "--profile=low-latency",
"--hwdec=auto",
"--audio-buffer=0.2", "--audio-buffer=0.2",
"--demuxer-max-bytes=2M", "--demuxer-max-bytes=2M",
"--demuxer-readahead-secs=0.5", "--demuxer-readahead-secs=0.5",
+1 -1
View File
@@ -102,7 +102,7 @@ fn print_viewer_banner(url: &str) {
eprintln!("│ Connected to host. Open the stream in your player:"); eprintln!("│ Connected to host. Open the stream in your player:");
eprintln!(""); eprintln!("");
eprintln!( eprintln!(
"│ mpv --profile=low-latency --hwdec=auto --audio-buffer=0.2 --demuxer-max-bytes=2M --demuxer-readahead-secs=0.5 {url}" "│ mpv --profile=low-latency --audio-buffer=0.2 --demuxer-max-bytes=2M --demuxer-readahead-secs=0.5 {url}"
); );
eprintln!("│ vlc --network-caching=200 --live-caching=200 {url}"); eprintln!("│ vlc --network-caching=200 --live-caching=200 {url}");
eprintln!(""); eprintln!("");