[whatwg] <video> element feedback

Hi Eric,

On 3/24/07, Eric Carlson <eric.carlson at apple.com> wrote:
>
>
> On Mar 23, 2007, at 1:27 PM, Silvia Pfeiffer wrote:
> On 3/23/07, Nicholas Shanks <contact at nickshanks.com> wrote:
> Can't we have all of:
> 1) A way for authors to match up timecodes with fragment identifiers
> in the fallback content
> 2) A way for UAs to skip to that time code if a fragment identifier
> is requested and it's contained within fallback the UA isn't displaying
> 3) And a way for users to link to timecodes that aren't marked up at
> all.
>
> I completely agree.
>
> Since we have to stick with the way that URIs are defined and the way
> that HTTP works, we can realise these in the following ways:
>
> 1. Either the fallback content has a means in which fragment
> identifiers are encoded into the video (as e.g. CMML/Annodex provides
> for Ogg Theora, or chapter markers in QuickTime), or the UA can
> request this information from the server, where it may be stored in a
> DB or in a XML file (such as CMML) and can be returned to the UA.
>
> 2. Again, there are two alternatives that are possible - either using
> the fragment ("#") for identifiers or using queries ("?") to provide
> the offset (or named anchor, or time section) in the URI. When using
> fragments, the UA first has to download the full file and then
> undertake the offset for playback itself. When using queries, a server
> module can do the offset and thus avoid potentially large amounts of
> binary data to be downloaded to the UA which the users may never want
> to look at. The use of queries will be absolutely necessary for mobile
> phones for example, where you pay through the nose for bandwidth use.
>
> 3. covered in my reply to 2.
>
> I know of only one format that provides for all this functionality at
> the moment and that is Ogg Theora with the Annodex and CMML
> extensions.
>
> In particular the part where a server component is required to provide
> a valid file from a time offset (and - don't get me wrong - a anchor
> is nothing else but a named time offset) is unique. Annodex has a
> apache module called mod_annodex to provide this functionality. And it
> has python, php and perl bindings to provide this functionality
> through typical Web scripting languages.
>
>   Even without a server component, #2 and #3 do not require the UA to
> download the full file if it can use byte range requests for random access
> and the file format has time to offset tables (eg. the 'moov' resource in a
> QuickTime movie or ISO-based file, the 'movi' LIST chunk in an AVI file,
> etc).

I agree partially.

You're right - it doesn't need to download everything.

But there are two catches:

1) The UA doesn't know what byterange a timecode or timerange maps to.
So, it has to request this information from the server, who has access
to the file. For QuickTime movies, the UA would need to request the
offset table from the server and for AVI it would need to request the
chunking information.

2) Just streaming from an offset of a video file often breaks the file
format. For nearly all video formats, there are headers at the
beginning of a video file which determine how to decode the video
file. Lacking this information, the video files cannot be decoded.
Therefore, a simple byterange request of a subpart of the video only
results in undecodable content. The server actually has to be more
intelligent and provide a re-assembled correct video file if it is to
stream from an offset.

Regards,
Silvia.

Received on Friday, 23 March 2007 15:49:38 UTC