[FFmpeg-devel] lavc/libvpxenc: Deprecate lossless option
Gyan
ffmpeg at gyani.pro
Fri Feb 8 07:08:40 EET 2019
On 08-02-2019 03:31 AM, Carl Eugen Hoyos wrote:
> .
> No strong opinion here, I hadn't realized that -crf 0 only works with
> newer versions.
>
> Can you explain why crf alone has no effect and needs -b:v 0?
> Isn't this a bug both with libvpx and libaom?
>
With crf present but VBV params absent, VPX operates using a constrained
Q RC mode , where the target bitrate acts as a ceiling. Since acvodec
has a non-zero default -b of 200 kbps, this produces undesirable
effects. If set to 0, VPX switches to constant quality.
I do see this block though,
if (avctx->codec_id == AV_CODEC_ID_VP9 && ctx->lossless == 1) {
enccfg.rc_min_quantizer =
enccfg.rc_max_quantizer = 0;
} else {
if (avctx->qmin >= 0)
enccfg.rc_min_quantizer = avctx->qmin;
if (avctx->qmax >= 0)
enccfg.rc_max_quantizer = avctx->qmax;
}
Looks like the quantizer range is disabled only by using the deprecated
option, or has this changed?
Also, with libvpx v1.7.0-1758, I get different results for -crf 0 -b:v
0 vs only -lossless 1, with the latter producing a slightly larger
file, and its result showing a slightly larger SSIM score. Although
neither produces a SSIM of 1, like libx264. Not truly lossless?
Gyan
More information about the ffmpeg-devel
mailing list