<!-- skill: OBS Streaming | version: 1.0.0 | description: Scenes, sources, audio and settings for clean live/recorded streams | category: Video & Design -->
## Instructions
- Scenes by purpose (Intro, Main, BRB, Outro), not by game — switching scenes should never require rebuilding sources. Nest common elements (webcam, alerts) so one edit propagates.
- Audio first, video second: viewers forgive 720p, never bad audio. Desktop audio + mic on separate tracks, mic with noise suppression + limiter, monitor with headphones to catch echo.
- Encoder: NVENC/AMF/QSV hardware if available (quality near x264 with a fraction of the CPU); x264 veryfast only when no hardware encoder exists. Record and stream with different encoders when possible.
- Bitrate: 1080p60 ≈ 8000–12000 Kbps, 1080p30 ≈ 6000–8000, 720p60 ≈ 4500–6000. CBR for streaming, CQP/CRF (~18–23) for local recordings.
- Test privately before going live: 60s unlisted test, check audio sync, dropped frames (0% target), and alert overlays.
- Hotkeys for scene switches, mute, and start/stop — never click through menus live.
- Network: wired ethernet for streaming, 10+ Mbps stable upload for 1080p (test with a 60s private stream, watch `Dropped Frames` — anything above 0.5% means lower bitrate or resolution).
- Recording split: record full-quality ISO (CQP 18–20, MKV) while streaming compressed — the VOD edit comes from the ISO, never the stream rip.
- Sources: Game Capture > Window Capture > Display Capture in that preference order; Display Capture leaks notifications and costs the most CPU.
- Filters per source: mic (Noise Suppression RNNoise → Noise Gate → Compressor → Limiter), webcam (Color Correction + Chroma Key if green screen), game (no filters — fix in-game).
- Profile discipline: one Profile per destination (Twitch/YouTube/LocalRec) + one Scene Collection per show; export both (`Scene Collection > Export`) to cloud backup after changes.
## Examples
- Talking head: camera + mic + screen share scene, noise gate so keyboard isn't broadcast.
- Gameplay: game capture (not display capture — saves CPU and hides desktop), dedicated audio track for VOD editing.
- Interview show: guest (browser source) + host cam + lower-thirds via Move Transition; record guest ISO on a separate track for re-edits.
## Workflows
1. Build scenes offline → 60s private test → check VOD → go live.
2. After stream: review first 5 minutes for audio/video issues, fix once, reuse forever.
3. Post-show: remux MKV→MP4 (`File > Remux`), chapter the VOD, clip highlights within 24h while context is fresh.
4. Monthly: test restores of profiles/collections, driver + OBS update on a non-show day, re-run the private test.
## Templates
- Pre-stream checklist: mic levels (-12dB peaks), 0% dropped frames in test, alerts working, title/category set, backup recording enabled.
- Scene skeleton: `Intro (5s stinger + audio duck) / Main (game+cams+alerts) / BRB (looping card + muted mic) / Outro (end screen + chat box)` — every show reuses the four.
- Audio track map: `Track 1 = stream mix / Track 2 = mic ISO / Track 3 = desktop ISO / Track 4 = guest ISO` — set in `Output > Recording > Audio Track Select`.
- Twitch settings block: `Encoder NVENC HEVC or x264 veryfast, 6000 Kbps CBR, keyframe 2s, preset P5, profile high`; YouTube: `9000–12000 Kbps, keyframe 2s`; Local rec: `CQP 20, MKV`.
```text
# Encoder ladder (pick by hardware, top wins)
# NVENC AV1/HEVC (RTX 40xx) > NVENC H.264 (GTX 10xx+) > AMF/QSV > x264 veryfast
# Stream: CBR 6000 Twitch / 9000-12000 YouTube, keyframe 2s, profile high
# Record ISO: CQP 18-20 MKV, tracks 1=mix 2=mic 3=desktop 4=guest
```
## Tools
- SARAH ffmpeg-media skill for post-processing recordings (clips, compression, thumbnails).
- OBS log analyzer (`obsproject.com/logs` — upload the log, fix every warning) after any problem stream.
- `ffmpeg -i rec.mkv -c copy rec.mp4` fast remux when OBS remux queue is busy.
## Advanced
- Advanced audio: sidechain ducking (Compressor on music keyed to mic) so intros dip under voice; VST support (`ReaPlugs` free) for EQ/de-esser beyond stock filters; monitoring device = headphones only, never speakers.
- Multi-track VOD editing: import the MKV into DaVinci (see davinci-resolve skill), split tracks (mic/guest/game), edit the conversation, loudness-pass before upload.
- Low-latency guest links: browser-source tools (VDO.Ninja) with isolated audio; backup: guest records locally (double-ender) while streaming.
- Alerts without bloat: one browser source for all alerts (StreamElements/Streamlabs), hardware acceleration on, 60fps only if animations stutter.
- Troubleshooting: echo on stream → monitoring on + speakers, or two desktop-audio sources capturing the same device (disable one); game capture black → run OBS as admin / match GPU (laptop iGPU vs dGPU mismatch), use Window Capture fallback; encoder overload → drop canvas to 936p/720p before touching bitrate, close browser tabs eating GPU; mic robotic → Noise Suppression quality too high for the CPU, drop to low or use GPU variant.
- Dropped frames vs skipped frames: dropped = network (lower bitrate, wired connection, different ingest server); skipped/encoding lag = CPU/GPU (lower preset, cap canvas fps); render lag = GPU saturated by the game (cap in-game fps, run OBS as admin for priority).
- Audio sync drift over long streams: sample-rate mismatch (set mic + desktop + OBS all to 48kHz in Windows sound settings AND OBS), Bluetooth mics drift worst — wired for shows over 30min.
- Browser-source alerts lagging: hardware acceleration toggle, `fps=30` custom CSS cap on animated overlays, close the source when hidden (Shutdown source when not visible).
- Multi-streaming (Twitch + YouTube): use the built-in Multiple Outputs or a restream service; separate track/mix per platform is overkill — one clean mix, two encoders.
## Templates
```text
# Show-day run sheet (copy per episode, times in local)
# T-30  boot, profiles loaded, test recording 60s, check ISO tracks
# T-15  guest link live, guest ISO rolling, mic checks (-12dB peaks)
# T-10  alerts test (follow/sub), title/category/tags set, chat mods briefed
# T-05  BRB scene live, stream Started (private/unlisted if testing), 0% drops?
# T-00  Intro stinger -> Main, unmute mics, monitor first 60s on a second device
# POST  stop stream, keep recording 10s, remux, rename rec_YYYYMMDD_show.mkv
```
## Documentation
- OBS Studio docs (obsproject.com/kb) quick-start and encoder guides.
- Rate-control guide: https://obsproject.com/kb/encoder-guides
- Log analyzer: https://obsproject.com/logs
