Mimir/docs/obs-receiver-setup.md

53 lines
2 KiB
Markdown

# OBS Receiver Setup
Add each stream as a separate OBS Media Source.
For every source:
1. Add `Sources > + > Media Source`.
2. Uncheck `Local File`.
3. Set `Input` to the relevant SRT URL.
4. Set `Input Format` to `mpegts`.
5. Enable `Restart playback when source becomes active`.
## Default URLs
These match `config/localcast.example.json` when the receiver is listening locally:
```text
video: srt://0.0.0.0:5100?mode=listener&latency=120000&timeout=5000000
desktop: srt://0.0.0.0:5101?mode=listener&latency=120000&timeout=5000000
voice: srt://0.0.0.0:5102?mode=listener&latency=120000&timeout=5000000
```
If using a passphrase, append:
```text
&passphrase=YOUR_SECRET&pbkeylen=16
```
OBS should be open before the sender starts if OBS is the SRT listener. If a source gets wedged, deactivate and reactivate the Media Source before changing ports; port churn is a symptom, not a configuration strategy.
## Synchronization
The video SRT source is a timed media artifact in the Aquarium path, not just scenery in OBS. Keep the listener URL and latency aligned with `stream_spout.py`:
```powershell
.\.venv\Scripts\python.exe .\scripts\stream_spout.py `
--remote-video-url "srt://0.0.0.0:5100?mode=listener&latency=120000&timeout=5000000" `
--remote-video-latency-ms 250
```
The live sync heartbeat is `calibration/runs/av-sync-status.json`. `remote-video-latency-ms` is presentation delay, not merely the SRT URL's `latency` parameter. Check `remote_video.delta_ns` before trusting the composite. If that number grows, fix the configured media delay or the ingest path instead of eyeballing it in OBS like a doomed little stage magician.
## Source Layout
Recommended OBS scene:
```text
Husband PC - Video Media Source, monitor off
Husband PC - Desktop Media Source, audio only, monitor as needed
Husband PC - Voice Media Source, audio only, monitor as needed
```
Mute the video source if it carries no audio. Keep audio filters on the separate audio sources.