[MEncoder-users] [mpeg4 @ 0x86f46cc]Error: 2pass curve failed to converge

Corey Hickey bugfood-ml at fatooh.org
Fri Oct 27 05:21:59 CEST 2006


RC wrote:
> On Tue, 24 Oct 2006 23:03:49 -0700
> Corey Hickey <bugfood-ml at fatooh.org> wrote:
> 
>> If so, you can try this simple patch.
> 
> Well, that helps with the problem I described, but in the testing
> process I found another odd ratecontrol bug that this patch doesn't
> really fix.
> 
> If I encode the first past with vqscale=2, then the second-pass with a
> bitrate of 1000, it reports the bitrate is too low, and encodes at an
> average of 1300.  That seems very strange, because it has no problem
> encoding to 1000 when I use the bitrate for the first pass as well. 

Lavc's 2-pass ratecontrol doesn't do particularly well when the first
pass is very different from the second. I was going to give you an
explanation, but I got bogged down in parts I don't understand and kept
reading code in circles. For now, all I can say is that lavc decides
quantizers for the second pass according to how it previously decided to
allocate bits on the first pass. If the first pass had widely different
constraints on quantizers or bitrate, the statistics about each frame
won't be as applicable to how lavc is going to encode the corresponding
frame in the second pass.

> I was trying this test because I noticed vqscale=31 is faster, and
> wanted to compare the pass2 PSNR with each pass1 method:
> vbitrate=1000/vqscale=31/vqscale=2.

Let me know what you find out. I've never gotten anywhere by specifying
a substantially different bitrate or qscale for the first pass. See
above, but feel free to experiment.

-Corey



More information about the MEncoder-users mailing list