[FFmpeg-devel] Assert failing in libavcodec - ratecontrol.c

Neil Brown neilb
Tue Jul 24 22:25:58 CEST 2007


On Sunday July 15, wzrlpy at arsystel.com wrote:
> >>
> >> is this reproduceable with command line ffmpeg? if yes please provide
> >> full uncut output and command line parameters
> >
> > I was hoping someone would know what those asserts really meant and we
> > could work backward from there.....
> > But I can try working forward.  It would probably be easiest if I
> > could feed a number of images (e.g. jpegs) into ffmpeg for it to
> > encode into an mpeg.  I couldn't see anything obvious in the man page
> > which would allow this.  Is there a way to do that?
> 
> Yes: second entry in FAQ. (http://ffmpeg.mplayerhq.hu/faq.html)

Thanks.

Ok, here is the command line:

 ffmpeg -i tmp/%d.jpg -i_qfactor 1.25 -i_qoffset -0.8 -b 20000000 /tmp/xxx.mpeg

where 'tmp' is a directory containing 500 file, the first 250 all the
same, and the next 250 also all the same, but different to the first
250. All files 720x576.

I tried reducing the input set, and with 12 of one image and 1 of the
other, it will 
ffmpeg: ratecontrol.c:756: ff_rate_estimate_qscale: Assertion `q>0.0' failed.

This is the assert immediately after the call to get_diff_limited_q.

The numbers 'i_qfactor' and 'i_qoffset' are the defaults set by the MLT
framework.

Are they bad, or is ffmpeg failing to handle them properly?

I had put some tracing in get_diff_limited_q, and when it returned
negative,
pict_type was I_TYPE
 last_p_q was 0.631657

This causes q to be calculated as -0.010429.
last_non_b_pict_type was P_TYPE so no further changes were made to
'q'.

Thanks,
NeilBrown





More information about the ffmpeg-devel mailing list