slhomme at matroska.org
Thu Nov 11 05:45:56 PST 2010
On Thu, Nov 11, 2010 at 11:17 AM, Pierre-Yves KEREMBELLEC
<pierre-yves.kerembellec at dailymotion.com> wrote:
> Well, if carefully designed, such intelligence can prove very useful to reduce the number
> of files effectively. See here for an example of such implementation:
Interresting. To clarify things on the MKV/WebM side that you don't
support yet. I think it's easier to send Matroska chunks on the fly
that MP4. Basically these chunks don't need a Cues section (nor
chapters, tags, etc or even Meta Seek). So the header is fixed and the
same for all chunks (all you need it set an "unknown" on the high
level Segment structure). They copy as much Clusters you need from the
source file. I think that's basically what Fluendo/GStreamer are doing
on their HTTP server of live WebM content. They don't even bother
cutting the source file on Cluster boundaries, but in the case of
chunks that are supposed to join correctly, you want to avoid some
false alarm in trying to find the boundary you want.
If you look at this document: http://www.matroska.org/technical/order/index.html
You only need Segment Info, Track Info, Clusters. These are all
contained in a Segment, which can have an undefined/infinite size. So
the server doesn't have to cache data in memory to know the exact size
before "closing" the Segment. Same thing for all the Clusters,
although they should typically match those of the original WebM file.
Plus Clusters are usually around 2s and for WebM the video should
start with a keyframe, so no extra logic needs to be applied here.
This kind of simplistic files/chunks will work fine in any known
player Matroska players.
More information about the foms