[MPlayer-dev-eng] making -mc 0 the default in mencoder

D Richard Felker III dalias at aerifal.cx
Sun May 9 02:00:06 CEST 2004


Hey guys, I propose we make -mc 0 the default in mencoder. I've
already recommended using it in my in-progress encoding guide, but IMO
lots of users are too lame to RTFM so they won't know to use it.

The letters "mc" stand for maximum correction, the maximum amount
mencoder is allowed to adjust a/v sync per frame. When mc!=0, mencoder
performs and elaborate feedback process to "correct" a/v sync, similar
to the way mplayer does when playing files. But what works (sort of)
for playing files does not work for generating fixed-fps output!! If
you've ever tried ripping DVDs, I'm sure you've noticed several
duplicate frames at the beginning, followed by the same number of
skipped frames a few seconds later, or vice versa. Similar stupidity
happens throughout the encoding process. Furthermore, with mc!=0, the
output a/v sync (which frames get skipped or duplicated) is dependent
on the output audio format and codec, i.e. you'll get different
results when using -oac pcm versus -oac mp3lame. This alone proves
that the algorithms used are totally hopelessly broken!! And
furthermore, it means you can't use -oac pcm during pass 1 and -oac
mp3lame only for pass 2...

With mc==0, mencoder will still correct a/v sync in the output with
frame skips and duplicates, but only based on the sample counts
(frames for video, samples for audio)! It won't try to compensate for
drifting pts in the source file (which is usually caused by
mplayer-G1's buggy demuxer layer which gives wrong/absent pts, not by
actual timer drift). For DVDs and (properly synced) AVI source, mc==0
will always give the 100% correct behavior!

Since so many people on -users complain about broken a/v sync when
ripping DVDs, and since it seems impossible to teach them all to use
-mc 0 (even with a Fine Manual, since no one can RTFM...), I would
like to make mc==0 the default. This way mencoder will be 100% correct
in 99% of cases, rather than 50% correct (bad but semi-working a/v
sync) in 100% of cases. Users who need drift correction can always
specify -mc manually when encoding from broken source files.

If you object to this change, please speak up and we can discuss it.
If there are no objections (or more people for it than against) by
late next week I'll commit!

Rich




More information about the MPlayer-dev-eng mailing list