Since version 26 of OBS we have that wonderful built-in Virtual Camera option. This lets us use the OBS video output with external apps that do the streaming for us, like Zoom, Skype and Discord to name a few. Video processing takes a small amount of time, and as a result our audio arrives too early when used directly. To make it look professional we need to add an audio delay
There’s currently no built-in way to choose the OBS Audio in our external application, even though OBS itself has the ability to delay the audio and make it appear in sync. What we need is a workaround until this functionality will be built-in to OBS (I’m sure it will at some point). Here’s an option that works, although I always forget how to route it properly (it’s for Windows only). It involves:
- VB Cable – a virtual routable audio source/destination
- Audio Router – an optional utility that lets us route sources to destinations
Both utilities are free. Grab them, close OBS and install them, then restart your system before proceeding with the following steps.
Steps in principle
To keep it simple for the descriptions, I’m assuming we have a microphone as input, and headphones as output. Our audio is hence routed like this:
- microphone goes into OBS directly as input source
- delay the audio on the microphone (Advanced Audio Properties)
- pick the VB Cable as OBS Monitoring Device
- choose VB Cable output as the external app’s audio input source
That’s it! The value for the delay will depend on your exact setup. 120ms is a good starting point, but have seen values of 200ms being necessary. It depends on how much video processing there is to do, which then affects how much the video is delayed, for which we need to then delay the audio accordingly.