[Ffmpeg-devel] size of encoded file not continous parameter of 'vqscale'
Stefan Gehrer
stefan.gehrer
Fri Jun 9 15:00:23 CEST 2006
Darko Veberic wrote:
> Stefan Gehrer wrote:
>
>> Darko Veberic wrote:
>>
>>> i am usually encoding video with the following mencoder options:
>>> -lavcopts vcodec=mpeg4:vqscale=$vq:vhq:v4mv:trell:autoaspect:threads=4
>>>
>>> i have observed strange non-continuous behavior of the resulting file
>>> size with respect to the vbr quality parameter $vq.
>>>
>>> for example, the file size for vq=4.49 is 911M and for vq=792M (while
>>> keeping the audio settings constant). i have noticed the jumps occur
>>> around the x.5 values for the vbr quality... in such cases it is almost
>>> impossible to get the file size right (ie, close to 700M)...
>>>
>>> is this a bug (or a feature) ?
>>>
>>>
>> vqscale in MPEG4 is whole numbers only (2-31 I believe), and unfortunately
>> the range of reasonable quality encodes is in the range somewhere like 2
>> to 6.
>> So a step from one vqscale to the next has a huge impact on both quality
>> and
>> file size. If you need to hit a certain file size, do not use vqscale
>> but instead
>> make use of rate control.
>>
>> Regards
>> Stefan Gehrer
>>
>
> on the contrary, the vqscale is a floating point number (reported by
> mencoder with 6 decimal places). i am attaching a plot of file size vs
> vqscale value for some small movie chunk. as you can clearly see, the
> file size is a nice and continuous function of vqscale except around x.5
> points where you get large jumps.
Okay, I rephrase a little: you can specify a floating point number as
argument,
but the major influence on file size is the quantizer of the MPEG4
video, which
is a whole number and accounts for the steps. Other decisions during the
encoding
process seem to honor the fractional part of vqscale, hence the nice
slopes in between.
> if this jump is occuring around 700M
> we are unable to tweak the file size to match the cd size unless
> satisfied with substantially smaller size...
>
As I said, the solution is to use rate control, which chooses a
quantizer for each frame.
http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-dvd-mpeg4.html#menc-feat-dvd-mpeg4-2pass
Regards
Stefan Gehrer
More information about the ffmpeg-devel
mailing list