Accessibility/Video Text Format Comparison: Difference between revisions
(slight intro text change) |
|||
(9 intermediate revisions by the same user not shown) | |||
Line 33: | Line 33: | ||
<pre> | <pre> | ||
; not sure how to specify that this is in en-US | ; not sure how to specify that this is in en-US | ||
; not sure how to specify that these are subtitles | ; not sure how to specify that these are subtitles semantically | ||
; not sure how to specify that this is plain text only | |||
1 | 1 | ||
Line 58: | Line 59: | ||
<pre> | <pre> | ||
<!DOCTYPE wmml> | <!DOCTYPE wmml> | ||
<wmml lang="en-US" kind="subtitles"> | <wmml lang="en-US" kind="subtitles" profile="plainText" version="1.0"> | ||
<cuelist> | <cuelist> | ||
<cue start="00:00:15.00" end="00:00:17.95">At the left we can see...</cue> | <cue start="00:00:15.00" end="00:00:17.95">At the left we can see...</cue> | ||
Line 74: | Line 75: | ||
* You cannot specify the default language in WebSRT. | * You cannot specify the default language in WebSRT. | ||
* You cannot specify the type of time-aligned text in WebSRT. | * You cannot specify the type of time-aligned text in WebSRT. | ||
* You cannot specify the type of cue text in WebSRT. | |||
=== Formatted subtitles === | |||
=== Formatted subtitles | |||
TTML: | TTML: | ||
Line 111: | Line 112: | ||
</p> | </p> | ||
<p begin="00:00:20.11" end="00:00:21.96" tts:color="red"> | <p begin="00:00:20.11" end="00:00:21.96" tts:color="red"> | ||
..die Enthaupter. | |||
..die | |||
</p> | </p> | ||
<p begin="00:00:21.99" end="00:00:24.36"> | <p begin="00:00:21.99" end="00:00:24.36"> | ||
Line 129: | Line 127: | ||
<pre> | <pre> | ||
; not sure how to specify that this is in de-DE | ; not sure how to specify that this is in de-DE | ||
; not sure how to specify that these are subtitles | ; not sure how to specify that these are subtitles semantically | ||
; not sure how to | ; not sure how to specify that basic markup is used in cues | ||
1 | 1 | ||
00:00:15.00 --> 00:00:17.95 | 00:00:15.00 --> 00:00:17.95 A:start | ||
Auf der <i>linken</i> Seite sehen wir... | Auf der <i>linken</i> Seite sehen wir... | ||
2 | 2 | ||
00:00:18.16 --> 00:00:20.08 | 00:00:18.16 --> 00:00:20.08 A:end | ||
Auf der <b>rechten</b> Seite sehen wir die.... | Auf der <b>rechten</b> Seite sehen wir die.... | ||
3 | 3 | ||
00:00:20.11 --> 00:00:21.96 | 00:00:20.11 --> 00:00:21.96 | ||
< | <1>...die Enthaupter. | ||
; | ; Can't just mark a section as emphasised - gotta choose how to emphasise | ||
4 | 4 | ||
00:00:21.99 --> 00:00:24.36 | 00:00:21.99 --> 00:00:24.36 | ||
Alles ist sicher. | <2>Alles ist sicher. | ||
Vollkommen sicher. | Vollkommen <b>sicher</b>. | ||
</pre> | </pre> | ||
A CSS file would accompany this WebSRT file to provide for the colors: | |||
::cue { background: rgba(0,0,0,0.5); } | |||
::cue-part(1) { color: red; } | |||
::cue-part(2, b) { font-style: normal; text-decoration: underline; } | |||
WMML: | WMML: | ||
<pre> | <pre> | ||
<wmml lang="de-DE" kind="subtitles" version="1.1"> | |||
<wmml lang="de-DE" kind="subtitles"> | |||
<head> | <head> | ||
<style type="text/css"> | <style type="text/css"> | ||
Line 181: | Line 181: | ||
</cue> | </cue> | ||
<cue id="c3" start="00:00:20.11" end="00:00:21.96" style="color: red;"> | <cue id="c3" start="00:00:20.11" end="00:00:21.96" style="color: red;"> | ||
...die | ...die Enthaupter. | ||
</cue> | </cue> | ||
<cue id="c4" start="00:00:21.99" end="00:00:24.36"> | <cue id="c4" start="00:00:21.99" end="00:00:24.36"> | ||
Alles ist <mark>sicher</mark>.<br/>Vollkommen sicher. | Alles ist <mark>sicher</mark>.<br/>Vollkommen sicher. | ||
</cue> | |||
</cuelist> | |||
</wmml> | |||
</pre> | |||
Analysis: | |||
* WebSRT does not provide for default language specification. | |||
* WebSRT does not provide a kind attribute to signify that these are subtitles | |||
* WebSRT does not provide the type of cue text in WebSRT. | |||
* TTML does not provide for special emphasis sections ("mark"-style). | |||
=== Subtitles with hyperlink === | |||
TTML: | |||
<pre> | |||
<tt xml:lang="de-DE" xmlns="http://www.w3.org/ns/ttml"> | |||
<head> | |||
<metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata"> | |||
<ttm:role>x-subtitles</ttm:role> | |||
</metadata> | |||
</head> | |||
<body> | |||
<div style="s1" > | |||
<p region="c1" begin="00:00:15.00" end="00:00:17.95"> | |||
Auf der linken Seite sehen wir... | |||
</p> | |||
<p region="c2" begin="00:00:18.16" end="00:00:20.08"> | |||
Auf der rechten Seite sehen wir die.... | |||
</p> | |||
<p begin="00:00:20.11" end="00:00:21.96" tts:color="red"> | |||
<!-- Have to use xlink to provide URL hyperlink in TTML --> | |||
..die <span xlink:href="http://members.chello.nl/j.kassenaar/elephantsdream/subtitles.html" | |||
xlink:actuate="onRequest" xlink:show="replace" | |||
xmlns:xlink="http://www.w3.org/1999/xlink">Enthaupter</span>. | |||
</p> | |||
<p begin="00:00:21.99" end="00:00:24.36"> | |||
Alles ist sicher.<br/>Vollkommen sicher.</p> | |||
</div> | |||
</body> | |||
</tt> | |||
</pre> | |||
WebSRT: | |||
<pre> | |||
; not sure how to specify that this is in de-DE | |||
; not sure how to specify that these are subtitles semantically | |||
; not sure how to specify that special markup (innerHTML) is used in cues | |||
1 | |||
00:00:15.00 --> 00:00:17.95 | |||
Auf der linken Seite sehen wir... | |||
2 | |||
00:00:18.16 --> 00:00:20.08 | |||
Auf der rechten Seite sehen wir die.... | |||
3 | |||
00:00:20.11 --> 00:00:21.96 | |||
...die <a href="href="http://members.chello.nl/j.kassenaar/elephantsdream/subtitles.html">Enthaupter</a>. | |||
4 | |||
00:00:21.99 --> 00:00:24.36 | |||
Alles ist sicher.<br/>Vollkommen sicher. | |||
</pre> | |||
WMML: | |||
<pre> | |||
<wmml lang="de-DE" kind="subtitles" version="1.1"> | |||
<cuelist> | |||
<cue id="c1" start="00:00:15.00" end="00:00:17.95"> | |||
Auf der linken Seite sehen wir... | |||
</cue> | |||
<cue id="c2" start="00:00:18.16" end="00:00:20.08"> | |||
Auf der rechten Seite sehen wir die.... | |||
</cue> | |||
<cue id="c3" start="00:00:20.11" end="00:00:21.96" style="color: red;"> | |||
...die <a href="http://members.chello.nl/j.kassenaar/elephantsdream/subtitles.html">Enthaupter</a>. | |||
</cue> | |||
<cue id="c4" start="00:00:21.99" end="00:00:24.36"> | |||
Alles ist sicher.<br/>Vollkommen sicher. | |||
</cue> | </cue> | ||
</cuelist> | </cuelist> | ||
Line 195: | Line 282: | ||
* TTML needs to use some XML namespace (e.g. xlink) to provide for hyperlinks. | * TTML needs to use some XML namespace (e.g. xlink) to provide for hyperlinks. | ||
* WebSRT does not provide for default language specification. | * WebSRT does not provide for default language specification. | ||
* WebSRT does not provide a | * WebSRT does not provide a kind attribute to signify that these are subtitles | ||
* WebSRT does not provide | * WebSRT does not provide the type of cue text in WebSRT. | ||
* WebSRT does not provide for URL hyperlinking in cues other than in "any" markup | |||
* WebSRT does not provide for URL hyperlinking in cues | |||
Line 265: | Line 350: | ||
<pre> | <pre> | ||
<wmml lang="zh" kind="subtitles" version="1.1"> | |||
<wmml lang="zh" kind="subtitles"> | |||
<head> | <head> | ||
<style> | |||
cue { | cue { | ||
writing-mode: tb-rl; | writing-mode: tb-rl; | ||
Line 273: | Line 358: | ||
text-align: right; | text-align: right; | ||
} | } | ||
</style> | |||
</head> | </head> | ||
<cuelist> | <cuelist> | ||
Line 287: | Line 373: | ||
* TTML has no margin attribute, just padding. | * TTML has no margin attribute, just padding. | ||
* I am unclear if WebSRT's specification of tbrl rendering and the margins is correct. | * I am unclear if WebSRT's specification of tbrl rendering and the margins is correct. | ||
* For WebSRT, you have to repeat | * For WebSRT, you have to repeat placement for every cue. | ||
== Captions== | == Captions== | ||
Line 345: | Line 430: | ||
<pre> | <pre> | ||
<wmml lang="en-US" kind="captions" version="1.1"> | |||
<wmml lang="en-US" kind="captions"> | |||
<cuelist> | <cuelist> | ||
<cue start="00:00:15.00" end="00:00:17.95" | <cue start="00:00:15.00" end="00:00:17.95" class="Proog">At the left we can see...</cue> | ||
<cue start="00:00:18.16" end="00:00:20.08" | <cue start="00:00:18.16" end="00:00:20.08" class="Proog">At the right we can see the...</cue> | ||
<cue start="00:00:20.11" end="00:00:21.96" | <cue start="00:00:20.11" end="00:00:21.96" class="Proog">...the head-snarlers<br/>[Whizzing noises]</cue> | ||
<cue start="00:00:21.99" end="00:00:24.36" | <cue start="00:00:21.99" end="00:00:24.36" class="Proog">Everything is safe.<br/>Perfectly safe.</cue> | ||
</cuelist> | </cuelist> | ||
</wmml> | </wmml> | ||
Line 358: | Line 442: | ||
Analysis: | Analysis: | ||
* In WebSRT it is unclear what character/speaker a voice marker (e.g. <1>, <2>) maps to | * In WebSRT it is unclear what character/speaker a voice marker (e.g. <1>, <2>) maps to. | ||
== Lyrics == | == Lyrics == | ||
Line 419: | Line 502: | ||
<pre> | <pre> | ||
<wmml lang="en-US" kind="lyrics" version="1.1"> | |||
<wmml lang="en-US" kind="lyrics"> | |||
<head> | <head> | ||
<title>Can't buy me Love</title> | <title>Can't buy me Love</title> | ||
Line 495: | Line 577: | ||
1 | 1 | ||
00:00:00.45 --> 00:00:05.60 | 00:00:00.45 --> 00:00:05.60 | ||
<b>Can't <00:00.75>buy <00:00.95>me<00:01.40>love, <00:02.60>love, <00:03.95>love, <00:05.30>love</b> | |||
2 | 2 | ||
00:00:05.90 --> 00:00:08.90 | 00:00:05.90 --> 00:00:08.90 | ||
<b>Can't <00:06.20>buy <00:06.40>me <00:06.70>love, <00:08.00>love</b> | |||
3 | 3 | ||
00:00:09.35 --> 00:00:11.55 | 00:00:09.35 --> 00:00:11.55 | ||
<b>I'll <00:09.50>buy <00:09.75>you <00:10.15>a <00:10.25>dia<00:10.50>mond <00:10.75>ring <00:11.10>my <00:11.40>friend</b> | |||
</pre> | </pre> | ||
A CSS file would accompany this WebSRT file to provide for the colors: | |||
::cue { color: yellow; font-weight: bold; } | |||
WMML: | WMML: | ||
<pre> | <pre> | ||
<wmml lang="en-US" kind="karaoke" version="1.1"> | |||
<wmml lang="en-US" kind="karaoke"> | |||
<head> | <head> | ||
<title>Can't buy me Love</title> | <title>Can't buy me Love</title> | ||
Line 542: | Line 626: | ||
Analysis: | Analysis: | ||
* | * In TTML, not sure if the style in the <span> elements is only activated at the begin time of the <span> element or if that requires different markup. | ||
Line 593: | Line 676: | ||
<pre> | <pre> | ||
<wmml lang="en-US" kind="chapters" version="1.1" profile="plainText"> | |||
<wmml lang="en-US" kind="chapters"> | |||
<cuelist> | <cuelist> | ||
<cue start="00:00:00.00" end="00:00:18.00">Introductory Titles</cue> | <cue start="00:00:00.00" end="00:00:18.00">Introductory Titles</cue> | ||
Line 627: | Line 709: | ||
xmlns:xlink="http://www.w3.org/1999/xlink"></span> | xmlns:xlink="http://www.w3.org/1999/xlink"></span> | ||
Introductory Titles | Introductory Titles | ||
</p> | |||
<p begin="00:00:18.01" end="00:01:10.00"> | <p begin="00:00:18.01" end="00:01:10.00"> | ||
<span xlink:href="plugs.png" | <span xlink:href="plugs.png" | ||
Line 651: | Line 733: | ||
; not sure how to specify that this is in en-US | ; not sure how to specify that this is in en-US | ||
; not sure how to specify that these are chapters | ; not sure how to specify that these are chapters | ||
; not sure how to specify that the cues are special markup (innerHTML) | |||
; not sure how to specify representative images for chapters | ; not sure how to specify representative images for chapters | ||
1 | 1 | ||
00:00:00.00 --> 00:00:18.00 | 00:00:00.00 --> 00:00:18.00 | ||
Introductory Titles | <img src="intro.png"/> Introductory Titles | ||
2 | 2 | ||
00:00:18.01 --> 00:01:10.00 | 00:00:18.01 --> 00:01:10.00 | ||
The Jack Plugs | <img src="plugs.png"/> The Jack Plugs | ||
3 | 3 | ||
00:01:10.01 --> 00:02:30.00 | 00:01:10.01 --> 00:02:30.00 | ||
Robotic Birds | <img src="birds.png"/> Robotic Birds | ||
</pre> | </pre> | ||
Line 683: | Line 766: | ||
Analysis: | Analysis: | ||
* In TTML we have to use xlink to specify representative images. | * In TTML we have to use xlink to specify representative images. | ||
== Texted audio descriptions == | == Texted audio descriptions == | ||
Line 712: | Line 794: | ||
; not sure how to specify that this is in en-US | ; not sure how to specify that this is in en-US | ||
; not sure how to specify that these are audio descriptions | ; not sure how to specify that these are audio descriptions | ||
; not sure how to specify that this is plain text only | |||
1 | 1 | ||
Line 731: | Line 814: | ||
<pre> | <pre> | ||
<wmml lang="en-US" kind="descriptions" profile="plainText" version="1.1"> | |||
<wmml lang="en-US" kind="descriptions"> | |||
<cuelist> | <cuelist> | ||
<cue start="00:00:00.00" end="00:00:05.00">The orange open movie project presents</cue> | <cue start="00:00:00.00" end="00:00:05.00">The orange open movie project presents</cue> | ||
Line 795: | Line 877: | ||
; not sure how to specify that this is in en-US | ; not sure how to specify that this is in en-US | ||
; not sure how to specify that these are timed slides | ; not sure how to specify that these are timed slides | ||
; not sure how to specify | ; not sure how to specify that the content is JSON | ||
1 | 1 | ||
00:00:00.00 --> 00:00:44.00 | 00:00:00.00 --> 00:00:44.00 | ||
"Really Achieving Your Childhood Dreams" by Randy Pausch, Carnegie Mellon University, | { | ||
slide: intro.png, | |||
title: "Really Achieving Your Childhood Dreams" by Randy Pausch, Carnegie Mellon University, Sept 18, 2007 | |||
} | |||
2 | 2 | ||
00:00:44.00 --> 00:01:18.00 | 00:00:44.00 --> 00:01:18.00 | ||
The elephant in the room... | { | ||
slide: elephant.png, | |||
title: The elephant in the room... | |||
} | |||
3 | 3 | ||
00:01:18.00 --> 00:02:05.00 | 00:01:18.00 --> 00:02:05.00 | ||
I'm not in denial... | { | ||
slide: denial.png, | |||
title: I'm not in denial... | |||
} | |||
</pre> | </pre> | ||
Line 826: | Line 916: | ||
</head> | </head> | ||
<cuelist> | <cuelist> | ||
<cue start="00:00:00.00" end="00:00:44.00"> | <cue start="00:00:00.00" end="00:00:44.00"> | ||
<cue start="00:00:44.00" end="00:01:18.00"> | { | ||
<cue start="00:01:18.00" end="00:02:05.00"> | slide: intro.png, | ||
title: "Really Achieving Your Childhood Dreams" by Randy Pausch, Carnegie Mellon University, Sept 18, 2007 | |||
} | |||
</cue> | |||
<cue start="00:00:44.00" end="00:01:18.00"> | |||
{ | |||
slide: elephant.png, | |||
title: The elephant in the room... | |||
} | |||
</cue> | |||
<cue start="00:01:18.00" end="00:02:05.00"> | |||
{ | |||
slide: denial.png, | |||
title: I'm not in denial... | |||
} | |||
</cue> | |||
</cuelist> | </cuelist> | ||
</wmml> | </wmml> | ||
Line 835: | Line 940: | ||
Analysis: | Analysis: | ||
* TTML doesn't | * TTML doesn't provide for random content in cues | ||
* WebSRT doesn't | * TTML seems to have the metadata markers required to specify Dublin Core only | ||
* WebSRT doesn't allow to specify that the content is in metadata, more specifically JSON |
Latest revision as of 12:16, 6 August 2010
On this page we will find a comparison of time-aligned text example files for several typical application areas. The example files are written in TTML, WebSRT and WMML and try to determine the simplicity/complexity of authoring these formats and whether they fall short in some requirements.
Note that the page is work-in-progress and there may be features in WebSRT and TTML that haven't been used yet and are noted as missing. Please provide feedback/improvements if you notice a mistake.
Subtitles
Simple, unformatted subtitles
TTML:
<tt xml:lang="en-US" xmlns="http://www.w3.org/ns/ttml"> <head> <metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata"> <ttm:role>x-subtitles</ttm:role> </metadata> </head> <body> <div> <p begin="00:00:15.00" end="00:00:17.95">At the left we can see...</p> <p begin="00:00:18.16" end="00:00:20.08">At the right we can see the...</p> <p begin="00:00:20.11" end="00:00:21.96">...the head-snarlers</p> <p begin="00:00:21.99" end="00:00:24.36">Everything is safe.<br/>Perfectly safe.</p> </div> </body> </tt>
WebSRT:
; not sure how to specify that this is in en-US ; not sure how to specify that these are subtitles semantically ; not sure how to specify that this is plain text only 1 00:00:15.00 --> 00:00:17.95 At the left we can see... 2 00:00:18.16 --> 00:00:20.08 At the right we can see the... 3 00:00:20.11 --> 00:00:21.96 ...the head-snarlers 4 00:00:21.99 --> 00:00:24.36 Everything is safe. Perfectly safe.
WMML:
<!DOCTYPE wmml> <wmml lang="en-US" kind="subtitles" profile="plainText" version="1.0"> <cuelist> <cue start="00:00:15.00" end="00:00:17.95">At the left we can see...</cue> <cue start="00:00:18.16" end="00:00:20.08">At the right we can see the...</cue> <cue start="00:00:20.11" end="00:00:21.96">...the head-snarlers</cue> <cue start="00:00:21.99" end="00:00:24.36">Everything is safe.<br/>Perfectly safe.</cue> </cuelist> </wmml>
Analysis:
- All three formats provide for the basic needs.
- You cannot specify the default language in WebSRT.
- You cannot specify the type of time-aligned text in WebSRT.
- You cannot specify the type of cue text in WebSRT.
Formatted subtitles
TTML:
<tt xml:lang="de-DE" xmlns="http://www.w3.org/ns/ttml"> <head> <metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata"> <ttm:role>x-subtitles</ttm:role> </metadata> <styling xmlns:tts="http://www.w3.org/ns/ttml#styling"> <style xml:id="s1" tts:backgroundColor=rgba(0,0,0,0.5) /> </styling> <layout xmlns:tts="http://www.w3.org/ns/ttml#styling"> <region xml:id="c1" style="s1" tts:textAlign="left" /> <region xml:id="c2" style="s1" tts:textAlign="right" /> </layout> </head> <body> <div style="s1" > <p region="c1" begin="00:00:15.00" end="00:00:17.95"> Auf der <span tts:fontStyle="italic">linken</span> Seite sehen wir... </p> <p region="c2" begin="00:00:18.16" end="00:00:20.08"> Auf der <span tts:fontWeight="bold">rechten</span> Seite sehen wir die.... </p> <p begin="00:00:20.11" end="00:00:21.96" tts:color="red"> ..die Enthaupter. </p> <p begin="00:00:21.99" end="00:00:24.36"> <!-- Can't just mark a section as emphasised - gotta choose how to emphasise --> Alles ist <span tts:textDecoration="underline">sicher</span>.<br/>Vollkommen sicher.</p> </div> </body> </tt>
WebSRT:
; not sure how to specify that this is in de-DE ; not sure how to specify that these are subtitles semantically ; not sure how to specify that basic markup is used in cues 1 00:00:15.00 --> 00:00:17.95 A:start Auf der <i>linken</i> Seite sehen wir... 2 00:00:18.16 --> 00:00:20.08 A:end Auf der <b>rechten</b> Seite sehen wir die.... 3 00:00:20.11 --> 00:00:21.96 <1>...die Enthaupter. ; Can't just mark a section as emphasised - gotta choose how to emphasise 4 00:00:21.99 --> 00:00:24.36 <2>Alles ist sicher. Vollkommen <b>sicher</b>.
A CSS file would accompany this WebSRT file to provide for the colors:
::cue { background: rgba(0,0,0,0.5); } ::cue-part(1) { color: red; } ::cue-part(2, b) { font-style: normal; text-decoration: underline; }
WMML:
<wmml lang="de-DE" kind="subtitles" version="1.1"> <head> <style type="text/css"> wmml { background: rgba(0,0,0,0.5); } cue.c1 { text-align: left; } cue.c2 span { text-align: right; } </style> </head> <cuelist> <cue id="c1" start="00:00:15.00" end="00:00:17.95"> Auf der <i>linken</i> Seite sehen wir... </cue> <cue id="c2" start="00:00:18.16" end="00:00:20.08"> Auf der <b>rechten</b> Seite sehen wir die.... </cue> <cue id="c3" start="00:00:20.11" end="00:00:21.96" style="color: red;"> ...die Enthaupter. </cue> <cue id="c4" start="00:00:21.99" end="00:00:24.36"> Alles ist <mark>sicher</mark>.<br/>Vollkommen sicher. </cue> </cuelist> </wmml>
Analysis:
- WebSRT does not provide for default language specification.
- WebSRT does not provide a kind attribute to signify that these are subtitles
- WebSRT does not provide the type of cue text in WebSRT.
- TTML does not provide for special emphasis sections ("mark"-style).
Subtitles with hyperlink
TTML:
<tt xml:lang="de-DE" xmlns="http://www.w3.org/ns/ttml"> <head> <metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata"> <ttm:role>x-subtitles</ttm:role> </metadata> </head> <body> <div style="s1" > <p region="c1" begin="00:00:15.00" end="00:00:17.95"> Auf der linken Seite sehen wir... </p> <p region="c2" begin="00:00:18.16" end="00:00:20.08"> Auf der rechten Seite sehen wir die.... </p> <p begin="00:00:20.11" end="00:00:21.96" tts:color="red"> <!-- Have to use xlink to provide URL hyperlink in TTML --> ..die <span xlink:href="http://members.chello.nl/j.kassenaar/elephantsdream/subtitles.html" xlink:actuate="onRequest" xlink:show="replace" xmlns:xlink="http://www.w3.org/1999/xlink">Enthaupter</span>. </p> <p begin="00:00:21.99" end="00:00:24.36"> Alles ist sicher.<br/>Vollkommen sicher.</p> </div> </body> </tt>
WebSRT:
; not sure how to specify that this is in de-DE ; not sure how to specify that these are subtitles semantically ; not sure how to specify that special markup (innerHTML) is used in cues 1 00:00:15.00 --> 00:00:17.95 Auf der linken Seite sehen wir... 2 00:00:18.16 --> 00:00:20.08 Auf der rechten Seite sehen wir die.... 3 00:00:20.11 --> 00:00:21.96 ...die <a href="href="http://members.chello.nl/j.kassenaar/elephantsdream/subtitles.html">Enthaupter</a>. 4 00:00:21.99 --> 00:00:24.36 Alles ist sicher.<br/>Vollkommen sicher.
WMML:
<wmml lang="de-DE" kind="subtitles" version="1.1"> <cuelist> <cue id="c1" start="00:00:15.00" end="00:00:17.95"> Auf der linken Seite sehen wir... </cue> <cue id="c2" start="00:00:18.16" end="00:00:20.08"> Auf der rechten Seite sehen wir die.... </cue> <cue id="c3" start="00:00:20.11" end="00:00:21.96" style="color: red;"> ...die <a href="http://members.chello.nl/j.kassenaar/elephantsdream/subtitles.html">Enthaupter</a>. </cue> <cue id="c4" start="00:00:21.99" end="00:00:24.36"> Alles ist sicher.<br/>Vollkommen sicher. </cue> </cuelist> </wmml>
Analysis:
- TTML needs to use some XML namespace (e.g. xlink) to provide for hyperlinks.
- WebSRT does not provide for default language specification.
- WebSRT does not provide a kind attribute to signify that these are subtitles
- WebSRT does not provide the type of cue text in WebSRT.
- WebSRT does not provide for URL hyperlinking in cues other than in "any" markup
Top-to-bottom rendered subtitles
TTML:
<tt xml:lang="zh" xmlns="http://www.w3.org/ns/ttml"> <head> <metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata"> <ttm:role>x-subtitles</ttm:role> </metadata> <styling xmlns:tts="http://www.w3.org/ns/ttml#styling"> <style xml:id="s1" tts:writingMode="tbrl" /> </styling> <layout xmlns:tts="http://www.w3.org/ns/ttml#styling"> <region xml:id="subtitleArea" style="s1" tts:padding="2% 2% 2% 64%" tts:textAlign="right" /> </layout> </head> <body> <div style="s1"> <p begin="00:00:15.00" end="00:00:17.95">在左边我们可以看到...</p> <p begin="00:00:18.16" end="00:00:20.08">在右边我们可以看到...</p> <p begin="00:00:20.11" end="00:00:21.96">...捕蝇草械.</p> <p begin"00:00:21.99" end="00:00:24.36">一切都安全.<br/>非常地安全.</p> </div> </body> </tt>
WebSRT:
; not sure how to specify that this is in zh ; not sure how to specify that these are subtitles 1 00:00:15.00 --> 00:00:17.95 A:start D:vertical L:98% 在左边我们可以看到... 2 00:00:18.16 --> 00:00:20.08 A:start D:vertical L:98% 在右边我们可以看到... 3 00:00:20.11 --> 00:00:21.96 A:start D:vertical L:98% ...捕蝇草械. 4 00:00:21.99 --> 00:00:24.36 A:start D:vertical L:98% 一切都安全. 非常地安全.
WMML:
<wmml lang="zh" kind="subtitles" version="1.1"> <head> <style> cue { writing-mode: tb-rl; margin: 2% 2% 2% 64%; text-align: right; } </style> </head> <cuelist> <cue start="00:00:15.00" end="00:00:17.95">在左边我们可以看到...</cue> <cue start="00:00:18.16" end="00:00:20.08">在右边我们可以看到...</cue> <cue start="00:00:20.11" end="00:00:21.96">...捕蝇草械.</cue> <cue start="00:00:21.99" end="00:00:24.36">一切都安全.<br/>非常地安全.</cue> </cuelist> </wmml>
Analysis:
- TTML has no margin attribute, just padding.
- I am unclear if WebSRT's specification of tbrl rendering and the margins is correct.
- For WebSRT, you have to repeat placement for every cue.
Captions
TTML:
<tt xml:lang="en-US" xmlns="http://www.w3.org/ns/ttml"> <head> <metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata"> <ttm:role>caption</ttm:role> <ttm:agent xml:id="Proog" type="character"> <ttm:name type="full">Proog</ttm:name> </ttm:agent> </metadata> </head> <body> <div> <p begin="00:00:15.00" end="00:00:17.95" ttm:agent="Proog">At the left we can see...</p> <p begin="00:00:18.16" end="00:00:20.08" ttm:agent="Proog">At the right we can see the...</p> <p begin="00:00:20.11" end="00:00:21.96" ttm:agent="Proog">...the head-snarlerss<br/>[Whizzing noises]</p> <p begin="00:00:21.99" end="00:00:24.36" ttm:agent="Proog">Everything is safe.<br/>Perfectly safe.</p> </div> </body> </tt>
WebSRT:
; not sure how to specify that this is in en-US ; not sure how to specify that these are captions 1 00:00:15.00 --> 00:00:17.95 <1> At the left we can see... 2 00:00:18.16 --> 00:00:20.08 <1> At the right we can see the... 3 00:00:20.11 --> 00:00:21.96 <1> ...the head-snarlers <sound> [Whizzing noises] 4 00:00:21.99 --> 00:00:24.36 <1> Everything is safe. <1> Perfectly safe.
WMML:
<wmml lang="en-US" kind="captions" version="1.1"> <cuelist> <cue start="00:00:15.00" end="00:00:17.95" class="Proog">At the left we can see...</cue> <cue start="00:00:18.16" end="00:00:20.08" class="Proog">At the right we can see the...</cue> <cue start="00:00:20.11" end="00:00:21.96" class="Proog">...the head-snarlers<br/>[Whizzing noises]</cue> <cue start="00:00:21.99" end="00:00:24.36" class="Proog">Everything is safe.<br/>Perfectly safe.</cue> </cuelist> </wmml>
Analysis:
- In WebSRT it is unclear what character/speaker a voice marker (e.g. <1>, <2>) maps to.
Lyrics
TTML:
<tt xml:lang="en-US" xmlns="http://www.w3.org/ns/ttml"> <head> <metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata"> <ttm:role>lyrics</ttm:role> <ttm:title>Can't buy me Love</ttm:title> <!-- it seems TTML doesn't provide for music title metadata --> <ttm:name type="other">Beatkes, The</ttm:name> <ttm:name type="other">Lennon & McCartney"</ttm:name> <ttm:name type="other">Beatles 1 - 27 #1 Singles"</ttm:name> <ttm:name type="other">Wooden Ghost"</ttm:name> </metadata> </head> <body> <div> <p begin="00:00:00.45" end="00:00:05.60"> Can't <span begin="00:00.75">buy</span> <span begin="00:00.95">me</span> <span begin="00:01.40">love,</span> <span begin="00:02.60">love,</span> <span begin="00:03.95">love, </span> <span begin="00:05.30">love</span> </p> <p begin="00:00:05.90" end="00:00:08.90"> Can't <span begin="00:06.20">buy</span> <span begin="00:06.40">me</span> <span begin="00:06.70">love,</span> <span begin="00:08.00">love</span> </p> <p begin="00:00:09.35" end="00:00:11.55"> I'll <span begin="00:09.50">buy</span> <span begin="00:09.75">you</span> <span begin="00:10.15">a</span> <span begin="00:10.25">dia</span><span begin="00:10.50">mond</span> <span begin="00:10.75">ring</span> <span begin="00:11.10">my</span> <span begin="00:11.40">friend</span> </p> </div> </body> </tt>
WebSRT:
; not sure how to specify that this is in en-US ; not sure how to specify that these are lyrics ; not sure how to provide the music piece metadata 1 00:00:00.45 --> 00:00:05.60 Can't <00:00.75>buy <00:00.95>me<00:01.40>love, <00:02.60>love, <00:03.95>love, <00:05.30>love 2 00:00:05.90 --> 00:00:08.90 Can't <00:06.20>buy <00:06.40>me <00:06.70>love, <00:08.00>love 3 00:00:09.35 --> 00:00:11.55 I'll <00:09.50>buy <00:09.75>you <00:10.15>a <00:10.25>dia<00:10.50>mond <00:10.75>ring <00:11.10>my <00:11.40>friend
WMML:
<wmml lang="en-US" kind="lyrics" version="1.1"> <head> <title>Can't buy me Love</title> <meta name="m:title" content="Can't buy me love"/> <meta name="m:artist" content="Beatles, The"/> <meta name="m:author" cotent="Lennon & McCartney"/> <meta name="m:album" content="Beatles 1 - 27 #1 Singles"/> <meta name="m:by" content="Wooden Ghost"/> </head> <cuelist> <cue start="00:00:00.45" end="00:00:05.60"> Can't <t at="00:00.75">buy</t> <t at="00:00.95">me</t> <t="00:01.40">love,</t> <t at="00:02.60">love,</t> <t at="00:03.95">love, </t> <t at="00:05.30">love</t> </cue> <cue start="00:00:05.90" end="00:00:08.90"> Can't <t at="00:06.20">buy</t> <t at="00:06.40">me</t> <t at="00:06.70">love,</t> <t at="00:08.00">love</t> </cue> <cue start="00:00:09.35" end="00:00:11.55"> I'll <t at="00:09.50">buy</t> <t at="00:09.75">you</t> <t at="00:10.15">a</t> <t at="00:10.25">dia</t><t at="00:10.50">mond</t> <t at="00:10.75">ring</t> <t at="00:11.10">my</t> <t at="00:11.40">friend</t> </cue> </cuelist> </wmml>
Analysis:
- TTML doesn't seem to provide for music title metadata.
- WebSRT doesn't seem to provide for any metadata.
Karaoke
TTML:
<tt xml:lang="en-US" xmlns="http://www.w3.org/ns/ttml"> <head> <metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata"> <ttm:role>lyrics</ttm:role> <ttm:title>Can't buy me Love</ttm:title> <!-- it seems TTML doesn't provide for music title metadata --> <ttm:name type="other">Beatkes, The</ttm:name> <ttm:name type="other">Lennon & McCartney"</ttm:name> <ttm:name type="other">Beatles 1 - 27 #1 Singles"</ttm:name> <ttm:name type="other">Wooden Ghost"</ttm:name> </metadata> <styling xmlns:tts="http://www.w3.org/ns/ttml#styling"> <style tts:color="yellow" tts:fontWeight="bold"/> </styling> </head> <body> <div style="s1"> <p begin="00:00:00.45" end="00:00:05.60"> Can't <span begin="00:00.75">buy</span> <span begin="00:00.95">me</span> <span begin="00:01.40">love,</span> <span begin="00:02.60">love,</span> <span begin="00:03.95">love, </span> <span begin="00:05.30">love</span> </p> <p begin="00:00:05.90" end="00:00:08.90"> Can't <span begin="00:06.20">buy</span> <span sbegin="00:06.40">me</span> <span begin="00:06.70">love,</span> <span begin="00:08.00">love</span> </p> <p begin="00:00:09.35" end="00:00:11.55"> I'll <span begin="00:09.50">buy</span> <span begin="00:09.75">you</span> <span begin="00:10.15">a</span> <span begin="00:10.25">dia</span><span begin="00:10.50">mond</span> <span begin="00:10.75">ring</span> <span begin="00:11.10">my</span> <span begin="00:11.40">friend</span> </p> </div> </body> </tt>
WebSRT:
; not sure how to specify that this is in en-US ; not sure how to specify that these are lyrics ; not sure how to provide the music piece metadata 1 00:00:00.45 --> 00:00:05.60 <b>Can't <00:00.75>buy <00:00.95>me<00:01.40>love, <00:02.60>love, <00:03.95>love, <00:05.30>love</b> 2 00:00:05.90 --> 00:00:08.90 <b>Can't <00:06.20>buy <00:06.40>me <00:06.70>love, <00:08.00>love</b> 3 00:00:09.35 --> 00:00:11.55 <b>I'll <00:09.50>buy <00:09.75>you <00:10.15>a <00:10.25>dia<00:10.50>mond <00:10.75>ring <00:11.10>my <00:11.40>friend</b>
A CSS file would accompany this WebSRT file to provide for the colors:
- cue { color: yellow; font-weight: bold; }
WMML:
<wmml lang="en-US" kind="karaoke" version="1.1"> <head> <title>Can't buy me Love</title> <meta name="m:title" content="Can't buy me love"/> <meta name="m:artist" content="Beatles, The"/> <meta name="m:author" cotent="Lennon & McCartney"/> <meta name="m:album" content="Beatles 1 - 27 #1 Singles"/> <meta name="m:by" content="Wooden Ghost"/> <style> t { font-weight: bold; color: yellow; } </style> </head> <cuelist> <cue start="00:00:00.45" end="00:00:05.60"> <t at="00:00:00.45">Can't</t> <t at="00:00.75">buy</t> <t at="00:00.95">me</t> <t="00:01.40">love,</t> <t at="00:02.60">love,</t> <t at="00:03.95">love, </t> <t at="00:05.30">love</t> </cue> <cue start="00:00:05.90" end="00:00:08.90"> <t at="00:00:05.90">Can't</t> <t at="00:06.20">buy</t> <t at="00:06.40">me</t> <t at="00:06.70">love,</t> <t at="00:08.00">love</t> </cue> <cue start="00:00:09.35" end="00:00:11.55"> <t at="00:00:09.35">I'll</a> <t at="00:09.50">buy</t> <t at="00:09.75">you</t> <t at="00:10.15">a</t> <t at="00:10.25">dia</t> <t at="00:10.50">mond</t> <t at="00:10.75">ring</t> <t at="00:11.10">my</t> <t at="00:11.40">friend</t> </cue> </cuelist> </wmml>
Analysis:
- In TTML, not sure if the style in the elements is only activated at the begin time of the element or if that requires different markup.
Chapter markers
Simple Chapter Markers
TTML:
<tt xml:lang="en-US" xmlns="http://www.w3.org/ns/ttml"> <head> <metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata"> <ttm:role>x-chapters</ttm:role> </metadata> </head> <body> <div> <p begin="00:00:00.00" end="00:00:18.00">Introductory Titles</p> <p begin="00:00:18.01" end="00:01:10.00">The Jack Plugs</p> <p begin="00:01:10.01" end="00:02:30.00">Robotic Birds</p> </div> </body> </tt>
WebSRT:
; not sure how to specify that this is in en-US ; not sure how to specify that these are chapters 1 00:00:00.00 --> 00:00:18.00 Introductory Titles 2 00:00:18.01 --> 00:01:10.00 The Jack Plugs 3 00:01:10.01 --> 00:02:30.00 Robotic Birds
WMML:
<wmml lang="en-US" kind="chapters" version="1.1" profile="plainText"> <cuelist> <cue start="00:00:00.00" end="00:00:18.00">Introductory Titles</cue> <cue start="00:00:18.01" end="00:01:10.00">The Jack Plugs</cue> <cue start="00:01:10.01" end="00:02:30.00">Robotic Birds</cue> </cuelist> </wmml>
Analysis:
- All three fulfill the needs for chapter markers.
Chapter Markers with Image
TTML:
<tt xml:lang="en-US" xmlns="http://www.w3.org/ns/ttml"> <head> <metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata"> <ttm:role>x-chapters</ttm:role> </metadata> </head> <body> <div> <!-- Have to use xlink to provide URL hyperlink in TTML --> <p begin="00:00:00.00" end="00:00:18.00"> <span xlink:href="intro.png" xlink:actuate="onLoad" xlink:show="embed" xmlns:xlink="http://www.w3.org/1999/xlink"></span> Introductory Titles </p> <p begin="00:00:18.01" end="00:01:10.00"> <span xlink:href="plugs.png" xlink:actuate="onLoad" xlink:show="embed" xmlns:xlink="http://www.w3.org/1999/xlink"></span> The Jack Plugs </p> <p begin="00:01:10.01" end="00:02:30.00"> <span xlink:href="birds.png" xlink:actuate="onLoad" xlink:show="embed" xmlns:xlink="http://www.w3.org/1999/xlink"></span> Robotic Birds </p> </div> </body> </tt>
WebSRT:
; not sure how to specify that this is in en-US ; not sure how to specify that these are chapters ; not sure how to specify that the cues are special markup (innerHTML) ; not sure how to specify representative images for chapters 1 00:00:00.00 --> 00:00:18.00 <img src="intro.png"/> Introductory Titles 2 00:00:18.01 --> 00:01:10.00 <img src="plugs.png"/> The Jack Plugs 3 00:01:10.01 --> 00:02:30.00 <img src="birds.png"/> Robotic Birds
WMML:
<!DOCTYPE wmml> <wmml lang="en-US" kind="chapters"> <cuelist> <cue start="00:00:00.00" end="00:00:18.00"><img src="intro.png"/> Introductory Titles</cue> <cue start="00:00:18.01" end="00:01:10.00"><img src="plugs.png"/> The Jack Plugs</cue> <cue start="00:01:10.01" end="00:02:30.00"><img src="birds.png"/> Robotic Birds</cue> </cuelist> </wmml>
Analysis:
- In TTML we have to use xlink to specify representative images.
Texted audio descriptions
TTML:
<tt xml:lang="en-US" xmlns="http://www.w3.org/ns/ttml"> <head> <metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata"> <ttm:role>description</ttm:role> </metadata> </head> <body> <div> <p begin="00:00:00.00" end="00:00:05.00">The orange open movie project presents</p> <p begin="00:00:05.01" end="00:00:12.00">Introductory titles are showing on the background of a water pool with fishes swimming and mechanical objects lying on a stone floor.</p> <p begin="00:00:11.01" end="00:00:14.80">elephants dream</p> </div> </body> </tt>
WebSRT:
; not sure how to specify that this is in en-US ; not sure how to specify that these are audio descriptions ; not sure how to specify that this is plain text only 1 00:00:00.00 --> 00:00:05.00 The orange open movie project presents 2 00:00:05.01 --> 00:00:12.00 Introductory titles are showing on the background of a water pool with fishes swimming and mechanical objects lying on a stone floor. 3 00:00:11.01 --> 00:00:14.80 elephants dream
WMML:
<wmml lang="en-US" kind="descriptions" profile="plainText" version="1.1"> <cuelist> <cue start="00:00:00.00" end="00:00:05.00">The orange open movie project presents</cue> <cue start="00:00:05.01" end="00:00:12.00">Introductory titles are showing on the background of a water pool with fishes swimming and mechanical objects lying on a stone floor.</cue> <cue start="00:00:11.01" end="00:00:14.80">elephants dream</cue> </cuelist> </wmml>
Analysis:
- All three formats provide for the needs for audio descriptions.
Timed Metadata
Timed slides for a presentations with slide transcripts.
TTML:
<tt xml:lang="en-US" xmlns="http://www.w3.org/ns/ttml"> <head> <metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata"> <ttm:role>x-subtitles</ttm:role> <ttm:title>Really Achieving Your Childhood Dreams</ttm:title> <ttm:name type="full">Randy Pausch</ttm:name> <ttm:name type="other">Carnegie Mellon University</ttm:name> <!-- not sure how to specify date and source --> </metadata> </head> <body> <div> <!-- Have to use xlink to provide URL hyperlink in TTML --> <p begin="00:00:00.00" end="00:00:44.00"> <span xlink:href="intro.png" xlink:actuate="onLoad" xlink:show="embed" xmlns:xlink="http://www.w3.org/1999/xlink"></span> "Really Achieving Your Childhood Dreams" by Randy Pausch, Carnegie Mellon University, Sept 18, 2007 </p> <p begin="00:00:44.00" end="00:01:18.00"> <span xlink:href="elephant.png" xlink:actuate="onLoad" xlink:show="embed" xmlns:xlink="http://www.w3.org/1999/xlink"></span> The elephant in the room... </p> <p begin="00:01:18.00" end="00:02:05.00"> <span xlink:href="denial.png" xlink:actuate="onLoad" xlink:show="embed" xmlns:xlink="http://www.w3.org/1999/xlink"></span> I'm not in denial... </p> </div> </body> </tt>
WebSRT:
; not sure how to specify that this is in en-US ; not sure how to specify that these are timed slides ; not sure how to specify that the content is JSON 1 00:00:00.00 --> 00:00:44.00 { slide: intro.png, title: "Really Achieving Your Childhood Dreams" by Randy Pausch, Carnegie Mellon University, Sept 18, 2007 } 2 00:00:44.00 --> 00:01:18.00 { slide: elephant.png, title: The elephant in the room... } 3 00:01:18.00 --> 00:02:05.00 { slide: denial.png, title: I'm not in denial... }
WMML:
<!DOCTYPE wmml> <wmml lang="en-US" kind="metadata"> <head> <title>Really Achieving Your Childhood Dreams</title> <meta name="dc:title" content="Really Achieving Your Childhood Dreams"/> <meta name="dc:author" cotent="Randy Pausch"/> <meta name="dc:location" content="Carnegie Mellon University"/> <meta name="dc:date" content="18th Sept 2007"/> <meta name="dc:source" content="http://www.labnol.org/home/randy-pausch-last-lecture-video-with-transcript/4211/"/> </head> <cuelist> <cue start="00:00:00.00" end="00:00:44.00"> { slide: intro.png, title: "Really Achieving Your Childhood Dreams" by Randy Pausch, Carnegie Mellon University, Sept 18, 2007 } </cue> <cue start="00:00:44.00" end="00:01:18.00"> { slide: elephant.png, title: The elephant in the room... } </cue> <cue start="00:01:18.00" end="00:02:05.00"> { slide: denial.png, title: I'm not in denial... } </cue> </cuelist> </wmml>
Analysis:
- TTML doesn't provide for random content in cues
- TTML seems to have the metadata markers required to specify Dublin Core only
- WebSRT doesn't allow to specify that the content is in metadata, more specifically JSON