Note
This setup and troubleshooting process was performed on macOS Sonoma.
Newer macOS releases and newer OBS versions may behave differently, especially around:
- ScreenCaptureKit
- per-application audio capture
- Spaces/fullscreen handling
- system audio routing
Some of the workarounds described here may no longer be necessary on newer versions.
This document describes a working OBS setup on macOS for:
- recording a specific application window
- microphone narration
- low-volume background music
- live monitoring of the resulting mix
This setup intentionally avoids:
- system-wide desktop audio capture
- recursive audio routing
- duplicated mic capture
- BlackHole-based system capture workflows
- cross-Space window capture instability
- macOS Sonoma
- OBS Studio
- Blue Yeti microphone
- Dual-monitor setup
- Safari used for music playback (SomaFM)
- Window capture source for tutorial/demo content
Captures:
- the tutorial/demo application window only
NOT:
- the entire desktop
- OBS itself
Important:
- the captured window should NOT use native macOS fullscreen
- keep the window in the same active Space while recording
- moving the captured window between Spaces during capture caused instability
Source type:
Audio Input Capture
Purpose:
- narration
Monitoring:
- OFF
Reason:
- the Yeti already provides hardware monitoring
- OBS mic monitoring caused echo/slapback
Source type:
macOS Audio Capture- Method:
Application Audio Capture - Application:
Safari
Purpose:
- background music only
Monitoring:
Monitor and Output
Reason:
- isolates music from the rest of the system
- avoids recursive system audio capture
- avoids mic re-entry into desktop mix
Set to:
- Yeti headphones OR
- another physical headphone output
OBS monitoring was required to hear:
- Safari music
- post-fader levels
- compressor ducking
A compressor filter was added to the Safari music source using:
- sidechain/ducking from the microphone
Purpose:
- automatically lower music volume while speaking
OBS Settings → Audio:
- Desktop Audio: Disabled
- Mic/Aux: Disabled
- Everything else: Disabled
Reason:
- duplicate audio paths caused echo/reverb
- OBS silently accumulates overlapping capture paths
All audio sources should be explicitly added to scenes.
Using:
- desktop/system audio capture
- BlackHole system capture
- Multi-Output Device capture
caused:
- mic recursion
- echo/reverb
- unstable routing
- difficult-to-debug audio graphs
Per-application audio capture is substantially cleaner.
OBS Application Audio Capture failed to capture audio from Brave.
Symptoms:
- no OBS meter activity
- no captured music
Safari worked immediately.
Likely cause:
- Chromium/Brave interaction with macOS app audio capture APIs
Recommendation:
- use Safari (or another native macOS app) for background music playback
Capturing windows that:
- used native fullscreen
- moved between Spaces
- existed on different Spaces from OBS
caused:
- automatic Space switching
- focus stealing
- "teleporting" back to another desktop
- general Mission Control insanity
Recommendation:
- use large/maximized windows
- avoid native fullscreen during recording
- keep captured windows stable while recording
OBS + macOS ScreenCaptureKit behaved poorly when:
- OBS existed on one Space
- captured window existed on another Space
Symptoms:
- automatic Space switching
- inability to remain on another desktop
- forced focus restoration
Recommendation:
- keep OBS and captured window within the same active Space set
Tutorial Window
→ OBS Window Capture
Safari (SomaFM)
→ OBS Application Audio Capture
→ Compressor/Ducking
→ OBS Monitoring
→ Headphones
Yeti Mic
→ OBS Audio Input Capture
OBS
→ Recording
Exported:
- OBS Scene Collection JSON
Recommendation:
- duplicate working scene collections before experimentation
- export scene collections periodically
Once the graph works:
- stop changing topology
- avoid adding redundant capture paths
- avoid mixing system capture with app capture
- avoid moving captured windows between Spaces
This setup is currently stable and usable.