[foms] Proposal: adaptive streaming using open codecs
jeroen at longtailvideo.com
Tue Oct 19 01:06:49 PDT 2010
On Oct 19, 2010, at 2:23 AM, Conrad Parker wrote:
>> Every chunk should be a valid video file (header, videotrack, audiotrack). Every chunk should also contain at least 1 keyframe (at the start). This implies every single chunk can be played back by itself.
> What is the expected duration of a chunk?
Chunks are generally 2 - 10 seconds in length.
> For at least Vorbis and Theora tracks in Ogg, including the headers to
> make a valid file would require a complete copy of the codebooks,
> adding ~3-4kB of overhead per track to the start of each chunk. I
> assume this also applies to Vorbis in WebM (but not VP8?).
> We would also need to specify where in the available chunks global
> information goes, such as Ogg Skeleton or Matroska Chapters, and how
> (or if) to handle seek tables, cueing data etc.
> It might defeat some of the point of adaptive streaming to have
> repeated information at the start of each chunk. Perhaps it would be
> cheaper to just specify that chunks are a sequence of video frames
> (ie. a sequence of pages/clusters beginning with a keyframe)?
For one, I don't think it's necessary to offer seeking (seekpoints index) inside a chunk, should a chunk have more than 1 keyframe. Restricting chunks to 1 GOP might also be possible.
Overall, it would be nice to have chunks contain the bare ebml/header/metadata to make it be a "valid" file. Everything beyond that should probably not go inside chunks (but adaptive shouldn't break if it is included). Note the manifest files more or less take over the role of global information container.
More information about the foms