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
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to