Let's talk about
closed captions:
WebVTT and TTML
Gary Katsevman
Brightcove
Video.js
@gkatsev
http://slides.com/gkatsev/captions/
Why trust me?
TTML parser in the Brightcove Smart Player
WebVTT support in Video.js with vtt.js
First
Some definitions
TTML
Timed Text Markup Language
WebVTT
Web Video Text Tracks Format
WHATWG
Web Hypertext Application Technology Working Group
W3C
World Wide Web Consortium
What are closed captions?
Closed Captions
Captions that require user input to be view
Open Captions
Burned in
Baked in
Hard-coded
Closed Captions are a US centric term
Subtitles or
Subtitles for the Hard of Hearing
Some History
Open Captions
in 1971 on
the French Chef
FCC gets involved in 1976
1980: First closed captioned show
2002: DFXP shows up at the w3c
2010
Twentieth Century Communications and Video Accessibility Act
(CVAA)
2010:
WebVTT at the WHATWG as WebSRT
2011:
WebVTT chartered under w3c
2012:
FCC Safe Harbor for SMPTE-TT on the web
October 5th, 2017
Now
Demuxed 2017
TTML
Used to be called DFXP
Distribution Format eXchange Profile
XML based Authoring, Interchange, and Distribution format
Built on top of XML, SMIL, XSL-FO, CSS
It's like HTML and CSS
If you implemented it based on someone's high level description
WebVTT
Text format based on SubRip's .srt
<tt xml:lang="en"
xmlns="http://www.w3.org/ns/ttml"
xmlns:tts="http://www.w3.org/ns/ttml#styling">
<head>
<metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata">
<ttm:title>TTML Example</ttm:title>
<ttm:copyright>Thierry Michel 2015</ttm:copyright>
</metadata>
<styling xmlns:tts="http://www.w3.org/ns/ttml#styling">
<style xml:id="s1" tts:color="red" tts:textAlign="center" />
</styling>
</head>
<body>
<div>
<p xml:id="c1" begin="00:00:00" end="00:00:10">
Hello I am your first line.</p>
<p xml:id="c2" begin="00:00:02" end="00:00:10">
I am your second captions<br/>but with two lines.</p>
<p xml:id="c3" xml:lang="fr" begin="00:00:04" end="00:00:10">
Je suis le troisième sous-titre.</p>
<p xml:id="c4" begin="00:00:06" end="00:00:10" >
I am another caption with
<span tts:fontWeight="bold">Bold</span> and
<span tts:fontStyle="italic">Italic</span> styles.</p>
<p xml:id="c5" begin="00:00:08" end="00:00:10" style="s1">
I am the last caption displayed in red and centered.</p>
</div>
</body>
</tt>
WEBVTT
title: Web-VTT Example
copyright: Thierry Michel 2015
NOTE to style this document, CSS color font must be the specified in the HTML hosting page in the <style> element.
c1
00:00.000 --> 00:10.000
Hello I am your first line.
c2
00:02.000 --> 00:10.000
I am your second captions
but with two lines.
c3
00:04.000 --> 00:10.000
<lang fr>Je suis le troisième sous-titre.</lang>
c4
00:06.000 --> 00:10.000
I am another caption with <b>Bold</b> and <i>Italic</i> styles.
c5
00:08.000 --> 00:10.000 align:middle
<c.red>I am the last caption displayed in red and centered.</c>
--------------------------------------
In the HTML 5, CSS style:
<style> ::cue(.red) {color:red;} </style>
<tt xml:lang="en"
xmlns="http://www.w3.org/ns/ttml"
xmlns:tts="http://www.w3.org/ns/ttml#styling">
<head>
<metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata">
<ttm:title>TTML Example</ttm:title>
<ttm:copyright>Thierry Michel 2015</ttm:copyright>
</metadata>
<styling xmlns:tts="http://www.w3.org/ns/ttml#styling">
<style xml:id="s1" tts:color="red" tts:textAlign="center"/>
</styling>
</head>
<body>
<div>
<p xml:id="c1" begin="00:00:00" end="00:00:10">
Hello I am your first line.</p>
<p xml:id="c2" begin="00:00:02" end="00:00:10">
I am your second captions<br/>but with two lines.</p>
</div>
</body>
<body>
<div>
<p xml:id="c3" xml:lang="fr" begin="00:00:04" end="00:00:10">
Je suis le troisième sous-titre.</p>
<p xml:id="c4" begin="00:00:06" end="00:00:10" >
I am another caption with
<span tts:fontWeight="bold">Bold</span> and
<span tts:fontStyle="italic">Italic</span> styles.</p>
</div>
</body>
<head>
<styling xmlns:tts="http://www.w3.org/ns/ttml#styling">
<style xml:id="s1" tts:color="red" tts:textAlign="center" />
</styling>
</head>
<body>
<div>
<p xml:id="c5" begin="00:00:08" end="00:00:10" style="s1">
I am the last caption displayed in red and centered.</p>
</div>
</body>
WebVTT is much simpler
TTML isn't good
for the web
Let's talk about closed captions: WebVTT and TTML
By Gary Katsevman
Let's talk about closed captions: WebVTT and TTML
- 420