4
votes

I'm using WebRTC in a sort of non-conventional way.

I have multiple streams generated by several 'broadcasting' peers being sent to a collection of several 'receiving' peer.

I intend to use an SFU media server (maybe Jitsi or Kurento)

It is very critical that these streams are presented at the receiving peers in a synchronized fashion.

What are the methods I can use for synchronization? Usually this isn't an issue with WebRTC because there is not usually a consistent clock between peers, but in my case there is a common clock for all the stream sources.

The only ways I can imagine doing it are:

  1. Not worry about it and hope that WebRTC's low latency will cause everything to be in sync.

  2. Somehow encoding timestamp metadata in the WebRTC stream frames, and somehow synchronizing display with javascript in the browser.

  3. Using a tool like GStreamer that can perform video synchronization, mix the streams into a single stream and forward that to the media server (and thus to the receiving clients). I don't have a good idea of how I would actually perform the synchronization though.

Any thoughts and advice would be appreciated.

1

1 Answers

2
votes

The only OTT system capable of synchronisation of low latency streams available (when writing this text), is the SYE system made by Net Insight. They are able to synchronise any device down to single digit millisecond in low latency mode.

They do not provide any open source that I know of but you can check it out by downloading a app that uses it. Primetime

The game starts 20:00 CET every day, download it on several phones/tablets to verify the sync part.

However there are other systems that can synchronise playback that I found.

HibbTV

HibbTV seams to focus on more IPTV replacement solutions as I interpret the solution. They do not seam to target the wild west of internet. I might be wrong please correct me then.

W3C MULTI-DEVICE TIMING COMMUNITY GROUP

Spoke to the researchers a while back. They can synchronise playback but they target collaborative viewing. The low latency part is not part of the scope as I understand it.

Then when it comes to WebRTC, LHLS, MPEG-DASH CMAF and all other solutions they have no sense of time so it will not be possible to render the same video frame on different devices using various access technologies such as 4G, WiFi or cable or even if the devices uses the same technology because the rendering is buffer controlled not time controlled.

/Anders