Audio desync on multitrack recording different after each recording on OBS

SlickNoob

New Member
Hey everyone! So I have some problems with my audio after recording on OBS. Every recording on OBS yields a different result. Here is the list of problems.

  • PROBLEM: Inconsistent audio/video desync. Multiple instances of me adding a delay onto an audio input to get it to line up with the video, and then next recording or when I restart OBS or when I restart my computer or whatever, the delay is a DIFFERENT amount and doesn't line up anymore. I haven't done a long enough recording yet to see if the desync drifts over time or not within the same recording. In my short recordings to test sync, I've noticed that the audio is often drifting between +2 to -2 frames off. So with streaming at 30FPS, that would be like 60ms-ish in the worst case observed scenario.
Audio Advanced Settings
AudioAdvancedSettings.png

Audio that has wavelength Delay
AudioWavelengthDelayed.png


  • PROBLEM: Audio desync between tracks. For example, MIC (BRIDGE CAST) input is being sent to Track 1 (Stream Mix) and Track 3 (Solo Microphone). So in theory, they should match up because they are the same source, just being recorded twice onto separate tracks. But for some reason, they are not lined up. One is earlier or later than the other, and the amount they're offset by appears to change, probably related to problem #1. Same issue for the other sources like GAME audio. GAME audio has it's own input in OBS so I can record just that on it's own track, but the GAME audio track does not line up with the STREAM MIX audio track, which has GAME audio coming through it as part of the Bridge Cast. Also, I would say that most of the time, neither track is perfectly lined up with the video either.

For clarification the bridge cast(external audio mixer by Roland) has all audio from stream (ie. TTS, Bit alerts, music, system audio, alerts INCLUDING Game audio) and then I also have game audio alone as a source in OBS that also comes from bridge cast, but you won't hear if an alert is played. This is done so that if an alert/ sound bit is played during an important moment in game is played, I can go back into the stream and isolate the moment without having to worry about the alert ruining the moment.

Things that have been tried that did NOT help:
  • Tried uncheck/recheck device timestamps again
  • Made sure all audio devices are set to the same sampling rate (48khz in OBS)
  • Checked the Bridge Cast sample rate itself
  • Uninstalled/Reinstalled Bridge Cast App and Drive with making sure that correct version were installed
  • Tried to make a whole new OBS scene collection/profile. Like start from scratch. If there's still audio desync on a new profile, to try to isolate the problem
  • Tried turning off and on again (LOL)
If there is anymore clarifications that you need, feel free to ask. Also I have included a stream log from last night as well from OBS if there's something in there that might be of help. Whatever you need to help me, I will send and thank you so much for any help.
 

Attachments

  • 2024-01-03_19-03-35.txt
    916.1 KB · Views: 11

AaronD

Active Member
OBS itself doesn't have variable latency, but individual source devices certainly can!

I had a set of 4 cheap HDMI -> USB capture devices on one rig, and they were always off by different amounts compared to each other, every time I turned the rig on. Replacing them with a 4-input PCIe card fixed both that and the picture quality.

Audio is separate in that rig, so of course variable latency in the picture caused the audio to de-sync with it. I'm still using the exact same audio gear, and it's rock-solid with the PCIe video inputs.
 

thedocdrey

New Member
I've been having the same issue with OBS for years. Trying to sync multiple audio sources that never match up. I have been experimenting lately with having all my audio sources come into the same audio interface, a Focusrite 18i8, where there are 4 XLR inputs that are being sent to 2 stereo outputs, and those two stereo outputs are ingested as mono Left and Right into obs.
The result : THEY ARE NEVER IN PERFECT SYNC. Either if I record with just one audio track either if I record in multitrack. And I also noticed like you that the desync ammount is different everytime I open OBS or start a new recording.

I believe it's a problem deep within the OBS audio engine and that needs some real clean-up. I will try the OBS Asio plugin soon and see if that helps with anything.
 

AaronD

Active Member
I've been having the same issue with OBS for years. Trying to sync multiple audio sources that never match up. I have been experimenting lately with having all my audio sources come into the same audio interface, a Focusrite 18i8, where there are 4 XLR inputs that are being sent to 2 stereo outputs, and those two stereo outputs are ingested as mono Left and Right into obs.
The result : THEY ARE NEVER IN PERFECT SYNC. Either if I record with just one audio track either if I record in multitrack. And I also noticed like you that the desync ammount is different everytime I open OBS or start a new recording.

I believe it's a problem deep within the OBS audio engine and that needs some real clean-up. I will try the OBS Asio plugin soon and see if that helps with anything.
If everything is mixed together *before* it gets to OBS, so that OBS only gets the mix, and they still have timing or level errors compared to each other, then it can't be OBS. It must be somewhere upstream of the mixer.

Once you mix things together, you can't unmix them. That's a universal, fundamental rule of physics. It's impossible to de-sync one part of a mix compared to another, or change its level compared to another, etc. You can only affect the entire mix the same way. So if parts of a mix are changing relative to each other, *at all*, then that change must be happening *before* they're mixed.

So if your mixer comes *before* OBS, not *in* OBS, then it can't be OBS that's the problem. See my post above, about independently variable sources. Or it could be the mixer itself that screws with the timing, but I rather doubt that. What *are* your sources, anyway?
 

thedocdrey

New Member
If everything is mixed together *before* it gets to OBS, so that OBS only gets the mix, and they still have timing or level errors compared to each other, then it can't be OBS. It must be somewhere upstream of the mixer.

