[ogg-dev] video chapters and subtitles in ogg containers

Ralph Giles giles at xiph.org
Fri Nov 14 11:40:18 PST 2008

On Fri, Nov 14, 2008 at 3:43 AM, ogg.k.ogg.k at googlemail.com
<ogg.k.ogg.k at googlemail.com> wrote:

> If the use of these is seeking, chaining doesn't fit the bill as you have to
> parse the stream to know which chains you have, no ? This kind of defeats
> the purpose of skipping to a known place.

You don't have to parse the whole file, just enough to find all the
chain boundaries. That can still take some time, of course.
Prohibitively so for many segments over a high-latency interface.

We have resisted doing a seek table in the past. One of the design
goals of Ogg has always been that it be not just consumable as a
stream, but writable as well. This requires that everything be single
pass, which isn't true of a seek table. If the chapter index only
references time as Hans has described, and not byte offsets, then when
transcoding of course you could put it in at the beginning with the
expectation that the complete encode would include all the targets.

For web video, retrieving the CMML clip boundaries is equally
expensive. The solution annodex pioneered there was to have the server
extract just the CMML track (which can be represented as an external
xml file) and pass that to the client over a separate connection. That
gets you your clip->time mapping from which you can generate seek
requests without downloading the whole stream. It's effectively
preloading a cache of CMML clip data elements.


More information about the ogg-dev mailing list