Visual way to sync up video & audio ?

GME

New Member
Hey I was wondering if anyone made a plugin or tool or other device (that works for OBS, or at least can give me the numbers)
What I'm thinking is: Let's say you have multiple cameras of different kinds/sources, ditto with audio sources. They all have different delay/lag. Now we need an easy visual way to see the actual delay of each on the preview, match them all up with typing in the miliseconds, and bingo you're all set..

Has this already been made?

And yes, I know you can do test videos, drag them to timeline and check, that's not the point of this post.
 
The biggest problem with any type of auto (or self-aware) latency setup is that not all devices report the correct timestamps in their drivers, which means if you rely on those numbers you're screwed. That said, I do agree that having some type of latency info on the source properties window (even if it's incorrect) would be useful for the devices that do report their latency.

Also keep in mind that latency can change from moment to moment, esp. if the system gets overloaded or you're using USB devices, and in some cases it'll start off at a certain amount, and then slowly increase over time OR increase in sudden jumps depending on what else is happening on the system, so those numbers can change not only each time you start up OBS, but even while running/using OBS.
 
The biggest problem with any type of auto (or self-aware) latency setup is that not all devices report the correct timestamps in their drivers, which means if you rely on those numbers you're screwed. That said, I do agree that having some type of latency info on the source properties window (even if it's incorrect) would be useful for the devices that do report their latency.

Also keep in mind that latency can change from moment to moment, esp. if the system gets overloaded or you're using USB devices, and in some cases it'll start off at a certain amount, and then slowly increase over time OR increase in sudden jumps depending on what else is happening on the system, so those numbers can change not only each time you start up OBS, but even while running/using OBS.
I'm not looking for any type of auto or self-aware latency setup, hence why I stated to type in the ms manually.

What I'm looking for is visual cue for audio and video sources so one can easily align via visual numbering and or other simple types of displaying such information on a single screen. That way one can visually see what's going on, and thus adjust accordingly, even if or when anything changes, it will be visible, and can thus be manually adjusted on the fly.

EDIT: if it still doesn't make sense, think of a clapper for movies... Something similar, so that one does not have to do clap test recordings..
 
So you want a clapper. But you'd have to manually sync that up on a timeline/after the fact (like film people do), which you stated you're trying to avoid. So that means either:

1. OBS has to do it for you, hence my comment about auto or self-aware latency systems.
-OR-
2. You have to do it manually, but OBS can't always tell you the latency of a device/source (so you can do the math and manually put in the numbers) because the timestamps on some (a lot?) of drivers/devices are messed up and can change over time/depending on what's going on with the system at that moment. If OBS can't tell you, then you're back to recording and syncing on a timeline.

Think about it. If you have a clapper and it makes the sound, but the audio driver misreports the latency to the OS, no application running above the driver level can do anything about it, or get it right relying on the info from that device.

If OBS generates the signal for the 'sync' then nothing else will sync up with it because OBS' latency is (nearly) 0ms, which no device out there has, and since OBS doesn't necessarily know the latency of the other sources...

If OBS holds the signal for each device (i.e. buffers) and regenerates the timestamps, you might be able to run a code sequence to force everything to align, but given how much trouble went into just getting what is currently working (with all the bad timestamps floating around out there), I can only imagine how much code and testing that would take.

So I won't say it's impossible...just it would most likely be a TON of work and it would introduce additional issues into the capture (and possibly rendering) pipeline of OBS. I can say that there are professional systems out there that can do this, but they tend to cost 5+ figures and work only with in a relatively narrow range of conditions.
 
So you want a clapper. But you'd have to manually sync that up on a timeline/after the fact (like film people do), which you stated you're trying to avoid. So that means either:

1. OBS has to do it for you, hence my comment about auto or self-aware latency systems.
-OR-
2. You have to do it manually, but OBS can't always tell you the latency of a device/source (so you can do the math and manually put in the numbers) because the timestamps on some (a lot?) of drivers/devices are messed up and can change over time/depending on what's going on with the system at that moment. If OBS can't tell you, then you're back to recording and syncing on a timeline.

Think about it. If you have a clapper and it makes the sound, but the audio driver misreports the latency to the OS, no application running above the driver level can do anything about it, or get it right relying on the info from that device.

If OBS generates the signal for the 'sync' then nothing else will sync up with it because OBS' latency is (nearly) 0ms, which no device out there has, and since OBS doesn't necessarily know the latency of the other sources...

If OBS holds the signal for each device (i.e. buffers) and regenerates the timestamps, you might be able to run a code sequence to force everything to align, but given how much trouble went into just getting what is currently working (with all the bad timestamps floating around out there), I can only imagine how much code and testing that would take.

So I won't say it's impossible...just it would most likely be a TON of work and it would introduce additional issues into the capture (and possibly rendering) pipeline of OBS. I can say that there are professional systems out there that can do this, but they tend to cost 5+ figures and work only with in a relatively narrow range of conditions.
No you just keep misunderstanding.
 
You mean something like this?
https://www.youtube.com/watch?v=c1QgZZ15zDY&list=PLRe8DcOhgslpphnm4eWWHKk94YmAZGIro

Have the camera and the microphone point at a laptop playing such a video.
Yes apart from not wanting to do part 4 rather I'm looking to do this directly within OBS, LIVE, manually..with simple visual cues so it's easy to quickly match/sync up the different sources...

Delaying video, due to different cameras with different lag, as well as matching those up to the audio would be the simplest way. Or vice versa.. Again I'm not looking to record and download to a timeline, but do it via the live feed in/from the OBS preview.

BTW. there's no true 30fps option to download, though that's the standard option in OBS...

EDIT: Think I found something https://obsproject.com/forum/threads/audio-video-sync-test-ressource.138646/
 
Last edited:
To nail it to the point: I'm afraid, not.

There are no "simple visual cues" like you wished. That should have been something like this... https://www.youtube.com/watch?v=E59ZfHj2GiY ...to show up in the preview for all cameras, and you would need such hints for your audio sources, too.

Hence to have such visual cues it would need to origin from the sources. As said already there is no stable information. Not at source level (coming with the video content) nor at driver level (coming out of band with timestamps). So...

In practical terms there is no method available for live situations than "reading lipsync" by your own eyes and ears, and adjusting the delays according...
 
  • Like
Reactions: GME
Back
Top