Feature Request - Exact synchronization on multiple computers
Hi,
would it be possible to implement an exact sychronization of the video playback on many computers. I am running Aerial on 10 Macs at the same time (Version 1.6.1) - none of them are synchronized despite of having checked the synchronization box. It would be very nice if all "synchronized" macs would fade into a video at the exact same spot together even if the start of the screensaver is at a different time.
Thanx
JM
Hi @chtugha
Hi,
would it be possible to implement an exact sychronization of the video playback on many computers. I am running Aerial on 10 Macs at the same time (Version 1.6.1)
Nice ! Some sort of company setup ? (sorry, I'm curious !)
- none of them are synchronized despite of having checked the synchronization box.
So, just to clarify what that setting does, is sync the randomness of the playlists if Aerial is started at the same time on multiple computers. For that to work, Aerial needs to be configured similarly on all machine (for example, having the same videos cached/enabled).
Assuming they are configured the same and you start them at the same time (it uses the current minute as the random seed), then they will play the same playlist. There's no networking to sync it all, it's just controlling the randomness (and I admit that's badly documented, sorry about that).
You can read more about how/why that feature was included here if you are curious : https://github.com/JohnCoates/Aerial/issues/783
It would be very nice if all "synchronized" macs would fade into a video at the exact same spot together even if the start of the screensaver is at a different time.
It certainly would ! I guess it depends on how exact you'd expect the sync to be.
If you want perfect millisecond sync, I guess that's pretty hard to achieve. Some computers are faster than others (if you check the thread above, the user in question had one iMac with a SSD and the other with a HDD, despite starting at the same time they had a slight delay on the slower iMac) and sometimes a background task may slow down playback (especially if not using hardware acceleration for playback).
Getting perfect accuracy would require networking and that's a huge can of worms that I'm not sure I'm willing to open, sorry.
Getting close is probably doable without networking. Part of the reason I went with the minute thing was to still keep some randomness in what video you get. I think I could get around that by defining, for a day say, just one random playlist of all the videos to be played and use current time at screensaver start to seek to the same point the other videos should be.
They would still diverge because of loading times though if the machines are too different.
That would of course break some other Aerial features (play only night videos at night for example) but maybe that's worth it (there's less and less day/night distinction in newer videos released by Apple with Space and Sea). I need to think about it but that would require rewriting some pretty important bits of Aerial so it's not an easy task.
Hi, thanks for the fast reply.
Nice ! Some sort of company setup ? (sorry, I'm curious !)
Yes - it's a company setup (Running on 10 Macs in my GP's office).
Assuming they are configured the same...
The Setup is very similar - although I have different video Resolutions on different workstations.
If you want perfect millisecond sync, I guess that's pretty hard to achieve. Some computers are faster than others
That should be solved - without the same framerate/speed on every Workstation (not milliseconds - but at least no visible delay) I think they'll get out of sync fast. But maybe that should be tried out first :)
one random playlist of all the videos to be played and use current time at screensaver start to seek to the same point the other videos should be. They would still diverge because of loading times though if the machines are too different.
Great idea. If not the loading time but the playback start is defined in the schedule I don't think loading time does matter. But I guess that is relying on a fixed framerate/videospeed again.
It would be great if that could be achieved. If I can be of some help please don't hesitate to contact me.
Yes - it's a company setup (Running on 10 Macs in my GP's office).
Cool ;)
The Setup is very similar - although I have different video Resolutions on different workstations.
That shouldn't matter. Different resolutions (if you mean 4K vs 1080p) have same duration (I'm pretty sure that's true, it used not to be in some edge cases as 1080p H264 was sometimes shorter/longer).
If you want perfect millisecond sync, I guess that's pretty hard to achieve. Some computers are faster than others
That should be solved - without the same framerate/speed on every Workstation (not milliseconds - but at least no visible delay) I think they'll get out of sync fast. But maybe that should be tried out first :)
So, unsure what you meant here. Framerate is the same on every videos, and playback speed is constant in an ideal world. Loading times (say HDD vs SSD), and eventual slowdown by background (which can cause skipped frames/or introduce lag/slowdowns), that definitely will make them out of sync if it's a factor. The goal is to sync start time but yet it may diverge slightly.
Using start time should "resync" at each new video start.
one random playlist of all the videos to be played and use current time at screensaver start to seek to the same point the other videos should be. They would still diverge because of loading times though if the machines are too different.
Great idea. If not the loading time but the playback start is defined in the schedule I don't think loading time does matter.
Right now loading time is part of the equation as we load then play when loaded. So that needs to change to implement that feature.
But I guess that is relying on a fixed framerate/videospeed again.
I'm not sure what you meant there.
It would be great if that could be achieved. If I can be of some help please don't hesitate to contact me.
I like the idea so I'll try to implement it, the biggest issue right now is that Aerial is really not meant to, in case of a sync, to seek video at a specified offset (say 2 minutes in) and play from there. That would break a lot of things (descriptions, etc). This is needed for the very first video in the playlist scheme I described, if you follow me (and I understand if you don't, what I'm saying is probably pretty cryptic, sorry !).
I'll ping you when I have a test version if you are willing to give it a shot but that might take a while.
Hi,
So, unsure what you meant here. Framerate is the same on every videos, and playback speed is constant in an ideal world. Loading times (say HDD vs SSD), and eventual slowdown by background (which can cause skipped frames/or introduce lag/slowdowns), that definitely will make them out of sync if it's a factor. The goal is to sync start time but yet it may diverge slightly.
Basically I meant, that every video should be indexed somehow. If you create some sort of daily playlist, it would be much easier to jump to the exact same spot if the videos are running along their index - this would also include jumping to the next index point if the video is being slowed down by a background process while running. If the indices were let's say every two seconds, the videos would load and then wait for the exact start at the upcoming index point. I usually don't see any slowdown or skipping during playback although having quite a lot going on at the background. So stutter shouldn't be much of an issue here.