Once you mix things together, you can't unmix them. That's a universal, fundamental rule of physics. It's impossible to de-sync one part of a mix compared to another, or change its level compared to another, etc. You can only affect the entire mix the same way. So if parts of a mix are changing relative to each other, *at all*, then that change must be happening *before* they're mixed.

So if your mixer comes *before* OBS, not *in* OBS, then it can't be OBS that's the problem. See my post above, about independently variable sources. Or it could be the mixer itself that screws with the timing, but I rather doubt that. What *are* your sources, anyway?
Sorry I wrote my previous post in a rush and lacked some detail. I'll try to explain a bit better now:

I have the Focusrite 18i8. On Input 2,3,4 I have 3 xlr microphones. Two wireless and 1 cabled. Alongside this I have another stereo input from a Toslink connection coming from a media source. All of the microphone inputs are sent to OBS via 2 stereo inputs (Input 1/2 and Input 3/4) these inputs are separated from Stereo Right and Left and then downmixed to mono inputs, which gives me 4 separate inputs in OBS. This is what I previously called multitrack monitor and mixing.

The problem is as follows: these inputs never appear to be coming in sync into OBS as long as they are invididually sent in. This shows when I do just a one audio track recording, or I record each audio track individually to the same video file.

I know these inputs are already in sync the moment they come into the Focusrite audio interface because I can direcly monitor them from a headphone out, and if I record in either Adobe Audition or Ableton these tracks are in sync.
Of course if I was to do all my mixing before and just send a master track to OBS this would not be an issue but the show I am producing does not allow for this, and I need individual control over each track inside OBS.

This is what leads me to belive that OBS has some kind of audio engine/audio mixing issue where it does not receive the inputs at the same time.
This is an issue I have been trying to resolve for years with different audio interfaces and microphones and OBS settings and plugins. I've never really tried the OBS Asio plugin to see what it can do, as I don't like to add individual audio inputs to each one of my scenes but I will give it a go and see what the results are.
 

AaronD

Active Member
I have the Focusrite 18i8. On Input 2,3,4 I have 3 xlr microphones. Two wireless and 1 cabled. Alongside this I have another stereo input from a Toslink connection coming from a media source. All of the microphone inputs are sent to OBS via 2 stereo inputs (Input 1/2 and Input 3/4) these inputs are separated from Stereo Right and Left and then downmixed to mono inputs, which gives me 4 separate inputs in OBS. This is what I previously called multitrack monitor and mixing.
I don't have one of those, but I'm looking at what I think is the product page, via a quick google search, and I don't see all of what you're talking about:
I've seen people confuse inputs and outputs - my best guess is that some people call *everything* an "input" because a plug goes "into" the socket - but the signal directions really do make a huge difference in understanding. Technical people use "input" or "output" as the signal direction into or out of each box, regardless of how the plug and socket work, and that's also how they're labelled on the box itself. Maybe that's part of the problem here???

Anyway, OBS also has trouble with multichannel audio devices in general. Not the problem that you describe, but in the sense of insisting/demanding that a bunch of individual mics are actually a 5.1 surround mix and treating it accordingly. (downmix to stereo, and THEN let you play with that mess) You can't separate them into individual channels and controls.

The closest you can come to that separation is to give OBS a stereo device (not just "only using the first two channels", but actually an only-2-channel *device*), use it in two different stereo sources, pan/balance each of those sources hard in opposite directions, and mono them. That works because the mono switch comes *after* the pan/balance, which is backwards from most professional stuff, so that the pan/balance kills the side that it's not set to, and the mono switch puts what's left back to center. If you're okay with a stereo stream that has both channels identical, then that works, but it's still a hack.

Or, I think the ASIO plugin allows you to choose individual channels of a device and not take the entire device. But only with the new source that that plugin gives you. ASIO only works on Windows because the problem that it primarily solves is also only on Windows (the built-in audio system is stoopid for anything beyond casual use, so ASIO just bypasses the whole thing)...but that also means that the side-effect solution for OBS's stoopidity only exists on Windows as well. Thus, as a Linux user primarily, I've never used the ASIO plugin either, and need to use the solution below.

...if I record in either Adobe Audition or Ableton these tracks are in sync.
Of course if I was to do all my mixing before and just send a master track to OBS this would not be an issue but the show I am producing does not allow for this, and I need individual control over each track inside OBS.
Why can't you do that? Why can't you run everything into a DAW (you have two already, listed here), which can handle any set of inputs and has lightyears better processing and control than OBS ever will, and send only the final result in its final format and channel count to OBS? If you need multiple different tracks, that's just multiple loopbacks from the DAW to OBS, each of which goes to its own track.

Do all of that with live inputs, not prerecorded. You're using the DAW's mixer and plugins live, as if it were a physical console. I do that all the time. My OBS is silent except:
  • Raw video soundtracks go out the Monitor, through a loopback, and into the DAW
  • The final mix comes from the DAW, through a loopback, and into the recording or stream
Those two audio paths don't mix. My DAW makes that connection, not OBS.

And I have some automation to handle the changes that actually need to be made live, so that I never have to leave OBS. (Your mileage may vary wildly here, depending on what you're doing. You might need an additional monitor and/or physical control surface for the DAW, or you might have *OBS* in the background and controlled with hotkeys and/or a physical surface. Whatever works.) My DAW understands OSC (Open Sound Control) messages, and the Advanced Scene Switcher plugin can send them, based on practically any trigger whatsoever inside of OBS, and a few outside...
(Adv. SS can also do almost anything in OBS, in response to those triggers, so that might possibly be your control while you're focused on the DAW, if you need to do that...)
 
Last edited:
Top