Zero latency sync

Achieve perfect synchronization with imperceptible latency

Scroll for more

DVgroup faced a recurring issue while developing a variety of innovative projects: how do you achieve perfect synchronization between several devices on a network?
This is a complex task because of several factors; in particular, most electronic devices that are connected to a network get the current time by asking a specialized server through the Network Time Protocol. This is a reliable method, but it is not very accurate because of latency and potential discrepancy between the numerous time servers around the world.

In order to achieve synchronization with imperceptible latency, we developed several methods depending on the constraints of the projects:

For instance, to synchronize a live stream of different point of views with devices connected to the Internet, we decided to test the response time between each device and the streaming server via TCP requests holding two timestamps (one for the server, one for the device), and then compensate the latency with a little delay during the live stream.

Another stricter example is to synchronize a group of screens in which each plays a portion of a bigger video. In that case, no latency can be tolerated in order to get a seamless result, so we had to scale down the main sources for latency, which are network communication and video loading time. Network latency was overcome by setting up a local network which broadcasts continuously a UDP message indicating the timecode the videos are expected to be at. This causes the videos to jump repeatedly to a specific timecode, so we had to come up with a way to suppress loading time so the videos wouldn’t freeze. We solved that by modifying playback speed, so all the screens would be perfectly and smoothly in sync.