My Problem

I am converting a .mov (h264) file to VP9 / WebM using ffmpeg, and I don't know what the CRF numbers mean.

What Have I Tried

I have read this ffmpeg manual about 2-pass conversion, which states that:

To trigger this mode, you must use a combination of -crf and -b:v

In Google's VP9 documentation, I see that:

-crf Sets maximum quality level. Valid values are 0-63. Lower numbers are higher quality

Note: Other codecs in FFmpeg accept the -crf parameter but may interpret the value differently. If you are using -crf with other codecs you will likely need different values for VP9

However, on the ffmpeg documentation, I only found reference to CRF for .h264, not for the target VP9:

The range of the CRF scale is 0–51, where 0 is lossless, 23 is the default, and 51 is worst quality possible

So, there seems to be a conflict between the VP9 CRF range on Google's site and the ffmpeg CRF range on the ffmpeg site.

My Question

What is the scale for CRF values using ffmpeg to encode in vp9 / WebM format?


libvpx is a software encoder developed by Google, and used in ffmpeg, to encode VP9. And as the Google docs say, 0-63 is the applicable range for encoding VP9 with libvpx.

  • Tested and confirmed on Linux version of ffmpeg it allows up to 63. – MrPotatoHead Dec 21 '20 at 15:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.