guides

How to Face Swap in OBS Studio

OBS face swap tutorial: browser source setup, crop swapped output, virtual camera for Zoom and Twitch. No plugin required.

Part of our guides hub.

OBS face swap setupStep-by-step diagram: Browser src, Crop scene, Virtual cam, Stream.OBS face swap setup1Browser srcLiveSwap URL2Crop sceneFace only3Virtual camOptional4StreamGo liveBefore you go liveTest in preview · Confirm virtual camera selected · Check wired network · Have credits availableTroubleshooting: face not detected → better photo · black screen → restart virtual camera · lag → lower tier
OBS face swap setup
OBS face swap setupStep-by-step diagram: Browser src, Crop scene, Virtual cam, Stream.

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

  1. Open /app/streaming in Chrome or Edge (best Browser source compatibility).
  2. Select your persona in the left sidebar.
  3. Click Go live.
  4. Wait for ON AIR badge and swapped video on the main stage.
  5. 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

  1. Open OBS Studio.
  2. In Sources, click +.
  3. Select Browser.
  4. Name: LiveSwapOK.
  5. In properties:
    • URL: your full /app/streaming page 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
  6. 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:

  1. Select the LiveSwap Browser source in the preview
  2. Hold Alt (Windows) or Option (macOS)
  3. Drag crop handles to exclude sidebar, control bar, and PIP unless you want them visible
  4. 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:

  1. Sources → +Audio Input Capture → select your USB mic or headset
  2. Mix audio in the Audio Mixer dock
  3. 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:

  1. Confirm the OBS preview shows your swapped face correctly
  2. Click Start Virtual Camera in Controls
  3. In Zoom: Settings → Video → Camera → OBS Virtual Camera

See virtual camera tutorial for Mac/Windows permissions.

6. Stream or record

To Twitch / YouTube:

  1. Settings → Stream → connect account or paste stream key
  2. Settings → Output → set bitrate (4500–6000 Kbps for 720p60 typical on Twitch)
  3. 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 → TransformEdit 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:

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:

  1. LiveSwap virtual camera ON
  2. Streamlabs → Settings → Video → Camera → LiveSwap
  3. 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:

  1. LiveSwap inference (~sub-500ms target)
  2. OBS browser source render (~1 frame)
  3. Encoder (~1–2 frames NVENC)
  4. 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:

  1. One OBS scene with LiveSwap Browser source cropped
  2. Start Streaming to Twitch RTMP
  3. Start Virtual Camera simultaneously
  4. 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:

  1. Verify Start Virtual Camera still present
  2. Re-grant macOS Camera permission if prompted
  3. Open scene collection, Browser source URL may need Refresh
  4. 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.

Frequently asked questions

Start your first live face swap

No install, no GPU. Upload a photo, pick a persona, and go live in minutes.