Ability to synchronize cameras?


New Member
I used OBS to successfully stream a few conferences. Thanks for this great software!
Until recently, I was using two Logitech C920 webcams - they use lot of CPU in 1080p (i belive that's because they can do internal h264, but OBS is not using it).
Now I'm using also HDV cameras - Canon HX-A1 and Sony Z1. They are connected via firewire*, attached using Video source plugin (as it's m2ts (mpeg2) stream so can't be used directly at least in old OBS codebase). But this cameras has about 1 second of lag on firewire output, and that's how it works by design on most hdv cameras.

I'm looking for feature to somehow sync all of my video and audio sources - as right now C920 has no lag at all, while HDV ones had one-second lag. One of possibilities I see is to adjust buffer for each input individually - this way, with preview from all inputs it would be quite easy to sync them by hand.

*since firewire can work with cables up to 5 meters only I also used sollution where camera was connected to notebook, vlc was streaming it via LAN using RTP/TS (without transcoding) to my PC with OBS, and that also worked perfectly. Quick note - bandwidth of such signal is almost 40mbit/s, throught wi-fi (n) it was dropping frames.


New Member
Meh, i looked into source code and realized that there's already available option to set buffer time. As I'm not (yet) familiar with DirectShow, can anyone point me if there's possible to alter buffer size while capturing?


New Member
Yes, that's the option I was referring to. But when I change it on working stream, capturing from device is stopped, buffer size adjusted and capturing started again. It will be pain to sync 3 cameras this way.

Of course there's possibility of displaying all three cameras on one scene, pointing them at some stopwatch, ten grabbing one frame, count differences, adjust buffers and it should work as expected, but this is not user friendly workaround :)

That's why I asked about possibility to adjust buffers without stopping capture from device - I know C++ a bit, but not DirectShow library - if somebody confirms it's possible I'm going to try implementing it.


The Helping Squad
It does not really stop, if you change the buffer, for example to two seconds, it will show a blackscreen for 2seconds (as it is buffering) and then start the video again.
Except for maybe showing a still image, I am not sure you could change this behavior. To buffer/delay it first has to save the image material before it can start showing something.