CRF for NvEnc


I’m unable to find any mention of CRF in the NvEnc documentation and the forum. There are quite a few speculations to be found online, in relation with ffmpeg (as in “doesn’t seem to be supported”), but nothing really definite nor up-to-date. Can anybody from nvidia please officially comment on this? In case it really isn’t supported, is there a technical reason or will it be added in the future?


In case anybody got the same question: So I finally learned that CRF is not part of the standard, but a feature specific to x264 and x265 encoders. As such, it is not likely to show up in future releases of NvEnc.

There is something similar…but you must use initial QP 1, max bitrate for your chosen level (4.1?), VBR rate control and Target Quality.

Read NVENC_VideoEncoder_API_ProgGuide.pdf page 14.

averageBitRate = maxBitRate (eg HEVC L5.1 38400kbps) as not to set any bitrate constraint.
targetQuality = use value around 27, this will control the level of quality and bitrate. Increase the value to lower the quality and decrease the value for better quality.
enableAQ = 1
enableInitialRCQP = 1
initialRCQP = 1 = must be at 1.
enableLookahead = 1
lookaheadDepth = 32 max

If you are using pascal gpu for HEVC encoding, enableWeightedPrediction = 1 and use high bit depth. 10 bit maybe? Turn off W.P. for H264 encoding.

In case if you use staxrip GUI

Don’t forget to find and enable Weighted prediction if you have pascal gpu.
That pic is old after all.
So…change the bitrate to 38400 for level 5.1
And select “NVencc(avcuvid native)” as Decoder.