Technical Topics
Video Sync
Video Wall Sync Architecture
5min
shared clock via ptp brightsign video walls have one player per screen and maintain synchronization using network connections all synchronized players share an accurate clock, the precision time protocol (ptp), that is configured through the player registry the ptp specification allows for multiple clocks to exist on the same network, and clients must use the same one which means they must use the same ptp domain to configure a player use the roregistrysection write() method to set the ptp domain key of the networking section to a value between 0 and 127 on rebooting the player the ptp synchronization service will start on the player, as shown in this example regsec = createobject("roregistrysection", "networking") regsec write("ptp domain", "15") regsec flush() rebootsystem() by default, the brightsign ptp will use the ethernet interface eth0 for its communication as this gives the best synchronization however, it is also possible to run ptp on wifi by setting the ptp ttl key of the networking section to the name of the wifi interface wlan0 this should be done at the same time as configuring the ptp domain , and then rebooting then all players will share the same current time which allows them to accurately synchronize delay & videowall startup the syncmanager is used to group the players to playback content each player creates a syncmanager which maintains the current playback state for its group the lead player sends out network packets which contain the group name, the current state name, and the time at which that state was entered the other players use that information to play the correct content at the correct time (note that this only applies to file playback from local storage) the synchonize call by the leader sets the data for these packets for a smooth startup, you should set ms delay to allow time for other units to prepare to play the new state (500ms is usually enough time but other factors may affect this if a delay of over one second is needed then there may be errors in your custom code) the players remain in sync once playback starts because they use the shared ptp clock as the reference clock if a follower player is powered down and powered back up, it can start playing at the correct position in the correct file because the shared playback state from the syncmanager provides all the information it needs to do that (the state and the time the state was entered) note that this information can be used within html to synchronize non video content too sync interference when a video file is being played back with sync manager, its position is controlled by the syncmanager using the ptp as its reference clock these special cases may interfere with sync avoid calling seek or pausing the video if content meets the requirements to loop seamlessly then the players are playing what is effectively a single infinite length file and so will remain in sync throughout if the files do not meet those requirements, then they must be resynchronized on each loop that is done by the leader handling the media end event and calling synchronize to get all the followers back in sync in this case, loop mode should not be set as it is all being handled by the lead player other multicast video wall sync docid\ ffxy3qptq51zha67ginwp enable ptp docid 4m wa5ytty5xssfpbagd0 {{brightauthor classic}} specific create a brightwall™ docid\ w wwbd1cnckyewrdxix69 autowall docid\ pmovu0xw5oubjalyddiod display a direct view led presentation docid\ pd4xp5vp2p 1djjy4ftu display a direct view led docid 3zy6z2wtpdjc2xzd bwr1