W3C home > Mailing lists > Public > public-media-fragment@w3.org > June 2011

revisit the change from #id to #chapter addressing

From: Silvia Pfeiffer <silviapfeiffer1@gmail.com>
Date: Wed, 8 Jun 2011 20:08:28 +1000
Message-ID: <BANLkTimGt-MDGzuV+g+_OmFsdiYUrXnOEw@mail.gmail.com>
To: Media Fragment <public-media-fragment@w3.org>
Hi all,

I'd like us to revisit the change of the named dimension addressing
from #id to #chapter.

I'm saying this on the background of how HTML5 has been specified for
text tracks.

With the named dimension, we need a way to resolve it to time ranges
(and thus ultimately to byte ranges).

This can be done in two ways: either by a server or by a UA. Let me
first focus on the server.

How the server resolves it to time ranges (or even directly to byte
ranges) is now described in
, given that the server has this mapping.

One way for the server to get this mapping is by having a a chapter
track inside the media resource. A chapter track basically consists of
the following information:

{chapter1 name} -> {starttime, endtime}
{chapter2 name} -> {starttime, endtime}
{chapter3 name} -> {starttime, endtime}

So, this can be easily used to resolve from a chapter name to
[starttime, endtime] and from there to [start-byte,end-byte].

Now, let me look at how a UA could resolve it.

I am looking at one special kind of UA for now: I am assuming that the
UA is a HTML5 browser and we're loading the URL into a video element.
This does not restrict the general usage of the named dimension
fragments to HTML5 UAs, but it explains how HTML5 UAs would deal with

A UA might have a URI as follows in a video element:
http://example.com/video.ogv#id=cue2 .

As part of loading that resource, let's say the UA would also load a
subtitle track from a WebVTT resource (it could also be from an
in-band track, though the cues of an in-band track only become
available successively and not at the start).

The WebVTT resource may look as follows:


00:00:00.000 --> 00:00:05.000
This is cue 1

00:00:05.000 --> 00:00:010.000
This is cue 2

00:00:10.000 --> 00:00:15.000
This is cue 3

This resource would be loaded by the UA and parsed into a
TextTrackCueList (see

Thus it will be available as something like:
TextTrackCueList {
  length: 3,
  TextTrackCue(0) {
    id: cue1,
    startTime: 00:00:00.000,
    endTime: 00:00:05.000,
    getCueAsSource(): "This is cue 1";
  TextTrackCue(1) {
    id: cue2,
    startTime: 00:00:05.000,
    endTime: 00:00:10.000,
    getCueAsSource(): "This is cue 2";
  TextTrackCue(2) {
    id: cue3,
    startTime: 00:00:10.000,
    endTime: 00:00:15.000,
    getCueAsSource(): "This is cue 3";

with an addressing function in TextTrackCueList of getCueById(name).

We can thus resolve the URL http://example.com/video.ogv#id=cue2  in
the UA through getCueById('cue2') to the time range 00:00:05.000 -->
00:00:010.000 and thus execute the equivalent of
http://example.com/video.ogv#t=5,10 .

Now to the problem that I have with naming the dimension "#chapter":
in HTML5 we have the following types of tracks: subtitles, captions,
chapters, descriptions and metadata. All of these dimensions can be
filled from a WebVTT file in the above described manner.

Thus, we could have a video element with a subtitle track where we
would address cue2 through http://example.com/video.ogv#chapter=cue2 .

I think this is very confusing.

Davy suggested during today's meeting to maybe rename the dimension to
#cue to make it generic. I'd be happy with that or #id or something
else neutral. I just think we should avoid confusion by using
something specific like #subitlte, #caption, #chapter, or

Received on Wednesday, 8 June 2011 10:09:15 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:52:46 UTC