Setting Up a Speedrun Stream with a Facecam That Actually Stays in Sync

The first thing most people get wrong is assuming one recording pass will work perfectly. It won't. I've done this for over a decade across every platform, and the gap between "it looks fine on the first try" and "the final upload is watchable" is usually a matter of audio drift, not something dramatic. Here's how I actually do it. I run OBS Studio 30.x with the NVENC encoder for the game capture and a separate hardware source for the camera. The facecam goes through a dedicated USB 3.0 webcam—anything on USB 2.0 introduces enough latency variance to mess with frame alignment over a long run. I set the game capture to its native resolution minus 10% downscaling, because the rendering pipeline in this engine is already pushing 60fps on most hardware and an extra encode step at full res adds unnecessary encoding delay. The audio routing is where things fall apart for most people. OBS captures game audio through the desktop audio channel, but if your mic is on the same capture card or USB controller as the game, the sample rate conversion will introduce subtle drift. I solve this by putting the facecam mic on a completely separate audio interface—or just using the camera's built-in mic with a fixed sample rate of 48kHz and no automatic gain control. AGC changes the effective latency in real time, and over a 20-minute speedrun that can add up to 200-300ms of uncommanded audio lag.

For the actual routing: game audio goes directly to the output file. Camera audio goes through a simple compressor, nothing fancy—just 3:1 ratio, -12dB threshold, fast attack, medium release. That's it. Over-processing creates that tinny, "internet streamer" sound that makes viewers tune out. The sync test takes about 90 seconds. Record a 30-second clip with a sharp sound—clicking a pen, snapping your fingers—and play it back. If the audio and video don't line up within 10ms, adjust the OBS Advanced panel's audio sync offset in 5ms increments until they do. I've seen people miss this by 50ms because they only check once at the start, not realizing that thermal throttling on the GPU can shift the encoding timing mid-run. The drift compounds. A head-to-camera layout option: position the facecam in the top right at 25-30% screen width, with a semi-transparent black background. Not white. White bleeds into the bright golden tones in Black Myth Wukong's lighting and makes the overlay distracting. Black at 70% opacity is easier on the eyes during long viewing sessions.

The Encoding Settings That Actually Matter

I use NVENC with a CRF of 18-20 for recording, not a bitrate target. Constant bitrate (CBR) is for live streaming. For a recorded speedrun, you want the best quality file possible, and CRF gives you variable bitrate that adapts to scene complexity. Black Myth Wukong has huge variation—dark cave sections versus bright outdoor arenas—so a fixed bitrate will either waste data on quiet scenes or compress the hell out of intense boss fights. The profile is High, level 5.1. Two passes isn't necessary for 1080p60 unless you're archiving for distribution on platforms that penalize low bitrate. Most people upload straight to YouTube or Twitch VODs, which re-encode anyway. Recording at CRF 18-20 means the platform's compression will have a high-quality source to work from. One counter-intuitive thing nobody mentions: disable hardware-accelerated GPU scheduling in Windows settings if your GPU is below an RTX 3060. The overhead from the Windows desktop compositor adding to the already-heavy Unreal Engine 5 pipeline causes micro-stutters that are invisible during the run but show up clearly in post-production. I found this out the hard way on a 2080 Ti—three hours of troubleshooting a stutter that didn't exist in the actual gameplay, only in the final file.

Get the Full Details

Black Velvet Free Stock Photo - Public Domain Pictures
Black Velvet Free Stock Photo - Public Domain Pictures

What to Do During the Run Itself

Keep your OBS scene set and don't change it mid-run. Switching scenes or sources triggers a buffer flush that can create a 200-500ms gap. If you need to pause for a restroom break or adjust the camera, pause the recording in OBS—don't stop and restart. Stopping and starting reinitializes the encoder, and the first few seconds after restart are often dropped frames. For the speedrun itself, I don't run any overlays or timers during the actual recording. I add a timer in post-production using Aegisub or even just Premiere's built-in text tools. Overlay timers during the run add another layer of encoding that can compete with the game frame for resources, and the visual distraction makes it harder to focus on execution. I read my split times from a secondary monitor off-camera or memorize them from practice runs.

Post-Production: The Quick Part That People Overcomplicate

Import the game recording and the camera recording into your editor. Line them up on the timeline using the pen click or finger snap from the sync test. If they aligned within 10ms during testing, they should align within 15ms in the final edit—thermal drift during the run itself adds maybe 5ms of variance. The entire editing process for a standard speedrun with facecam takes about 15-25 minutes from import to export. Most of that time is spent on the color correction pass—Black Myth Wukong's color grading is heavy, and the facecam footage will look flat by comparison. I match the camera's white point to the game's average using a histogram, not by eye. Eyes lie. Histograms don't. Export at the same CRF or with a bitrate of 20-25Mbps for H.264, or use H.265 if the target platform supports it. H.265 at the same quality uses roughly 40% less file size, which matters if you're uploading to a platform with generous storage limits like YouTube but still want manageable transfer times.

Limitations and When This Approach Fails

Facecam recordings don't capture your reactions to mistakes well if you're wearing headphones. I learned this the hard way—the audio from my in-ear monitors leaked into the microphone at low volumes, creating a faint metallic hum that I couldn't isolate in post because it was woven into the same track as my voice. The fix was using closed-back headphones and positioning the mic slightly below chin level, angled toward the mouth, which reduces earpiece bleed significantly. Another failure mode: if your PC crashes or OBS throws an encoding error mid-run, you lose the entire take. There's no safety net unless you're recording to two drives simultaneously, and that doubles your storage requirements and complicates the sync process. I keep a SSD dedicated to recording runs so I'm not writing to the same drive as the game, but even that isn't foolproof during extended sessions on older hardware. If you're doing this for competitive speedrun verification where exact timing matters down to the frame, a facecam adds very little value beyond what a split-timing software already provides. The community standard for verified runs is still input recording and frame-accurate timing from the game itself. The facecam is for content and presentation, not for validating the run. Don't confuse the two purposes.

Black Pattern Background Free Stock Photo - Public Domain Pictures
Black Pattern Background Free Stock Photo - Public Domain Pictures

The whole process—recording, syncing, editing, exporting—takes roughly 45 minutes to an hour for a full run from start to finish. That's not slow. It's just the reality of doing it correctly without automated tools that most free software doesn't offer.