[FFmpeg-devel] [PATCH] Matroska Muxer

Aurelien Jacobs aurel
Wed Sep 5 21:59:46 CEST 2007


On Wed, 5 Sep 2007 15:24:09 -0400
Alexander Strange <astrange at ithinksw.com> wrote:

> 
> On Sep 5, 2007, at 1:52 PM, Michael Niedermayer wrote:
> 
> > Hi
> >
> > On Wed, Sep 05, 2007 at 07:37:18PM +0200, Reimar D?ffinger wrote:
> >> Hello,
> >> On Wed, Sep 05, 2007 at 01:13:30PM -0400, Alexander Strange wrote:
> >>> On Sep 5, 2007, at 9:33 AM, Reimar D?ffinger wrote:
> >>>> On Wed, Sep 05, 2007 at 03:15:06AM -0400, David Conrad wrote:
> >>>> [...]
> >>>>> As for using it, pretty much any valid command line that starts  
> >>>>> with
> >>>>> ffmpeg and ends with .mkv should work, e.g. "ffmpeg -i blah.ogg -
> >>>>> vcodec mpeg2video -acodec ac3 blah.mkv" It can also be used from
> >>>>> mencoder, e.g. "mencoder blah2.avi -ovc lavc -oac faac -of lavf -o
> >>>>> blah2.mkv" but it's possible to produce invalid files that way.
> >>>>
> >>>> Could you give details how and under which circumstances this  
> >>>> produces
> >>>> invalid files?
> >>>
> >>> It creates native-order H264/MPEG4 streams for -ovc x264 and -ovc
> >>> xvid, but stores avi-style streams.
> >>
> >> Well, I somehow feel this is a bit of a design problem with mkv,
> >> requiring special handling for each supported format (though at least
> >> the handling is much more sane than ogm and possibly more sane  
> >> (but less
> >> consistent) than for AVI).
> >> I'm not sure there is a really good fix (beyond special cases for the
> >> most common codecs), since mencoder is supposed to
> >> handle e.g. binary codecs nobody ever heard of and are not in SVN  
> >> - so
> >> for these cases avi-style seems to be the only option.
> >>
> >>> There's no extradata and all frames have increasing pts even if b-
> >>> frames are on. (like the big warning says, I guess)
> >>
> >> That's exactly why I asked, because the warning is gone since  
> >> quite some
> >> time I thought...
> >
> > vglobal=1:aglobal=1 are needed to get the proper extradata
> > this should be automated yes and a patch is welcome (the muxer say  
> > through
> > a flag if it needs global stuff and that should be passed to te  
> > encoder
> > somehow ...
> >
> > and the monotone PTS are odd, it was working properly when i  
> > disabled the
> > warning though that was with mpeg4 encoding IIRC
> >
> > can someone check where the pts go wrong?
> >
> 
> The pts/frames are actually in the right order with -ovc lavc,
> but with -ofps 120000 the video goes 4x as fast as it should (as if  
> it was -fps 120000),
> and without it the a/v goes out of sync since it's VFR.
> Anyway, these are architectural failings in mencoder, so this is  
> isn't really the right thread.
> 
> The only problem I see in the muxer so far is it sets "V_MPEG4/ISO/ 
> SP" instead of ASP when I have b-frames on.
> This is because it's listed first in matroska.c, and matroskaenc.c: 
> 548 just takes the first string with the right codec ID.
> With this it always sets ASP instead of SP, which isn't really right  
> either but is what mkvmerge does:

Patch OK (but I'm not mkv muxer maintainer, so let's David approve it's
first patch on code he maintains ;-).

Aurel




More information about the ffmpeg-devel mailing list