[MPlayer-users] [BUG] lavc error - 2pass curve failed to converge

Giacomo Comes comes at naic.edu
Mon Jul 17 21:40:51 CEST 2006


On Fri, Jul 14, 2006 at 10:09:00AM -0700, Corey Hickey wrote:
> Giacomo Comes wrote:
> >>Giacomo, try this with the attached patch:
> >>$ cd .../mplayer/libavcodec
> >>$ patch -p2 -R < /tmp/ffmpeg_r5422.eml
> >>
> >>I don't know if that will work -- only that it caused me some similar 
> >>problems a while ago.
> >>
> >>-Corey
> >
> >It seems to work. I have quickly tested few encoding combinations and now
> >multipass encoding is ok.
> >
> >Question: what about 1.0pre8? As it is now it does not have a working 
> >multipass
> >encoding. Should a try1 be released?
> 
> I don't know.
> 
> If I recall correctly, simply changing fabs() back to abs() isn't really 
> the right solution, since fabs() is doing what it's supposed to. 
> Changing the 0.01 threshold might be in order, or perhaps it might be 
> better to find why the threshold is being exceeded.
> 
> Can one or both of you please provide a sample file for reproducing 
> this? The only test case I had before required vmax_b_frames=2, so if 
> you have a file that has the same problem with default options then 
> debugging may be easier. Try to make the sample file as small as 
> reasonably possible; there's no need to upload a DVD image or anything 
> if only the first 500 frames are used. If you don't know how to trim 
> down the file, ask me and I'll send instructions.
> 
> Thanks,
> Corey

Hi Corey,
I finally had enough free time to better explore the issue.
As you sayd, the failure depends of the source video.

I have tested 1.0pre8 with the following sources:
The error: 2pass curve failed to converge is showed with:
mpeg (0/1/2 b-frames), avi (1/2 b-frames) 
no error with avi with 0 b-frames.

I didn't do other tests with other kind of video.

As for a sample file just use:
ftp://ftp.mplayerhq.hu/MPlayer/samples/MPEG1/zelda%20first%20commercial.mpeg
 
Example:

mencoder -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=812:vpass=1 -o test -oac copy "zelda first commercial.mpeg"
mencoder -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=812:vpass=2 -o test -oac copy "zelda first commercial.mpeg"

The intresting thing is that if I use a bitrate less or equal to 811 then two 
pass encoding is successful. If the bitrate is 812 or higher two pass encoding
fails. The value 811 is not absolute. If I add more options to mencoder then
the bitrate necessary in order to succeed is lower (~700).

The same happens if I try to make a svcd. Using the normal vbr (2500) two pass fails.
With a lower vbr (2350) it succeed.
For a dvd the vbr necessary for two pass encoding was about 3100.

To resume: if you use the file "zelda first commercial.mpeg" you should observe
two pass encoding failure if you increase enough the video bitrate.
(making an avi or an mpeg).

This is a very annoing bug for 1.0pre8.
I have found also other bugs that I will report soon on another thread.

Giacomo



More information about the MPlayer-users mailing list