Accessibility/Video Text Format Comparison: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(started some edits to adapt to actual spec of WebSRT)
 
(6 intermediate revisions by the same user not shown)
Line 34: Line 34:
   ; 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 semantically
   ; not sure how to specify that these are subtitles semantically
   ; not sure how to specify that this is pure text only
   ; not sure how to specify that this is plain text only


   1
   1
Line 59: 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 77: Line 77:
* You cannot specify the type of cue text in WebSRT.
* You cannot specify the type of cue text in WebSRT.


 
=== Formatted subtitles ===
=== Formatted subtitles with hyperlink ===


TTML:
TTML:
Line 113: 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">
        <!-- Have to use xlink to provide URL hyperlink in TTML -->
         ..die Enthaupter.
         ..die <span  xlink:href="http://orange.blender.org/blog/creative-commons-license-2/"
                              xlink:actuate="onRequest" xlink:show="replace"
                              xmlns:xlink="http://www.w3.org/1999/xlink">Enthaupter</span>.
       </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 135: Line 131:


   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....
  ; next cue: Can't provide a URL in WebSRT cues :(


   3
   3
   00:00:20.11 --> 00:00:21.96
   00:00:20.11 --> 00:00:21.96
   <font color="red">...die Enthaupter.</font>
   <1>...die Enthaupter.


   ; next cue: Can't provide a specially marked section in WebSRT cues :(
   ; 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 background color:
A CSS file would accompany this WebSRT file to provide for the colors:
 
::cue {background: rgba(0,0,0,0.5);}


::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>
<!DOCTYPE wmml>
<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 187: 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 <a href="http://orange.blender.org/blog/creative-commons-license-2/">Enthaupter</a>.
       ...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>.&lt;br/>Vollkommen sicher.
       Alles ist <mark>sicher</mark>.&lt;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.&lt;br/>Vollkommen sicher.
     </cue>
     </cue>
   </cuelist>
   </cuelist>
Line 201: 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 role/type/kind attribute to signify that these are subtitles
* WebSRT does not provide a kind attribute to signify that these are subtitles
* WebSRT does not provide for general styling, e.g. how to specify a background color. (TBD?)
* WebSRT does not provide the type of cue text in WebSRT.
* WebSRT does not enable reuse of styling between individual cues. (TBD?)
* WebSRT does not provide for URL hyperlinking in cues other than in "any" markup
* WebSRT does not provide for URL hyperlinking in cues.
* WebSRT does not provide for special emphasis sections ("mark"-style).




Line 271: Line 350:


<pre>
<pre>
<!DOCTYPE wmml>
<wmml lang="zh" kind="subtitles" version="1.1">
<wmml lang="zh" kind="subtitles">
   <head>
   <head>
     <style>
     <style>
Line 295: 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 formatting for every cue.
* For WebSRT, you have to repeat placement for every cue.


== Captions==
== Captions==
Line 352: Line 430:


<pre>
<pre>
<!DOCTYPE wmml>
<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" voice="Proog">At the left we can see...</cue>
     <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" voice="Proog">At the right we can see the...</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" voice="Proog">...the head-snarlers&lt;br/>[Whizzing noises]</cue>
     <cue start="00:00:20.11" end="00:00:21.96" class="Proog">...the head-snarlers&lt;br/>[Whizzing noises]</cue>
     <cue start="00:00:21.99" end="00:00:24.36" voice="Proog">Everything is safe.&lt;br/>Perfectly safe.</cue>
     <cue start="00:00:21.99" end="00:00:24.36" class="Proog">Everything is safe.&lt;br/>Perfectly safe.</cue>
   </cuelist>
   </cuelist>
</wmml>
</wmml>
Line 365: Line 442:


Analysis:
Analysis:
* In WebSRT it is unclear what character/speaker a voice marker (e.g. <1>, <2>) maps to. (TBD?)
* In WebSRT it is unclear what character/speaker a voice marker (e.g. <1>, <2>) maps to.
* In WMML it is unclear what the voice string maps to - needs  metadata.


== Lyrics ==
== Lyrics ==
Line 426: Line 502:


<pre>
<pre>
<!DOCTYPE wmml>
<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 502: Line 577:
   1
   1
   00:00:00.45 --> 00:00:05.60
   00:00:00.45 --> 00:00:05.60
   <font color=yellow><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></font>
   <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
   <font color=yellow><b>Can't <00:06.20>buy <00:06.40>me <00:06.70>love, <00:08.00>love</b></font>
   <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
   <font color=yellow><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></font>
   <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>
<!DOCTYPE wmml>
<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 549: Line 626:


Analysis:
Analysis:
* 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.
* 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.
* Repetitions of bold and yellow in every cue in WebSRT - and will they get activated at the given time?




Line 600: Line 676:


<pre>
<pre>
<!DOCTYPE wmml>
<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 658: 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 690: 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.
* In WebSRT we cannot specify representative images for a cue. (TBD?)


== Texted audio descriptions ==
== Texted audio descriptions ==
Line 719: 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 738: Line 814:


<pre>
<pre>
<!DOCTYPE wmml>
<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 802: 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 representative images for cues
   ; 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,
   {
  Sept 18, 2007
    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 833: Line 916:
   </head>
   </head>
   <cuelist>
   <cuelist>
     <cue start="00:00:00.00" end="00:00:44.00"><img src="intro.png"/>"Really Achieving Your Childhood Dreams" by Randy Pausch, Carnegie Mellon University, Sept 18, 2007</cue>
     <cue start="00:00:00.00" end="00:00:44.00">
     <cue start="00:00:44.00" end="00:01:18.00"><img src="elephant.png"/>The elephant in the room...</cue>
    {
     <cue start="00:01:18.00" end="00:02:05.00"><img src="denial.png"/>I'm not in denial...</cue>
      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 842: Line 940:


Analysis:
Analysis:
* TTML doesn't seem to have the metadata markers required to specify Dublin Core.
* TTML doesn't provide for random content in cues
* WebSRT doesn't have functionality to specify metadata.
* TTML seems to have the metadata markers required to specify Dublin Core only
* WebSRT doesn't have functionality to specify slides/representative images.
* 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