- From: Silvia Pfeiffer <silviapfeiffer1@gmail.com>
- Date: Wed, 8 Jun 2011 20:08:28 +1000
- 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
http://www.w3.org/2008/WebVideo/Fragments/WD-media-fragments-spec/#server-triggered-redirect
, 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
this.
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:
===
WEBVTT
cue1
00:00:00.000 --> 00:00:05.000
This is cue 1
cue2
00:00:05.000 --> 00:00:010.000
This is cue 2
cue3
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
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#texttrackcuelist).
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
#description.
Cheers,
Silvia.
Received on Wednesday, 8 June 2011 10:09:15 UTC