- 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