[FFmpeg-devel] [PATCH] avcodec/libsvtav1: Add support for multipass encoding

Gustav Grusell gustav.grusell at gmail.com
Thu Nov 3 17:41:09 EET 2022


On Sun, Oct 30, 2022 at 11:21 PM Oneric <oneric at oneric.de> wrote:

> On Sun, Oct 30, 2022 at 14:10:29 +0100, Lynne wrote:
> > Sep 27, 2022, 23:06 by gustav.grusell at gmail.com:
> >
> > > Implements support for 2-pass CRF and 3-pass VBR by implementing
> > > reading and writing of stats file, and passing the pass number on
> > > to the encoder. For 3-pass VBR, the first pass should be run with
> > > '-pass 1', the second with '-pass 3' and the third with '-pass 2'.
> > >
> > > [...]
> >
> > 2-pass doesn't seem to work, the encoder complains it's not the final
> pass.
>
> fwiw, 2-pass CRF and 3-pass VBR work for me on a short sample with this
> patch applied on top of 882a17068fd8e62c7d38c14e6fb160d7c9fc446a and using
> SVT-AV1 1.3.0.
>
> Ah good to hear the patch works also with SVT-AV1 1.3.0. I hadn't found
the time to check this.


> I'm not sure if 2-pass VBR is supposed to work, though I didn't look into
> it too much. SVT-AV1 docs only mention 3-pass VBR[1] afaict and while
> requesting output already in the second pass (`--pass 2` for SvtAv1EncApp
> and `-pass 3` for patched ffmpeg) "works", the result misses the targeted
> overall bitrate even more than singlepass VBR.
>

My understanding is also that SVT-AV1 does not support 2-pass VBR, like you
say there is no
mention of 2-pass VBR in the docs. The rate-control appendix gives some
details about
how the 3-pass VBR works, as far as I understand the second pass uses CRF so
makes sense that it would miss the target bitrate.

https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/master/Docs/Appendix-Rate-Control.md#vbr-rate-control-flow

cheers,
Gustav


More information about the ffmpeg-devel mailing list