[Matroska-devel] LibMatroska example question

Armin Müller a1muelle at edu.uni-klu.ac.at
Wed Feb 1 09:57:56 CET 2006

I tried the multiplexer from the x264 project and it is really simple  
to use and integrate. I managed to get the frame and header-writing  
done, but I have still some issues with the codecPrivate data, which  
is not so important at the moment.

One track for muxing is ok, but my question is, if you plan to extend  
the multiplexer to two (or more) tracks. I would need at least one  
audio and one video for my use. Although you have written that it is  
easy to extend to multiple tracks, it is a rather big challenge for  
me. And I don't want to hack some piece of unstable code together  
when there will be a multi-track version in near future.

oh, the link to our project ViTooKi (VideoToolKit) is  
vitooki.sourceforge.net the matroska muxing code is currently not in  


Am 26.01.2006 um 12:05 schrieb Mike Matsnev:

> On Thu, Jan 26, 2006 at 11:30:51AM +0100, Armin M?ller wrote:
>> I tried to adapt my muxing application to use pointers instead of the
>> & in the variable definition, but i ran into troubles again.
>> I read parts of the source code of VLC (which does not contain a
>> matroska multiplexer) and mkvmerge. MkVMerge is a great application,
>> but it is really hard to understand because of all the beatiful
>> separation of functionallity into seperate modules.
>> Doesn't there exist a simple sample application that only takes two
>> files (audio and video) and multiplexes them into one matroska file.
>> This programm should not have all the bells and whistles that e.g
>> MkvMerge has, because of learning how to se the pure multiplexing in
>> own applications.
>> In my application I want to save two (or later more) streams
>> interleaved (one video, one audio, one video, ...) into a matroska
>> file. So I have a class MKIO that has a method
>> bool writeFrame(Frame* frm, int trackId);
>> I want to have all the necessary variables defined as class variables
>> (KaxSegment, KaxTracks, ...) because I instantiate the Matroska
>> Header on first writeFrame and then on each additional call of this
>> method I "add" a Frame to the container (KaxCluster->AddFrame). So I
>> have to have access to some variables, that need to keep their values
>> throughout method calls.
>> I follow this list quite some time and I notized that several people
>> would need some simple sample applications for matroska with quite
>> some good documentation (also inline code documentatio).
>> I want to use Matroska as the main container format for our
>> multimedia framework, because I think it offers a lot of features
>> that allow us to store additional intormation (even as a kind of
>> metadata serialization of our internal metadata structure).
> You may want to take a look at x264 project, I've written a mini-muxer
> for it. It only supports one track atm, but extending it is fairly
> easy. It doesn't use libmatroska/libebml, but the API is much
> simpler.
> _______________________________________________
> Matroska-devel mailing list
> Matroska-devel at lists.matroska.org
> http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel
> Read Matroska-Devel on GMane: http://dir.gmane.org/ 
> gmane.comp.multimedia.matroska.devel

More information about the Matroska-devel mailing list