"HowTo Synchronize framebased players between multiple PCs" - what's the frame rate?

Looking at the tutorial mentioned above, it occurred to me that there doesn’t appear to be a way to set the frame.rate, and that I don’t know what it is anyway! I guess ts at the mainloop rate?

this is written in the help patch on the right side:

image

so the parameters relate to the update operation of the player, usually the application mainloop.

1 Like

Okay so let’s say have a server that sudden;y pauses. The clients should carry on at the rate of the Mainloop? Because at the moment the Mainloop has no baring on the client frame readers. Whether I set the Mainloop to 20fps or 60, the playback is something else, and even different on machines with the same ™ hardware.

Looked a little harder. It seems that one of the machines is possibly throttling at 60fps while the other is coping okay, so I tried setting them both to 30fps with a two frame increment. They’re far more in-sync now

you’re specifying the framerate as a multiple of the monitor refresh rate using the “Increment every Nth frame” pin.

hm… so the idea in the framebased case is that before worrying about sync you must make sure that each PC involved has a perfectly stable framerate that it can play the video at. this is an absolute prerequisite. if this is not the case, it doesn’t make sense to even try syncing them.

yes, this should be a given, because clients would only try to adapt to the servers time if they receive a stable signal from the server. if the server goes off, clients would simply keep their own pace, following their refresh rate (vsync).

oh, you must not use the MainLoop node in this scenario! You must be tight to the vsync, so make sure Presentation Interval is set to “Default” on exactly only one render window.

Even if the refresh rate of the Monitors isn’t 60Hz? Currently the Mainloop is set to 60 FPS by default.

Should the Mainloop in general be set to exactly the same value as the refresh rate or something higher to make sure the limiting factor really is the refresh rate (when using vsync). The latter was what I always did in beta/DX11 as per advice by vux. In gamma I tried both but the results weren’t really conclusive.

Echoing Bjoern’s point, a lot of your description centers around monitor refresh rate. Where would I set that? In my task the machines are headless, using the texture for pipetting

what i meant: don’t use the MainLoop node to control the fps. make sure the fps is dictated by the monitors refresh rate. so indeed, if your refresh rate is 75, make sure the MainLoop is set to something higher than that. also: we’ll be adding a kind of “Disable capping to Max FPS” input to the MainLoop node which you’d use in that case.

yes.

oh well, that is new information here. the video sync howtos were specifically made and tested with vsync. obviously, if you have none, then you can only use the MainLoop node. but also the pipetting is throwing in another instability factor in your case. so i’m afraid it is hard to tell what you should be expecting in terms of sync since you’re using this in untested terrain.

1 Like

Yeah fair enough man, living on the edge!! And thanks for being thorough

Which is it?

and from 2021.4.6 you can set Max FPS to 0, to disable capping fps to max FPS.

2 Likes

How about an hdmi dummy adapter?

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.