±«Óãtv

Standardising companion screen synchronisation - tools and testing

Published: 28 January 2015
  • Matt Hammond

    Matt Hammond

    Lead R&D Engineer

Our work on is about enabling experiences where a TV and companion device (such as a mobile phone or tablet) work together. We are releasing an open source library for prototyping and testing in this area.

Update: We have also now released our .

An important piece of the puzzle is to make it possible for a companion device to know what content is showing on the TV and to synchronise to the timeline of that content. This has all kinds of uses, such as providing for programmes, or deliver access services (such as audio description) that are personalised for each person in the room.

Protocols and standards

To that end, we have been collaborating with the rest of the industry to develop open standards for the network protocols needed for the TV and a companion device to communicate. The outcome from this was the that was published by DVB last summer.

This specification includes protocols that enable a TV to tell a companion what content it is presenting and what the timeline position is. These protocols allow the companion to respond quickly to changes occurring on the TV, such as a change of channel, pausing or fast-forwarding.

The protocols use modern, web-friendly technologies, with most communication happening as simple JSON messages carried via WebSocket connections. The TV acts as the WebSocket server. The only exception is the "Wall Clock" synchronisation protocol which uses UDP to minimise network latency.

How accurately a companion can synchronise to the TV of course depends on the network conditions. However, frame-accurate levels of accuracy may be possible. As we experiment for ourselves we hope to learn what performance can be achieved in a typical home network.

We are continuing to work with the wider industry, through groups such as , to bring this functionality to TVs. On this journey it is a big challenge to ensure interoperability and compliance with the specification. Tools to enable testing are therefore very important.

The pydvbcss open source library

To that end we are pleased to release the library on GitHub. This is an open source implementation of the DVB protocols and is written in .

This code does not address the challenges of actually controlling the playback of media. Instead, the library implements client and servers for the protocols and ways to represent timelines and clocks. We hope this will form a useful component in testing and diagnostic tools as well as helping with prototyping. Next, we want to add resources to assist with precise timing measurement and calibration.

We will be continuing to improve this code and use it ourselves. But by sharing it now we hope to help the industry as a whole achieve the goal of creating synchronised companion experiences. 

  • Broadcast and Connected Systems section

    Broadcast & Connected Systems primarily focuses on how ±«Óãtv content reaches our viewers through broadcast and Internet delivery. This involves the whole broadcast chain from playout, through coding and distribution to consumption on the end-user's device. Our work typically covers a period from now through to 3 years out from deployment.

Rebuild Page

The page will automatically reload. You may need to reload again if the build takes longer than expected.

Useful links

Theme toggler

Select a theme and theme mode and click "Load theme" to load in your theme combination.

Theme:
Theme Mode: