guides

How to Set Up a Virtual Camera for Face Swap

Virtual webcam setup for live face swap on Mac and Windows. Route LiveSwap through OBS Virtual Camera into Zoom, OBS, Meet, and Teams.

Part of our guides hub.

Virtual camera setup flowStep-by-step diagram: LiveSwap ON AIR, OBS crop, Start VCam, Select cam.Virtual camera setup flow1LiveSwap ON AIRSwap running2OBS cropBrowser source3Start VCamOBS control4Select camTarget appBefore 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
Virtual camera setup flow
Virtual camera setup flowStep-by-step diagram: LiveSwap ON AIR, OBS crop, Start VCam, Select cam.

A virtual camera is a software webcam your operating system lists alongside physical cameras. Zoom, Google Meet, Microsoft Teams, Discord, and OBS all let you pick a camera device, when you select a virtual one, they receive whatever video that driver publishes. For live face swap, that video is your LiveSwap persona output, routed from the browser through OBS.

This guide explains the concept, walks through setup step by step, compares Mac and Windows behavior, and troubleshoots the most common detection failures. Part of our setup guide hub. For app-specific policy and quality notes, see the virtual camera platform hub.

What is a virtual camera?

Your laptop's built-in camera is a hardware device. A virtual camera is software that registers a similar device name, "OBS Virtual Camera," "ManyCam Virtual Webcam," etc., so applications treat processed video as if it came from a lens pointed at you.

Live face swap adds a processing step:

  1. Physical webcam captures your real face
  2. LiveSwap browser tab sends frames to cloud inference
  3. AI swap replaces your face with a locked persona
  4. OBS browser source displays the swapped output inside OBS
  5. OBS Virtual Camera publishes that scene as a webcam device
  6. Zoom / Meet / Teams selects OBS Virtual Camera and shows your persona

Without step 5, meeting apps never see the swap, they only access your hardware webcam directly. That is the single most common setup mistake.

LiveSwap targets sub-500ms end-to-end latency through this chain. Virtual camera overhead is minimal compared to network round-trip time.

Step-by-step virtual camera setup

Start LiveSwap in your browser

  1. Sign in and open /app/streaming.
  2. Select a persona from the avatar sidebar.
  3. Click Go live and grant webcam permission.
  4. Wait for ON AIR, the swapped face fills the main stage.
  5. Keep this tab open and visible; OBS will capture it.

Upload and prep are free. Credits meter only after swap output is live.

Enable virtual camera output (OBS method)

LiveSwap's in-app Connect to OBS button (visible when streaming) opens a four-step guide. Here is the expanded version:

Install OBS Studio from obsproject.com if needed. Version 26.0 or newer includes virtual camera support without third-party plugins.

Add a Browser source:

  1. Open OBS Studio
  2. In the Sources panel, click +
  3. Choose Browser
  4. Name it "LiveSwap" → OK
  5. Paste your LiveSwap streaming page URL (the /app/streaming address while logged in)
  6. Set Width and Height:
    • Basic plan: 854 × 480
    • Creator: 1280 × 720
    • Pro/Studio: 1920 × 1080
  7. Check Refresh browser when scene becomes active
  8. Click OK

Crop to the swapped output:

The streaming page shows UI chrome around the video. Crop to just the swap:

  1. Select the Browser source in OBS
  2. Hold Alt on Windows or Option on Mac
  3. Drag the red crop handles inward until only the swapped face fills the source box

Start Virtual Camera:

  1. In the Controls dock (bottom-right), click Start Virtual Camera
  2. The button changes to Stop Virtual Camera when active
  3. Optional: click the gear icon next to it to choose output mode (Program is default, shows your current scene)

OBS now publishes the cropped LiveSwap feed as OBS Virtual Camera.

Select it in your target app

ApplicationCamera setting path
ZoomSettings → Video → Camera → OBS Virtual Camera
Google MeetMeeting → Settings (gear) → Video → Camera → OBS Virtual Camera
Microsoft TeamsSettings → Devices → Camera → OBS Virtual Camera
DiscordUser Settings → Voice & Video → Camera → OBS Virtual Camera
SlackPreferences → Audio & Video → Camera → OBS Virtual Camera
SkypeSettings → Audio & Video → Camera → OBS Virtual Camera
WebexSettings → Video → Camera → OBS Virtual Camera

