Timed Divs HTML

From XiphWiki

(Difference between revisions)
Jump to: navigation, search
(removed script from body)
(started describing the rendering process)
Line 54: Line 54:
In HTML4.01, the [http://www.w3.org/TR/html401/struct/global.html#h-7.5 body element] is defined as follows:
In HTML4.01, the [http://www.w3.org/TR/html401/struct/global.html#h-7.5 body element] is defined as follows:
 +
<pre>
<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body -->
<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body -->
<!ATTLIST BODY
<!ATTLIST BODY
Line 60: Line 61:
   onunload        %Script;  #IMPLIED  -- the document has been removed --
   onunload        %Script;  #IMPLIED  -- the document has been removed --
   >
   >
 +
</pre>
-
In TDHT1.0 we restrict it to the following:
+
In TDHT1.0 we restrict it to just contain a sequence of div tags:
 +
<pre>
<!ELEMENT BODY O O (DIV)+ -- document body -->
<!ELEMENT BODY O O (DIV)+ -- document body -->
<!ATTLIST BODY
<!ATTLIST BODY
Line 69: Line 72:
   onunload        %Script;  #IMPLIED  -- the document has been removed --
   onunload        %Script;  #IMPLIED  -- the document has been removed --
   >
   >
 +
</pre>
 +
 +
The div tags in turn can contain anything that HTML div tags can contain, thus enabling a very flexible, but time-aligned text model.
Line 75: Line 81:
In HTML4.01, the [http://www.w3.org/TR/html401/struct/global.html#h-7.5.4 div element] is defined as follows:
In HTML4.01, the [http://www.w3.org/TR/html401/struct/global.html#h-7.5.4 div element] is defined as follows:
 +
<pre>
<!ELEMENT DIV - - (%flow;)*            -- generic language/style container -->
<!ELEMENT DIV - - (%flow;)*            -- generic language/style container -->
<!ATTLIST DIV
<!ATTLIST DIV
   %attrs;                              -- %coreattrs, %i18n, %events --
   %attrs;                              -- %coreattrs, %i18n, %events --
   >
   >
 +
</pre>
-
In TDHT1.0 we extend it with time attributes:
+
In TDHT1.0 we extend it with start and end time attributes:
 +
<pre>
<!ELEMENT DIV - - (%flow;)*            -- generic language/style container -->
<!ELEMENT DIV - - (%flow;)*            -- generic language/style container -->
<!ATTLIST DIV
<!ATTLIST DIV
Line 88: Line 97:
   end            %Time;    #IMPLIED  -- end time
   end            %Time;    #IMPLIED  -- end time
   >
   >
 +
</pre>
The Time entity is defined in HTML5: http://www.whatwg.org/specs/web-apps/current-work/#valid-time-string .
The Time entity is defined in HTML5: http://www.whatwg.org/specs/web-apps/current-work/#valid-time-string .
 +
 +
 +
== Rendering in a Web Browser ==
 +
 +
A TDHT file is meant to be associated with a audio or video file and rendered in a Web browser in sync with the audio or video file.
 +
 +
For security reasons, the TDHT file is not rendered into an existing HTML page, but rather creates its own [http://www.whatwg.org/specs/web-apps/current-work/#the-iframe-element iframe-like] new nested browsing context.

Revision as of 05:06, 5 January 2009

Contents

The following is a draft. It is at best incomplete and at worst completely broken. In any case, it is not an "official" Xiph spec/codec, so use with care.


Introduction

This page specifies a subclass of HTML documents that is a time-aligned text format for audio-visual content. We call the format "timed divs within HTML" or TDHT. It is intended to be used only in a World Wide Web context i.e. everywhere that Web browser functionality is available. Use cases for the format are subtitles, captions, annotations and other time aligned text as listed at http://wiki.xiph.org/index.php/OggText#Categories_of_Text_Codecs .

TDHT may be similar to W3C TimedText DFXP in many respects, but in comparison to DFXP it does not re-invent HTML, CSS and effects, but rather uses existing HTML, CSS and javascript for these. The purpose of DFXP is to create a web-independent exchange format for timed text, which is why it cannot directly be specified as a subpart of HTML.

TDHT in contrast is HTML with a minimum number of changes. TDHT is parsable by any HTML parser. It works with CSS and javascript. No new functionality has to be defined for TDHT.


File Extension

Files in this format are to be of text/x-tdht mime type.

Files in this format should have a file extension of .tdht .


The TDHT format changes from HTML

TDHT files are time-aligned text. This means there is a time association with blocks of text and there is time-based seeking functionality on those blocks of text.

Here is an example TDHT file for subtitles:

<html>
  <head>
    <title>Desperate Housewives - Season 5, Episode 6</title>
  </head>
  <body>
    <div start="00:00:00,070" end="00:00:02,270">
      <p>Previously on...</p>
    </div>
    <div start="00:00:02,280" end="00:00:04,270">
      <p>We had an agreement to keep things casual.</p>
    </div>
    <div start="00:00:04,280" end="00:00:06,660">
      <p>Susan made her feelings clear.</p>
    </div>
    <div start="00:00:06,800" end="00:00:10,100">
      <p>So if I was with another woman, that wouldn't bother you? No, it wouldn't.</p>
    </div>
  </body>
</html>

Right now, TDHT is based on HTML4.01, but it should also be possible to work on HTML5, which is still in flux.

The following changes to HTML4.01 are made for TDHT:


1. The body element

In HTML4.01, the body element is defined as follows:

<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body -->
<!ATTLIST BODY
  %attrs;                              -- %coreattrs, %i18n, %events --
  onload          %Script;   #IMPLIED  -- the document has been loaded --
  onunload        %Script;   #IMPLIED  -- the document has been removed --
  >

In TDHT1.0 we restrict it to just contain a sequence of div tags:

<!ELEMENT BODY O O (DIV)+ -- document body -->
<!ATTLIST BODY
  %attrs;                              -- %coreattrs, %i18n, %events --
  onload          %Script;   #IMPLIED  -- the document has been loaded --
  onunload        %Script;   #IMPLIED  -- the document has been removed --
  >

The div tags in turn can contain anything that HTML div tags can contain, thus enabling a very flexible, but time-aligned text model.


2. The div element

In HTML4.01, the div element is defined as follows:

<!ELEMENT DIV - - (%flow;)*            -- generic language/style container -->
<!ATTLIST DIV
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

In TDHT1.0 we extend it with start and end time attributes:

<!ELEMENT DIV - - (%flow;)*            -- generic language/style container -->
<!ATTLIST DIV
  %attrs;                              -- %coreattrs, %i18n, %events --
  start           %Time;    #IMPLIED   -- start time
  end             %Time;    #IMPLIED   -- end time
  >

The Time entity is defined in HTML5: http://www.whatwg.org/specs/web-apps/current-work/#valid-time-string .


Rendering in a Web Browser

A TDHT file is meant to be associated with a audio or video file and rendered in a Web browser in sync with the audio or video file.

For security reasons, the TDHT file is not rendered into an existing HTML page, but rather creates its own iframe-like new nested browsing context.

Personal tools


Main Page

Xiph.Org Projects

Audio—

Video—

Text—

Container—

Streaming—