feat(selfbot): broadcast desktop audio + smart subtitles in the browse scenario

Two broadcast-experience improvements:

- Audio: the Go-Live stream was video-only. Capture the desktop sound (the
  default PipeWire/Pulse sink monitor, @DEFAULT_MONITOR@) as a second ffmpeg
  input and mux AAC into the mpegts; the library re-encodes it to Opus for
  Discord. Controlled by STREAM_AUDIO / STREAM_AUDIO_SOURCE (default on). ffmpeg
  inherits XDG_RUNTIME_DIR to reach the pulse socket. Verified: the streamer now
  reports "Found audio stream" and the monitor carries Chrome audio (~-11 dB).
- Subtitles: in the browse scenario, default captions OFF, but auto-enable a
  Korean track when the video offers one (getOption captions tracklist ->
  setOption / unloadModule).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
javis-bot
2026-06-10 15:50:32 +09:00
parent c6a0ca4572
commit 208fbbc851
5 changed files with 44 additions and 0 deletions

View File

@@ -78,6 +78,11 @@ DISCORD_SELFBOT_TOKEN=
# Hardware (NVENC) encode for the stream. 1 = use the GPU (recommended for
# 1080p60), 0 = software x264. Requires an NVIDIA GPU + ffmpeg built with nvenc.
STREAM_HW=1
# Capture desktop audio into the broadcast so the stream has sound. 1 = on,
# 0 = mute. Pulls the PipeWire/Pulse monitor of the default sink; override the
# source with STREAM_AUDIO_SOURCE (e.g. a specific "<sink>.monitor").
STREAM_AUDIO=1
STREAM_AUDIO_SOURCE=@DEFAULT_MONITOR@
# --- novnc backend ---
# e.g. http://192.168.10.9:6080/vnc.html (websockify --web=/usr/share/novnc 6080 localhost:5901)