Dominik 'Rathann' Mierzejewski wrote:
Hello. I'm trying to encode the 2001: A Space Odyssey DVD to mpeg4 using lavc on to 2 CDs, preserving original audio stream. Unfortunately, mencoder seems to be unable to complete the second pass, the assertion libavcodec/ratecontrol.c:587: [...] if(s->flags&CODEC_FLAG_PASS2){ assert(picture_number>=0); assert(picture_number<rcc->num_entries); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rce= &rcc->entry[picture_number]; wanted_bits= rce->expected_bits; }else{ rce= &local_rce; wanted_bits= (uint64_t)(s->bit_rate*(double)picture_number/fps); } [...] always fails on the last frame. Even stranger, this happens only if I encode chapters 1-16 or 1-17. If I encode only chapter 16 or 17, all is fine.
I've tried MEncoder-CVS 2003/11/30 and 2003/12/02 (with the same libavcodec versions), both exhibit the same behaviour
That sounds somewhat like a problem I reported a long time ago: http://www.mplayerhq.hu/pipermail/mplayer-dev-eng/2003-August/020145.html The problem you found differs from mine in two ways: 1. Originally, encoding would crash without b-frames, and corrupt the 2pass log when b-frames are enabled. 2. I could reproduce mine by encoding only the end. I eventually pestered Michael Niedermayer with a personal email, and he fixed the problem such that I haven't seen it appear since, but perhaps yours is related. Is there any way you can narrow down the options you use until you can blame it on one particular lavcopt ? I know it takes forever... If you get Michael's attention, he'll probably fix it. -Corey