[matroska-devel] Playing 'native' MPEG4 matroska files with ffdshow

Christian HJ Wiesner chris at matroska.org
Sun Jun 29 01:16:51 CEST 2003

Hi all, Hi Dave, Hi Milan,

some of you may be aware that i was testing DaveEL's avs2matroska on a 
very long movie recently, namely on the starwars EP2 VOBs i happen to 
have on my HDD still. It worked great, both passes completed fine, i had 
to change the XviD codec settings from VirtualdubMod ( avs2matroska 
takes the setting from the XviD registry then ), but that was not a 
problem at all.

Now the surprise :

The file generated on 1st pass ( XviD is using q=2 for every frame as 
you know, just to write the stats file ) played fine on both of my PCs, 
both with mkxds.dll 0.4.3 installed and latest ffdshow-alpha. Great work 
from Toff, who mapped the native matroska codec IDs to FourCC 'mp4v' as 
used by 3ivX MP4 splitter filter also. This makes sense, as there is no 
real difference between a native file and an AVI compatibility file if 
no b-frames are used, and thats the case for the file created on 1st pass.

The final file from 2nd pass, with max. 2 b-frames enabled, would not 
work as well, it would hang on certain frames and display it, until all 
of a sudden after a few seconds another frame would be displayed. I am 
not sure if this is only resyncing on I frames, because in practice i 
would estimate that there are more I frames, but i may be wrong. In any 
case, we expected this to happen because of the wrong timestamps given 
from our filter to ffdshow.

Now the real good news :

I tested Steve's latest experimental filter ( 
http://matroska.free.fr/downloads/mkxds-testmp4.zip ) on this file and 
with it and latest ffdshow-alpha from 23rd may both files play perfect, 
even the one with b-frames !!!!

Every player i tested would crash on seeking, but i am not sure if this 
would be caused by a bad or missing metaseek/CUE table in the file 
created by avs2matroska, or if its a result of the DShow problems Steve 
had to face when coding the filter. In any case, great work guys !!! I 
am not sure if there still is a need to bug milan about any changes in 
ffdshow, as i guess Steve adapted the timestamp handling in our DShow 
parser such that it matches with current ffdshow behaviour for MP4 
streams. Steve, if you only did this as a contemporary solution to be 
able to play the files, pls tell me, because i will try to talk to Milan 
again, so we could launch the test sample with a working and future 
proof parser and ffdshow, even if this will mean we have to wait much 
much longer for that.

If mf doesnt hurry up, and Mosu makes mkvmerge aware native files with 
b-frames so i can mux audio to it and cut out a small sample, we can 
maybe launch the native Starwars sample i am preparing ( with 2 AAC 5.1, 
1 Vorbis, 13 SRT and 2 SSA subs streams, anamorphic 1:2,35, all the 
matroska Goodies ;-)  ) sooner than his long awaited matrix reloaded 
sample trailer :-) .....



More information about the Matroska-devel mailing list