Changes between Version 34 and Version 35 of Encode/AV1
- Timestamp:
- May 19, 2022, 3:29:05 PM (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Encode/AV1
v34 v35 129 129 SVT-AV1 (`libsvtav1`) is an encoder originally developed by Intel in collaboration with Netflix. In 2020, SVT-AV1 was adopted by AOMedia as the basis for the future development of AV1 as well as future codec efforts. The encoder supports a wide range of speed-efficiency tradeoffs and scales fairly well across many CPU cores. 130 130 131 To enable support, FFmpeg needs to be built with `--enable-libsvtav1`. For options available in your specific build of FFmpeg, see `ffmpeg -help encoder=libasvav1`. See also [https://www.ffmpeg.org/ffmpeg-all.html#libsvtav1 FFmpeg documentation] and the [https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/master/Docs/svt-av1_encoder_user_guide.md upstream encoder user guide].131 To enable support, FFmpeg needs to be built with `--enable-libsvtav1`. For options available in your specific build of FFmpeg, see `ffmpeg -help encoder=libasvav1`. See also [https://www.ffmpeg.org/ffmpeg-all.html#libsvtav1 FFmpeg documentation], the upstream [https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/master/Docs/svt-av1_encoder_user_guide.md encoder user guide] and [https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/master/Docs/Parameters.md list of all parameters]. 132 132 133 133 As of FFmpeg 5.0, relatively few encoder options are supported by FFmpeg. However, since 2022-02-24, the FFmpeg git has supported `-svtav1-params`, which was introduced in SVT-AV1 0.9.1 for passing encoder options. 134 134 135 CRF is the default rate control method, and while VBR and CBR are also available, as of SVT-AV1 0.9.1 they're a work-in-progress and only recommended for "demos, experimentation, and further development uses" as per encoder output.135 CRF is the default rate control method, but VBR and CBR are also available. 136 136 137 137 == CRF == … … 145 145 }}} 146 146 147 Note that the `-crf` option is only supported in FFmpeg git builds since 2022-02-24. Prior to this, the CRF value is set with `-qp`.147 Note that the `-crf` option is only supported in FFmpeg git builds since 2022-02-24. In versions prior to this, the CRF value is set with `-qp`. 148 148 149 149 The valid CRF value range is 0-63, with the default being 50. Lower values correspond to higher quality and greater file size. Lossless encoding is currently [https://gitlab.com/AOMediaCodec/SVT-AV1/-/issues/1636 not supported.] … … 163 163 Since SVT-AV1 0.9.1, the encoder also supports tuning for visual quality (sharpness). This is invoked with `-svtav1-params tune=0`. The default value is 1, which tunes the encoder for PSNR. 164 164 165 Also supported since 0.9.1 is tuning the encoder to produce bitstreams that are faster (less CPU intensive) to decode, similar to the `fastdecode` tune in x264 and x265. This feature is invoked with `-svtav1-params fast-decode=X`, with X being an integer from 1 to 3 ([https://gitlab.com/AOMediaCodec/SVT-AV1/-/commit/0b9ed232adb14846d57fa62c15b5811e52f8034a expanded] to 1-4 in git versions since 2022-03-15). Higher numbers result in easier-to-decode video.165 Also supported since 0.9.1 is tuning the encoder to produce bitstreams that are faster (less CPU intensive) to decode, similar to the `fastdecode` tune in x264 and x265. Since SVT-AV1 1.0.0, this feature is invoked with `-svtav1-params fast-decode=1`. 166 166 167 In 0.9.1, decoder tuning is only supported for presets from 5 to 10; this was expanded to cover presets 0 to 4 in the git repo on 2022-03-15. The level of decoder tuning supported varies by preset. Presets 0-4 support levels 1-4, presets 5-7 support levels 1-3, presets 8-9 support 1-2, and preset 10 supports level 1.167 In 0.9.1, the option accepts an integer from 1 to 3, with higher numbers resulting in easier-to-decode video. In 0.9.1, decoder tuning is only supported for presets from 5 to 10, and the level of decoder tuning varies between presets. 168 168 169 169 == Keyframe placement == 170 170 171 By default, SVT-AV1's keyframe interval 2-3 seconds, which is quite short for most use cases. Consider changing this up to 10 seconds with the `-g` option ; `-g 240` for 24 fps content, `-g 300` for 30 fps, etc.171 By default, SVT-AV1's keyframe interval 2-3 seconds, which is quite short for most use cases. Consider changing this up to 10 seconds with the `-g` option (or `keyint` in `libsvtav1-params`); `-g 240` for 24 fps content, `-g 300` for 30 fps, etc. 172 172 173 173 Note that as of SVT-AV1 0.9.1, scene change detection is not considered to be in an optimal state and is disabled by default. This means that the default behavior is to place keyframes at set intervals instead of at scene changes and other optimal locations. Scene change detection can be turned on with `-sc_detection 1` or via the svtav1-params option `scd=1`.
