Resyncing videos

Post your questions here and we'll all try to help.
Zoltán
Team Resolume
Posts: 7108
Joined: Thu Jan 09, 2014 13:08
Location: Székesfehérvár, Hungary

Re: Resyncing videos

Post by Zoltán »

so now I have tried to replicate this issue with a blank composition, and have left my mbp playing the same clip in 3 layers column launched for a while (about 2,5 hours)
I paused now all the clip via the layer master pause
layer 1 playhead is at 00.13
layer 2 playhead is at 01.05
layer 3 playhead is at 01.07
the clip is a 30 fps 00:15.733 length DXV3 file, no output is activated.

edit: seems that layer 1 is behind.
Software developer, Sound Engineer,
Control Your show with ”Enter” - multiple Resolume servers at once - SMPTE/MTC column launch
try for free: http://programs.palffyzoltan.hu

Ladin
Hasn't felt like this about software in a long time
Posts: 52
Joined: Tue Apr 14, 2015 12:07
Location: Prague

Re: Resyncing videos

Post by Ladin »

Hi Oaktown,

I didn´t want to be blunt, or something like that.. I´m just pointing on some trouble..

Well, about the system..

Xeon E5-1650v3
64 GB RAM
GTX 1070
SM961 512GB for system and 850pro for storing data..
All input cards are out of the rig to avoid problems about PCI-E bus (to have max bandwith)..
So I don´t believe, that there is problem with bottlenecking of some component..

But, you can test it by yourselve..

Set the composition to 2x1280 by 720..
Set layer 1 position to 640 and layer 2 to -640 to have both clips toghether side by side..
Open the footage shop. Choose the Hyperfields - it´s nice abstract clip with the lines..
Slow it down to 0.5, to be more visible.. Duplicate it, put one of them to layer one and secod one to layer 2.
Rotate one of them 180 degrees by Y axis - it will match the lines..
Press the coloumn..

In advanced output you can set it to be both on the same monitor..

Watch it for a while, or have a coffee and then check it if the lines are matching..

In my case not..

Sometimes is faster layer 1, sometimes layer 2.. No matter, which one is rotated.. After many cycles it will be completely out of sync and messy..

Shure, you can play one video, in one layer, in output make two slices and on one of them just apply mirroring. But, this is just a an example..

Zoltán
Team Resolume
Posts: 7108
Joined: Thu Jan 09, 2014 13:08
Location: Székesfehérvár, Hungary

Re: Resyncing videos

Post by Zoltán »

try setting the timeline of the clips to BPM mode to see if that changes anything.
for me with the same video file, it seems to keep the playheads in sync.
Software developer, Sound Engineer,
Control Your show with ”Enter” - multiple Resolume servers at once - SMPTE/MTC column launch
try for free: http://programs.palffyzoltan.hu

Ladin
Hasn't felt like this about software in a long time
Posts: 52
Joined: Tue Apr 14, 2015 12:07
Location: Prague

Re: Resyncing videos

Post by Ladin »

Yeah,

sometimes working, sometimes not..

The problem is, that in one case the clips starts in same moment.. But sometimes not.. So, they are resynced from beginning.. :-/
Last edited by Ladin on Wed Dec 14, 2016 19:35, edited 1 time in total.

Joris
Doesn't Know Jack about VJ'ing or Software Development and Mostly Just Gets Coffee for Everyone
Posts: 5185
Joined: Fri May 22, 2009 11:38

Re: Resyncing videos

Post by Joris »

Resolume is first and foremost VJ software. Our biggest hurdle to cross, is not that we have to play a single file with a single framerate at a single speed, we have to mix and match many different video files, with many different framerates, at many different speeds.

Imagine you are playing a single 4 minute, 30 fps video. Everything is fine, and Resolume is rendering nicely at 60fps. Halfway through, you add a whole bunch of videos and effects, bringing the total fps down to 15. A normal player would now curl up an die. For Resolume, this sort of thing happens all the time.

So Resolume tries to make sure that your original video will still finish after 4 minutes, displaying the original video the best it possibly can at that framerate. We can't all of a sudden have a video play twice as long, just because your computer couldn't keep up with the rendering you're asking it to do.

This all means that when on timeline, each video is not tied to a master clock, but to its own internal timing. We make a calculation on what frame of the video should currently be shown, based on the original clip framerate, the current clip speed, the current rendering framerate, what frame it was previously showing and a bunch of other variables.

This means that invariably, tiny errors start creeping in. We're talking micro seconds here, but they add up. A single 4 minutes video will always play back in 4 minutes. It could be 4 minutes and 2 milli seconds, but you don't notice that difference. You do start noticing it when looping a clip several times. Because the timing of when the loop is triggered and the timing of when the loop restarts are all affected by the clip's own internal timing.

Btw, a really good way to see if two frames are matching or offset from each other, is to have a copy of the clip in a second layer and the blend mode on Difference I. If the clips are in sync, the output will be black. The more difference between the frames they are playing, the more white the output will be.

So the only way to ensure that all clips are on the same timing, is to use an external timing source to drive the playhead. BPM Sync is one way to do it, because then the playhead of the clip is synced to the phase of the current beat. Another could be SMPTE or OSC, which can set the playhead of a clip to a certain time directly.

I'm not saying exact framesynced playback of multiple videos will never be possible. I'm just explaining why it's currently problematic and the problems we have to resolve before we can make that happen.

Ladin
Hasn't felt like this about software in a long time
Posts: 52
Joined: Tue Apr 14, 2015 12:07
Location: Prague

Re: Resyncing videos

Post by Ladin »

Ok, thank you for answer.

It makes sense.

So the right way will be to render one huge movie and slice it on output.. No problema..

L.

Post Reply