The use of TTML in live subtitle and caption flows

Nigel Megitt, British Broadcasting Corporation

The use of TTML in live subtitle and caption flows

Nigel Megitt, British Broadcasting Corporation

Wednesday 23rd March 2016, CSUN

A word about myself

Since I’m talking today mainly about the EBU-TT family of specifications, I guess I’ve got both a BBC and an EBU group chair hat on right now. Two hats for the price of one!


Who is trying to achieve what?


Status today, in the BBC

The near future for the BBC

A brief introduction to TTML

TTML is a markup language based on XML, using structural elements like in (X)HTML: - <head>, <body>, <div>, <p> and <span>, with styling semantics taken from XSL-FO/CSS and timing semantics taken from SMIL. Styling and layout are applicative: <style>s and <region>s are defined and identified, and content elements can reference them; inline style attributes are ok too.

TTML Document Instance structure - tt


TTML Document Instance structure - head

        <style xml:id="style1" tts:color="blue" ... />
        <region xml:id="region1" tts:origin="20% 80%" ... />
    <metadata> <!-- info about the document -->

TTML Document Instance structure - body

        <p begin="10:11:12.345" end="10:11:13"
           region="region1" style="style1">
            <span ttm:role="sound">Bang!

The EBU-TT profiles of TTML

Specification Part of the chain Status
EBU-TT Part 1 Prepared subs to Playout or Archive v1.1 Stable
EBU-TT Part 2 From legacy STL to EBU-TT Part 1 v0.9 draft
EBU-TT Part 3 Live subs to Encoder v0.9 draft
EBU-TT-D From encoder/packager to audience v1 Stable
EBU-TT-D in ISOBMFF For e.g. MPEG DASH packaging v1 Stable

They are TTML profiles in that they constrain the allowed feature set from the bigger TTML set, and add some extensions.

Or in picture form

Part 1: Archive and Exchange

Part 2: Conversion from STL

Part 3: Live and streaming from playout to encoder

Part 3: Example simplified workflow

Part 3: Leaving live to last?

Live streaming from subtitler or playout automation to encoders is the last piece in the puzzle needed to allow subtitles to be authored, stored, played back and delivered in the broadcast environment using TTML.

We left it to last because it is arguably the most complex part. Before we go ahead and move this to v1 we want to make sure it works and that despite our careful thought we haven’t missed anything. We also want to make it as easy as possible to build interoperable products that use it.

EBU-TT Live Interoperability Toolkit

So we’re initiating a new open source project to build an Interoperability Toolkit, a kind of reference implementation.

So far it has a github project with a release plan in the wiki section.

Contributions to the project are welcome from all sources. If you’re interested in contributing please talk to me!

EBU-TT-D: Distribution

EBU-TT-D can do everything that the other formats can do in presentation terms but is simplified as much as possible for easy implementation - for example:


W3C recently published a Proposed Recommendation of the TTML Profiles for Internet Media Subtitles and Captions 1.0 (IMSC1).

EBU-TT-D is effectively a subset of the IMSC 1 Text profile.

You’d really have to go out of your way to create an EBU-TT-D document that is not IMSC 1 Text Profile conformant.

EBU-TT-D adoption

Implementing this in BBC

We’re on the way to implementing this:


The EBU-TT family of TTML-based specifications is an open standard that supports the whole chain for broadcasters and others:

Thank you

Time for:

Nigel Megitt, Executive Product Manager Access Services, BBC

Slides created using shower/jekyller

Fork me on Github