Test before joining: every app above includes a preview pane. Confirm your persona appears before entering a live meeting.

For OBS-as-encoder streaming to Twitch or YouTube, the Browser source lives in your scene directly, virtual camera is optional unless another app needs the feed. See face swap in OBS.

Virtual camera on Mac vs Windows

Windows

OBS Virtual Camera uses a DirectShow filter installed with OBS. Supported on Windows 10 and 11 with OBS 26.0+.

Permissions:

  • Settings → Privacy & security → Camera
  • Enable Camera access and Let desktop apps access your camera
  • Ensure Zoom, Teams, and OBS are allowed

Tips:

  • If OBS Virtual Camera disappears after an OBS update, reinstall OBS to re-register the DirectShow filter
  • Multiple apps can often bind the same virtual camera simultaneously on Windows
  • Windows Camera app can verify OBS Virtual Camera independently of Zoom

Performance: close Xbox Game Bar background capture if you see frame drops. Wired Ethernet beats Wi-Fi for upload stability.

macOS

OBS Virtual Camera requires OBS 26.1.1 or newer on macOS 10.13+.

Permissions (critical):

  • System Settings → Privacy & Security → Camera → enable OBS and your browser
  • System Settings → Privacy & Security → Camera → enable Zoom, Teams, etc.
  • After OBS updates, macOS may prompt again, re-grant access

Tips:

  • Some apps only enumerate cameras at launch. Quit Zoom completely (Cmd+Q), start OBS Virtual Camera, then reopen Zoom
  • macOS sometimes allows only one app to consume a virtual camera at a time, close other apps using the camera
  • If Start Virtual Camera is missing, update OBS via Help → Check for Updates

Apple Silicon vs Intel: both work. Chrome and OBS are native on Apple Silicon; no Rosetta requirement for this workflow.

Linux

OBS Virtual Camera on Linux requires the v4l2loopback kernel module, a one-time setup. Consult the OBS Virtual Camera Guide for distribution-specific instructions. Browser support for LiveSwap is the same; virtual camera plumbing is the variable.

Troubleshooting virtual camera detection

Use this prose decision tree:

Is OBS Virtual Camera running? If not, click Start Virtual Camera. The button must show "Stop Virtual Camera."

Did you open the target app before starting virtual camera? Restart the app. Zoom, Meet, and Teams often cache the camera list at launch.

Does OBS Virtual Camera appear in OBS's own log? Help → Log Files → View Current Log, search for virtual camera errors.

macOS permissions? System Settings → Privacy & Security → Camera, confirm OBS and the meeting app are toggled on. Toggle off and on if stuck.

Windows privacy? Settings → Privacy → Camera, desktop app access must be enabled.

Is the Browser source showing a black rectangle? LiveSwap session may not be ON AIR. Confirm swap renders in the browser tab, then right-click the Browser source → Interact to verify, or Refresh.

Wrong URL in Browser source? Use the authenticated streaming page URL. Logging out breaks the feed.

Still missing? Reinstall OBS. On Windows, the DirectShow filter occasionally corrupts; on Mac, the virtual camera plugin re-registers on reinstall.

Swap visible in OBS preview but not in Zoom? Zoom may still point at your hardware webcam. Re-select OBS Virtual Camera in Settings → Video.

For black screens and face detection issues beyond virtual camera scope, see troubleshooting guide.

Virtual camera vs OBS browser source (direct)

Two valid OBS integration paths exist:

Browser source in scene (streaming): LiveSwap renders inside an OBS scene. You stream the composed scene to Twitch/YouTube. No virtual camera needed unless a second app also wants the feed.

Virtual camera passthrough (calls): OBS publishes the scene as a webcam. Zoom/Meet select OBS Virtual Camera. Required when the target app is not OBS itself.

You can combine both: stream on Twitch through OBS while simultaneously running Virtual Camera for a Discord call, test macOS single-consumer limits first.

Alternative virtual camera tools

OBS is free and integrated into LiveSwap's UI. Alternatives if OBS conflicts with your workflow:

ManyCam / XSplit VCam: commercial virtual webcams with window-capture modes. Point at the LiveSwap browser window.

NDI: advanced users can send OBS output via NDI to other machines or apps. Higher complexity, lower latency variance on LAN.

EpocCam / Camo: phone-as-webcam tools, opposite direction from what you need unless using phone for the source capture side.

LiveSwap does not endorse a specific paid tool; OBS Virtual Camera remains the documented default.

Audio note

OBS Virtual Camera transmits video only. In Zoom:

  • Video: OBS Virtual Camera
  • Microphone: your physical mic (AirPods, USB mic, etc.)

For streaming, add audio sources in OBS separately (mic, desktop audio, alerts). Enable Control audio via OBS on the Browser source only if LiveSwap publishes audio through the session, most call workflows keep audio on the meeting app's mic path.

Worked scenario: Meet on a work MacBook

You install OBS 30 on macOS Sonoma. System Settings grants Camera access to Chrome and OBS. You start LiveSwap, go ON AIR, add Browser source, crop, Start Virtual Camera. Google Meet in Chrome still shows your built-in FaceTime camera, you quit Chrome entirely, confirm OBS Virtual Camera in the macOS Camera menu (optional), relaunch Chrome, open Meet pre-call settings, select OBS Virtual Camera, preview shows persona. Join call. Total debug time: one app restart.

Quality alignment

Match virtual camera output resolution to your LiveSwap plan tier in the Browser source dimensions and in Settings → Stream quality inside LiveSwap. Upscaling a 480p swap to 1080p virtual camera output does not add detail, it softens the face.

PlanResolutionBrowser source size
Basic480p854 × 480
Creator720p1280 × 720
Pro / Studio1080p1920 × 1080

Frame rate options in LiveSwap settings depend on plan rank similarly.

Related guides

new user setup and enable your virtual camera in one session.

Enterprise and firewall considerations

Corporate networks sometimes block WebRTC UDP or throttle non-standard ports. Symptoms: LiveSwap stuck on Warming up, swap never reaches ON AIR despite good home tests. Diagnostics:

  1. Test LiveSwap on phone hotspot bypassing corporate LAN
  2. If hotspot works, request IT allowlist for liveswap.io WebRTC or use personal network for live sessions
  3. VPN split-tunnel, route browser outside VPN while keeping other traffic inside

Virtual camera path is unaffected by corporate policy once LiveSwap ON AIR works, OBS and Zoom are local apps. The bottleneck is browser-to-cloud inference, not Zoom-to-Zoom traffic.

Multi-scene OBS workflows

Advanced OBS users run Studio Mode with Preview and Program scenes. Virtual Camera outputs Program by default (gear icon → Program). If viewers see you editing scenes live, switch output to Program explicitly or disable Studio Mode during calls where scene changes should be invisible.

Scene collections per use case:

  • ZoomCalls, single Browser source, cropped, Virtual Camera on
  • TwitchLive, Browser source overlay + Game Capture, stream output without Virtual Camera unless Discord parallel call

Duplicate Browser source URLs across scenes, each source instance loads LiveSwap independently (higher CPU). Prefer one scene referenced as nested source if OBS version supports efficient nesting.

Security and session URL hygiene

The Browser source URL authenticates via your logged-in session. Treat it like a password:

  • Do not share OBS scene collections containing your streaming URL publicly
  • Log out of LiveSwap on shared machines after sessions
  • If URL leaks, logout invalidates session; refresh Browser source after re-login

Virtual camera output is local to your machine, remote meeting participants never receive your LiveSwap URL, only encoded video frames.

Comparison with third-party virtual webcams

ToolCostLiveSwap integration
OBS Virtual CameraFreeBrowser source → Start Virtual Camera (recommended)
ManyCamPaid tiersWindow capture of LiveSwap tab
XSplit VCamPaidSimilar window or NDI capture
Snap CameraDiscontinuedNot recommended

OBS remains the documented path in LiveSwap's Connect to OBS dialog because it is free, cross-platform, and encodes no watermark on virtual camera output.

Verification routine (five minutes)

Run before every important live stream or call:

  1. LiveSwap ON AIR, swapped face visible in browser
  2. OBS preview, cropped Browser source correct
  3. Start Virtual Camera, button state confirmed
  4. Target app preview, OBS Virtual Camera selected, persona visible
  5. Clap once, audio and video sync acceptable

If step 5 fails, fix lag before step 4 retry. If step 4 fails, restart target app. If step 2 fails, Refresh browser source. Save this checklist in your streaming notes for repeatability.

Frequently asked questions

Start your first live face swap

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