[matroska-devel] Packed bitstream/dx50 VOP handling for AVIs with B-frames in MP4creator ?
Christian HJ Wiesner
chris at matroska.org
Fri Jun 6 12:52:43 CEST 2003
am sending this email to you, but copied to the other developers of the
MPEG4IP project also, the matroska development mailing list and also
some people helping us with MP4 support .
Please allow me to introduce myself, i am one of the project admins of
the matroska opensource container project on http://www.matroska.org.
Our goal is too create a general use audio/video container format,
focussed on storing/editing and support for all existing codecs. More
info is on our homepage, as well as the specs and the tools to
play/create/edit matroska files.
We have plans to make a transmuxing tool to be able to mux the content
of MP4 files into matroska files ( .MKV ), so they can easily be edited
in VirtualdubMod ( http://sf.net/projects/virtualdubmod ). This is
possible because matroska was designed for high editability, and it
doesnt even require the help of the codec for this. There are loud
voices from users asking us to do that, so they can transmux their MP4
files to MKV, edit them in VirtualdubMod and then remux the files to MP4
finally, in a lossless process. matroska, in this case, is only used as
an interims storage format for easy editing of MP4 files. We dont have a
problem with that, we understand MP4 has a huge advantage as there will
be hardware support for MP4 soon, while this is unlikely to ever happen
Based on what is said above, i'd like to ask you the following questions :
1. To remux the MKV files into the MP4 format, after editing them in
VirtualdubMod or any other editing tool ( we will maybe have a Vegas
Video plugin soon ), your tool MP4creator would need the ability to
parse them. Could you think of adding libmatroska ( GPL/QPL ) to
MP4creator, and allow transmuxing of MKV files also ? We will gladly
help you on how to read them, the library is quite easy to use and has a
lot of intelligence built in menahwile to assist developer who want to
2. When parsing AVI files for muxing into MP4, how do you handle
B-frames ? As AVI doesnt normally have support for b-frames, DivX
Networks introduced a hack with their so-called dx50 VOP mode, inserting
dummy frames into the AVI as placeholders and packing the b-frame itself
into the same chunk together with the I/P frame it is referencing to.
XviD does that also, but if offering a so-called 'packed bitstream' mode
also as alternative. IN both cases an AVI parser, reading the MPEG4
frames , would have to get rid of the dummy frames and reorder the
b-frames such that coding order is achieved in the final MP4 file. How
do you handle that from mp4creator, if at all ? How do you overcome the
lagging problem ? Would MP4 files, when created with mp4creator from AVI
files with B-frames, be fully MP4 spec compliant if no frame reordering
is done ?
Thanks in advance for you answers
More information about the Matroska-devel