- From: Kevin Marks <kevinmarks@gmail.com>
- Date: Sat, 24 Mar 2007 01:57:45 -0700
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