[FFmpeg-devel] [PATCH] Change libaom default to crf=28.

James Zern jzern at google.com
Thu Aug 15 03:35:04 EEST 2019


Hi,

On Tue, Aug 13, 2019 at 8:23 PM elliottk
<elliottk-at-google.com at ffmpeg.org> wrote:
>
> Current default is 256kbps, which produces inconsistent
> results (too high for low-res, too low for hi-res).
> Use CRF instead, which will adapt.
> ---
>  libavcodec/libaomenc.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>

I think this is OK as it's similar to what is done for x264/5 [1].

> diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c
> index 9b4fb3b4eb..a18d11c8aa 100644
> --- a/libavcodec/libaomenc.c
> +++ b/libavcodec/libaomenc.c
> @@ -575,10 +575,10 @@ static av_cold int aom_init(AVCodecContext *avctx,
>          if (enccfg.rc_end_usage == AOM_CQ) {
>              enccfg.rc_target_bitrate = 1000000;
>          } else {
> -            avctx->bit_rate = enccfg.rc_target_bitrate * 1000;
> +            enccfg.rc_end_usage = AOM_Q;
> +            ctx->crf = 28;
>

Can we take a library default here or does it default to bitrate and
have cq_level cleared?

>              av_log(avctx, AV_LOG_WARNING,
> -                   "Neither bitrate nor constrained quality specified, using default bitrate of %dkbit/sec\n",
> -                   enccfg.rc_target_bitrate);
> +                   "Neither bitrate nor constrained quality specified, using default CRF of 28\n");
>

You may want to use the variable to produce the output in case it changes.

[1] https://bugs.chromium.org/p/aomedia/issues/detail?id=2219#c9


More information about the ffmpeg-devel mailing list