OBS Studio is the most flexible way to put a live face swap on Twitch, YouTube Live, Kick, or any RTMP destination, and the same setup feeds Zoom and Discord when you enable OBS Virtual Camera. LiveSwap needs no OBS plugin: you add a Browser source pointing at your streaming session, crop to the swapped output, and optionally start Virtual Camera for non-OBS apps.
This tutorial covers prerequisites, step-by-step OBS configuration, audio routing, troubleshooting, and links to the full OBS platform guide. Part of our guides collection.
What you need before starting
OBS Studio 26.0 or newer, virtual camera is built in. Download from obsproject.com.
LiveSwap account with credits, streaming requires a paid plan. Creator ($29/mo) is the common entry for 720p streaming.
Active LiveSwap session, swapped output must be ON AIR at /app/streaming before OBS can capture it.
Stable upload, 10 Mbps minimum for 720p output, 15–25 Mbps for 1080p with typical x264/NVENC bitrates.
A persona uploaded, front-facing photo via the avatar sidebar. See photo quality guide.
Optional: second monitor to keep the LiveSwap browser tab visible while OBS runs on your primary display.
Step-by-step OBS face swap setup
1. Start LiveSwap and go ON AIR
- Open
/app/streamingin Chrome or Edge (best Browser source compatibility). - Select your persona in the left sidebar.
- Click Go live.
- Wait for ON AIR badge and swapped video on the main stage.
- Click Connect to OBS in the header for the condensed in-app checklist.
Keep this browser tab open. OBS Browser source renders the live page.
2. Add LiveSwap as a Browser source
- Open OBS Studio.
- In Sources, click +.
- Select Browser.
- Name:
LiveSwap→ OK. - In properties:
- URL: your full
/app/streamingpage URL (copy from the browser address bar while logged in) - Width: 1280 (or 854 for Basic, 1920 for Pro/Studio)
- Height: 720 (or 480 / 1080 matching width)
- Enable Refresh browser when scene becomes active
- Disable Shutdown source when not visible if you switch scenes during stream
- URL: your full
- Click OK.
The source may show the full LiveSwap UI initially, cropping comes next.
3. Configure resolution and position
Match OBS canvas to plan tier:
- Settings → Video → Base (Canvas) Resolution, e.g. 1280×720
- Output (Scaled) Resolution, same or lower if bandwidth-constrained
- FPS, 30 is standard; 60 requires Creator+ for LiveSwap frame rate settings
Crop to swapped output only:
- Select the LiveSwap Browser source in the preview
- Hold Alt (Windows) or Option (macOS)
- Drag crop handles to exclude sidebar, control bar, and PIP unless you want them visible
- Position the cropped face where your face cam normally sits, corner overlay or centered
Scale cleanly: avoid stretching. Hold Shift while resizing to maintain aspect ratio if repositioning after crop.
4. Route audio separately if needed
LiveSwap sessions can publish microphone audio through the browser, but most streamers use OBS audio paths:
- Sources → + → Audio Input Capture → select your USB mic or headset
- Mix audio in the Audio Mixer dock
- If using Browser source audio: check Control audio via OBS in Browser source properties and add the source to the mixer
OBS Virtual Camera does not carry audio to Zoom, Zoom uses its own mic selection. Streaming through OBS carries audio via your stream encoder normally.
5. Enable OBS Virtual Camera (for Zoom, Meet, Discord)
If your destination app is not OBS itself:
- Confirm the OBS preview shows your swapped face correctly
- Click Start Virtual Camera in Controls
- In Zoom: Settings → Video → Camera → OBS Virtual Camera
See virtual camera tutorial for Mac/Windows permissions.
6. Stream or record
To Twitch / YouTube:
- Settings → Stream → connect account or paste stream key
- Settings → Output → set bitrate (4500–6000 Kbps for 720p60 typical on Twitch)
- Click Start Streaming
To record locally:
Click Start Recording instead. Virtual Camera can run simultaneously.
Using face swap across OBS scenes
Camera-only scene: one Browser source, full frame or corner, for "just chatting" segments.
Gameplay overlay: Game Capture full screen, LiveSwap Browser source scaled to corner (common 320×180 or 480×270 crop after initial full crop).
Starting soon / BRB: duplicate scene without LiveSwap to save credits, stop the LiveSwap session when BRB, restart when back. Credits meter only while ON AIR.
Switching personas: change selection in LiveSwap sidebar during live session, OBS Browser source updates automatically after brief warm-up. Avoid switching during critical moments.
OBS troubleshooting
Browser source is black
- LiveSwap not ON AIR, click Go live and wait
- Session expired, refresh browser tab, re-login if needed
- Right-click source → Refresh
- Right-click → Interact, verify page loaded inside OBS
Swap is blurry
- Browser source dimensions too low, increase width/height to match plan tier
- OBS output upscaling, align canvas, browser source, and LiveSwap quality settings
- Bitrate too low, raise in Settings → Output
Virtual camera not in other apps
- Start Virtual Camera before opening Zoom
- macOS: grant Camera permission to OBS and Zoom
- Restart target app
High CPU usage
- Browser source at 1080p60 is expensive, try 720p30
- Use hardware encoding (NVENC, Apple VT) in Settings → Output → Encoder
Crop reset after scene switch
- Lock source transform: right-click source → Transform → Edit Transform → note position
- Or use nested scenes: create a "Face Cam" scene with cropped LiveSwap, add that scene as a source elsewhere
For general swap failures, see common swap problems. For latency, latency help.
Related: full OBS platform guide
The Face Swap for OBS Studio platform article covers Twitch/YouTube policy notes, encoder keyframe intervals, anonymous streaming use cases, and comparison with Streamlabs.
Cross-links:
- Twitch face swap, stream key and community guidelines
- YouTube Live face swap, bitrate and 1080p on Pro plans
- faceless live streaming, persona consistency
- gaming anonymity article, face cam overlay layouts
Worked scenario: first Twitch stream
You run OBS 30 on Windows, Creator plan, 720p. LiveSwap ON AIR with persona "HexCaster." Browser source 1280×720, cropped to face, positioned bottom-left over Game Capture. Mic via Audio Input Capture. Stream key set. You test recording for two minutes, swap sync looks good. Start Streaming to Twitch. Chat sees HexCaster reacting in real time. You stop after 40 minutes, roughly 40 credits used. OBS log shows no dropped frames.
Common OBS + LiveSwap mistakes
Wrong URL, using marketing homepage instead of /app/streaming authenticated page.
Forgetting to crop, audience sees your avatar library and credit counters.
1080p browser source on Basic plan, wastes GPU decoding; swap output is capped at 480p.
Not refreshing after login, Browser source cached logged-out state.
NVENC and x264 encoder settings with face swap
LiveSwap browser source does not consume NVENC slots for inference, only OBS encoding uses GPU. Recommended starting points for Twitch 720p60:
NVIDIA NVENC (Settings → Output → Streaming):
- Rate control: CBR
- Bitrate: 4500–6000 Kbps
- Keyframe interval: 2
- Preset: P5 or Quality (OBS 30+) / Max Quality (older OBS)
- Look-ahead and psycho visual tuning: enable if CPU headroom allows
x264 (CPU encoding):
- Preset: veryfast or faster, avoid slow presets that starve game FPS
- Tune: zerolatency for interactive streams
Face swap browser source at 1080p60 can spike browser GPU process usage, if game FPS drops, lower browser source to 720p30 even on Pro plan.
Streamlabs Desktop alternative path
Streamlabs users can skip manual Browser source setup in some workflows:
- LiveSwap virtual camera ON
- Streamlabs → Settings → Video → Camera → LiveSwap
- Add game source as usual
Browser source in OBS still offers finer crop control for PiP layouts. See face swap for Streamlabs.
Multi-monitor and dual-PC setups
Single PC (common): Game + OBS + LiveSwap browser on one machine. Ensure 16GB+ RAM for AAA titles plus browser source.
Dual PC: Gaming PC captures face cam from streaming PC via NDI or capture card, overkill for most creators but eliminates browser source load on gaming rig.
Laptop + desktop: Run LiveSwap on laptop browser; OBS Virtual Camera on laptop; NDI send to desktop OBS, niche but works for weak gaming laptops.
Worked scenario: podcast-to-video upgrade
You recorded audio podcast; now you add video for YouTube. OBS scene: solid color background, LiveSwap browser source centered 1280×720, mic via Audio Input Capture. Record locally, no Twitch key needed. Export MP4 for YouTube upload. 45-minute record = 45 credits. Same OBS project later reused for live Twitch by adding Game Capture scene.
Worked scenario: charity stream marathon
12-hour charity stream with persona visible during on-camera segments only (~4 hours camera time):
- Create OBS scene collection:
Charity_Main(game + PiP),Charity_Cam(full face),Charity_BRB(no LiveSwap, static graphic) - Switch to BRB scene during breaks, Stop stream in LiveSwap during BRB
- 4 hours ON AIR = 240 minutes, map to Studio tier + monitor credit dashboard
Mistake to avoid: Leaving LiveSwap ON AIR while scene shows BRB graphic, credits still meter.
macOS vs Windows OBS differences
macOS: Grant Camera to OBS in System Settings → Privacy. Browser source uses embedded CEF, keep OBS updated. Apple Silicon handles browser source efficiently.
Windows: Disable hardware acceleration conflicts in Chrome if browser source stutters (chrome://settings → System). Run OBS as admin only if virtual camera fails, last resort.
Permissions guide: webcam routing setup.
Latency budget in OBS chain
End-to-end viewer experience includes:
- LiveSwap inference (~sub-500ms target)
- OBS browser source render (~1 frame)
- Encoder (~1–2 frames NVENC)
- Platform ingest (Twitch 3–8s viewer delay)
Optimize encoder before blaming swap. delay troubleshooting for network-side tuning.
Start streaming with LiveSwap, install OBS once, reuse this setup every stream.
Multi-platform streaming same night
Creators often stream Twitch via OBS while monitoring Discord on camera. Architecture:
- One OBS scene with LiveSwap Browser source cropped
- Start Streaming to Twitch RTMP
- Start Virtual Camera simultaneously
- Discord video call selects OBS Virtual Camera for community hangout
CPU/GPU load doubles on encode + browser decode, drop to 720p30 if frames drop. macOS may forbid Virtual Camera + heavy NVENC simultaneously on low-end MacBook Air, test before live dual output.
Twitch-specific OBS notes
Twitch accepts OBS directly, no separate Twitch camera picker. Your swapped face reaches Twitch viewers through OBS composited output, not Virtual Camera. Virtual Camera is only needed when a second non-OBS app also wants your face feed.
Recommended OBS → Twitch path:
- Settings → Stream → Twitch authorized connection
- Output → Encoder NVENC or x264, bitrate per Twitch guidelines for resolution
- LiveSwap Browser source in scene → Start Streaming
Full Twitch policy context: Twitch article.
YouTube Live RTMP from OBS
YouTube Live uses stream key or OAuth connection similar to Twitch. Additional considerations:
- Variable bitrate (VBR) vs CBR, CBR more predictable for face detail
- 1080p requires Pro/Studio LiveSwap tier AND sufficient upload
- Stream health dashboard shows ingest bitrate, compare to OBS stats
See YouTube Live face swap platform guide.
Browser source FPS and custom CSS
Default Browser source refreshes at OBS canvas FPS. If swap appears lower FPS than native browser tab:
- Confirm LiveSwap Stream quality frame rate setting
- Disable Use custom frame rate unless testing specific values
- Check OBS Stats dock for dropped frames in browser source
LiveSwap UI uses dark theme, OBS Browser source background is transparent by default; scene background color shows through margins if crop is loose.
Recording while streaming
OBS Start Recording parallel to Start Streaming saves local MKV/MP4 regardless of Twitch archive. Useful for:
- Clips where swap quality exceeded stream bitrate
- Post-stream review of realism before next persona upload
Recording does not consume additional LiveSwap credits, same ON AIR session meters once.
OBS update migration checklist
After OBS major version upgrade:
- Verify Start Virtual Camera still present
- Re-grant macOS Camera permission if prompted
- Open scene collection, Browser source URL may need Refresh
- Test Virtual Camera in Zoom preview before live stream
OBS 30+ improved Virtual Camera settings UI (gear icon), choose Program output unless using Studio Mode intentionally.
Streamlabs Desktop variant
Streamlabs inherits OBS core. Equivalent steps:
- Add Source → Browser Source
- Paste LiveSwap URL, match dimensions
- Go Live through Streamlabs, Virtual Camera optional for secondary apps
Differences: widget overhead, different default encoder presets. Compare Streamlabs platform article vs OBS platform article when choosing primary encoder.