[whatwg] <video> element feedback

On 3/23/07, Silvia Pfeiffer <silviapfeiffer1 at gmail.com> wrote:
> On 3/23/07, Nicholas Shanks <contact at nickshanks.com> wrote:
> > 3) And a way for users to link to timecodes that aren't marked up at
> > all.
> 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.

QuickTime has done this for at least 15 years. If you want the Ogg vs
QuickTime theoretical argument. have a look at:

http://lists.xiph.org/pipermail/vorbis-dev/2001-October/004846.html

Broadly, there are 3 approaches to the seeking problem.

1. define everything as a bitstream, and require that you can resync
within a known interval (this is the MPEG1/2 approach, with the GOP
size defining the interval)
2. define a chunk/offset table that maps media to time, and look this
up ahead of any seeking. (this is the QT approach, and that of MPEG4
3. make the file consist of fixed-sized chunks for each time, so you
can seek arbitrarily and hit a good offset. (this is the uncompressed
audio and DV file approach).

Ogg made up a bastard hybrid of 1 and 2, where there is still a
dependency on getting the codebooks from the start of the file, but
the only way to jump is by doing a binary search with a disk seek per
jump. As I said 6 years ago:

How does one seek a Vorbis file with video in and recover framing?

It looks like you skip to an arbitrary point and scan for 'OggS' then
do a 64kB CRC to make sure this isn't a fluke. Then you have some
packets that correspond to some part of a frame of video or audio.
You recover a timestamp, and thus you can pick another random point
and do a binary chop until you hit the timestamp before the one you
wanted. Then you need to read pages until the timestamp changes and
you have resynced that stream. Any other interleaved streams are
presumably being resync'd in parallel so you can then get back to the
read and skip framing. Try doing that from a CD-ROM.

Do let me know if that has since been fixed.

Received on Saturday, 24 March 2007 01:57:45 UTC