Neighbor Sender Setup
Host
- Sender:
192.168.1.84/DESKTOP-M9FTRLL - SSH:
ssh "madman's lullaby@192.168.1.84" - Install root:
C:\Meta\Mimir - Receiver OBS workstation:
192.168.1.66
Installed State
- FFmpeg installed through winget as
Gyan.FFmpeg 8.1.1. - FFmpeg alias path observed:
C:\Users\Madman's Lullaby\AppData\Local\Microsoft\WinGet\Links\ffmpeg.exe
- NVIDIA GPU observed:
NVIDIA GeForce RTX 4060 Ti- driver
591.86
- FFmpeg reports:
srtinput/output protocolh264_nvencencoder
- SoundVolumeView installed through winget as
NirSoft.SoundVolumeView.
Sender Config
Live local config on the sender:
C:\Meta\Mimir\config\localcast.jsonCurrent endpoints:
video: srt://192.168.1.66:5100?mode=caller&latency=120000
focusrite srt://192.168.1.66:5101?mode=caller&latency=120000
system srt://192.168.1.66:5102?mode=caller&latency=120000Current video capture size is 1920x1080 for the interactive desktop. Do not
trust the 1024x768 size reported from SSH; that is the remote session display,
and using it captures only a slice of the actual desktop.
OBS on the receiver should add listener-mode Media Sources:
video: srt://0.0.0.0:5100?mode=listener&latency=120000&timeout=5000000
focusrite srt://0.0.0.0:5101?mode=listener&latency=120000&timeout=5000000
system srt://0.0.0.0:5102?mode=listener&latency=120000&timeout=5000000As of 2026-05-18, the receiver OBS scene collection at
%APPDATA%\obs-studio\basic\scenes\Untitled.json has these sources added to
the current scene:
Neighbor PC - Video
Neighbor PC - Focusrite
Neighbor PC - System AudioThe pre-edit backup is next to the scene file with a
Untitled.json.localcast-backup-* suffix.
Desktop Launchers
Madman’s desktop has:
C:\Users\Madman's Lullaby\Desktop\Start Mimir Sender.cmd
C:\Users\Madman's Lullaby\Desktop\Stop Mimir Sender.cmdStart launcher:
- runs
scripts\start-localcast-desktop.ps1 - uses
config\localcast.json - passes the winget FFmpeg alias path explicitly
- calls
SoundVolumeView.exeby absolute path inside PowerShell because the winget alias is not reliably available in interactivecmd.exe - sets Windows default render to
Focusrite USB Audio\Device\Speakers\Render - sets Windows default capture to
Focusrite USB Audio\Device\Analogue 1 + 2\Capture - writes FFmpeg logs under
C:\Meta\Mimir\logs
Stop launcher:
- runs
scripts\stop-localcast-desktop.ps1 - stops FFmpeg processes whose command line contains
srt:// - restores Windows default render to
Focusrite USB Audio\Device\Speakers\Render - restores Windows default render to
Focusrite USB Audio\Device\Speakers\Render
Audio Reality
FFmpeg DirectShow discovery originally exposed one hardware audio input:
Analogue 1 + 2 (Focusrite USB Audio)The sender FFmpeg build does not expose a native wasapi input device, so it
cannot directly capture primary playback by itself. scripts\wasapi-loopback-capture.ps1
is the direct Core Audio loopback path. It works when launched in the logged-in
console session and audio is actually rendering; SSH-only launches can open the
endpoint but receive no render packets. The native/co-streamer capture path
therefore schedules the WASAPI loopback leg into the interactive session and
pulls the resulting raw float PCM back for alignment.
Do not rename the loopback in config unless the replacement appears in:
ffmpeg -hide_banner -f dshow -list_devices true -i dummyIf the loopback file is zero bytes, no app audio rendered during the capture window. Do not widen OBS to unsynchronized raw audio as a workaround.
SSH Testing Trap
Do not use an SSH-launched sender process as proof that video capture is broken.
When launched from SSH, gdigrab sees the remote Windows session desktop and
can fail with Failed to capture image (error 5). The sender video process
must be launched from Madman’s interactive desktop, normally through:
C:\Users\Madman's Lullaby\Desktop\Start Mimir Sender.cmdAttached SSH probes are still useful for audio devices and SRT reachability.
For example, an attached FFmpeg probe successfully transmitted audio to OBS on
ports 5101 and 5102.
