Accessibility/Video Text Format Comparison: Difference between revisions
(started comparison page) |
|||
| (27 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
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 [http://www.w3.org/TR/ttaf1-dfxp/ TTML], [http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#websrt-0 WebSRT] and [https://wiki.mozilla.org/Accessibility/Video_Text_Format WMML] and try to determine the simplicity/complexity of authoring these formats and whether they fall short in some requirements. | 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 [http://www.w3.org/TR/ttaf1-dfxp/ TTML], [http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#websrt-0 WebSRT] and [https://wiki.mozilla.org/Accessibility/Video_Text_Format 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 == | == Subtitles == | ||
| Line 9: | Line 12: | ||
<pre> | <pre> | ||
<tt xml:lang="en-US" xmlns="http://www.w3.org/ns/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> | <body> | ||
<div> | <div> | ||
| Line 15: | Line 23: | ||
<p begin="00:00:20.11" end="00:00:21.96">...the head-snarlers</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> | <p begin="00:00:21.99" end="00:00:24.36">Everything is safe.<br/>Perfectly safe.</p> | ||
</div> | |||
</body> | </body> | ||
</tt> | </tt> | ||
</pre> | </pre> | ||
WebSRT: | WebSRT: | ||
<pre> | <pre> | ||
; 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 | 1 | ||
00:00:15.00 | 00:00:15.00 --> 00:00:17.95 | ||
At the left we can see... | At the left we can see... | ||
2 | 2 | ||
00:00:18.16 --> 00:00:20.08 | 00:00:18.16 --> 00:00:20.08 | ||
At the right we can see the... | At the right we can see the... | ||
3 | |||
00:00:20.11 --> 00:00:21.96 | |||
...the head-snarlers | ...the head-snarlers | ||
4 | |||
00:00:21.99 --> 00:00:24.36 | 00:00:21.99 --> 00:00:24.36 | ||
Everything is safe. | Everything is safe. | ||
Perfectly safe. | Perfectly safe. | ||
</pre> | </pre> | ||
WMML: | WMML: | ||
| Line 48: | 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 59: | Line 70: | ||
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: | |||
<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> | |||
<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> | |||
</pre> | |||
WebSRT: | |||
<pre> | <pre> | ||
< | ; not sure how to specify that this is in de-DE | ||
<wmml lang=" | ; 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>. | |||
</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: | |||
<pre> | |||
<wmml lang="de-DE" kind="subtitles" version="1.1"> | |||
<head> | <head> | ||
<style type="text/css"> | <style type="text/css"> | ||
| Line 80: | Line 174: | ||
</head> | </head> | ||
<cuelist> | <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="c1" start="00:00:15.00" end="00:00:17.95"> | ||
<cue id="c2" start="00:00:18.16" end="00:00:20.08">Auf der <b>rechten</b> Seite sehen wir die....</cue> | Auf der <i>linken</i> Seite sehen wir... | ||
<cue id="c3" start="00:00:20.11" end="00:00:21.96" style="color: red;">...die <a href="http:// | </cue> | ||
<cue id="c4" start="00:00:21.99" end="00:00:24.36">Alles ist | <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> | |||
</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> | |||
</cuelist> | </cuelist> | ||
</wmml> | </wmml> | ||
</pre> | </pre> | ||
Top-to-bottom rendered subtitles: | |||
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: | |||
<pre> | |||
<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> | |||
</pre> | |||
WebSRT: | |||
<pre> | |||
; 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% | |||
一切都安全. | |||
非常地安全. | |||
</pre> | |||
WMML: | |||
<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 99: | Line 358: | ||
text-align: right; | text-align: right; | ||
} | } | ||
</style> | |||
</head> | </head> | ||
<cuelist> | <cuelist> | ||
| Line 109: | Line 369: | ||
</pre> | </pre> | ||
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: | |||
<pre> | |||
<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> | |||
</pre> | |||
WebSRT: | |||
<pre> | <pre> | ||
< | ; not sure how to specify that this is in en-US | ||
<wmml lang="en-US" kind="captions"> | ; 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. | |||
</pre> | |||
WMML: | |||
<pre> | |||
<wmml lang="en-US" kind="captions" version="1.1"> | |||
<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> | ||
</pre> | </pre> | ||
3. | |||
Analysis: | |||
* In WebSRT it is unclear what character/speaker a voice marker (e.g. <1>, <2>) maps to. | |||
== Lyrics == | |||
TTML: | |||
<pre> | |||
<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> | |||
</pre> | |||
WebSRT: | |||
<pre> | |||
; 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 | |||
</pre> | |||
WMML: | |||
<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 150: | Line 525: | ||
</pre> | </pre> | ||
Analysis: | |||
* TTML doesn't seem to provide for music title metadata. | |||
* WebSRT doesn't seem to provide for any metadata. | |||
== Karaoke == | |||
TTML: | |||
<pre> | <pre> | ||
<! | <tt xml:lang="en-US" xmlns="http://www.w3.org/ns/ttml"> | ||
<wmml lang="en-US" kind="karaoke"> | <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> | |||
</pre> | |||
WebSRT: | |||
<pre> | |||
; 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> | |||
</pre> | |||
A CSS file would accompany this WebSRT file to provide for the colors: | |||
::cue { color: yellow; font-weight: bold; } | |||
WMML: | |||
<pre> | |||
<wmml lang="en-US" kind="karaoke" version="1.1"> | |||
<head> | <head> | ||
<title>Can't buy me Love</title> | <title>Can't buy me Love</title> | ||
| Line 171: | Line 612: | ||
<cuelist> | <cuelist> | ||
<cue start="00:00:00.45" end="00:00:05.60"> | <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> | <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> | ||
<cue start="00:00:05.90" end="00:00:08.90"> | <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> | <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> | ||
<cue start="00:00:09.35" end="00:00:11.55"> | <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> | <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> | </cue> | ||
</cuelist> | </cuelist> | ||
| Line 183: | Line 624: | ||
</pre> | </pre> | ||
Simple: | 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. | |||
== Chapter markers == | |||
=== Simple Chapter Markers === | |||
TTML: | |||
<pre> | |||
<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> | |||
</pre> | |||
WebSRT: | |||
<pre> | <pre> | ||
< | ; not sure how to specify that this is in en-US | ||
<wmml lang="en-US" kind="chapters"> | ; 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 | |||
</pre> | |||
WMML: | |||
<pre> | |||
<wmml lang="en-US" kind="chapters" version="1.1" profile="plainText"> | |||
<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 198: | Line 685: | ||
</pre> | </pre> | ||
Analysis: | |||
* All three fulfill the needs for chapter markers. | |||
=== Chapter Markers with Image === | |||
TTML: | |||
<pre> | |||
<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> | |||
</pre> | |||
WebSRT: | |||
<pre> | |||
; 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 | |||
</pre> | |||
WMML: | |||
<pre> | <pre> | ||
| Line 211: | Line 763: | ||
</pre> | </pre> | ||
Analysis: | |||
* In TTML we have to use xlink to specify representative images. | |||
== Texted audio descriptions == | |||
TTML: | |||
<pre> | |||
<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> | |||
</pre> | |||
WebSRT: | |||
<pre> | <pre> | ||
< | ; not sure how to specify that this is in en-US | ||
<wmml lang="en-US" kind="descriptions"> | ; 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 | |||
</pre> | |||
WMML: | |||
<pre> | |||
<wmml lang="en-US" kind="descriptions" profile="plainText" version="1.1"> | |||
<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 224: | Line 823: | ||
</pre> | </pre> | ||
Timed slides for a presentations | Analysis: | ||
* All three formats provide for the needs for audio descriptions. | |||
== Timed Metadata == | |||
Timed slides for a presentations with slide transcripts. | |||
TTML: | |||
<pre> | |||
<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> | |||
</pre> | |||
WebSRT: | |||
<pre> | |||
; 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... | |||
} | |||
</pre> | |||
WMML: | |||
<pre> | <pre> | ||
| Line 240: | 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> | ||
</pre> | </pre> | ||
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 | |||
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