Implement Constant Rate Factor to Reduce Image Loss

All modern video schemes involve the use of compression to keep the size of the video files small enough to manage. Unfortunately, the compression process also results in loss of some of the image quality. Each time a compressed image is read, recompressed and rewritten it loses something.

The repeated read, modify and recompress to rewrite process involved in video editing only exacerbates the problem. Therefore, it is important to keep our bit rates high and compression low while we are editing.

As such the Constant Rate Factor (CRF) is one of the best ways to minimize image degradation during editing. Setting the CRF to a low value will ensure the best image quality. Implementing CRF output control would be a powerful tool to use in VEAI and to manipulate video and to pass the clips to other editing applications.

This way, only the final video needs to be compressed to the size and bit rate normally for the media it is to be used on after editing.

These are a few links on the subject:

CBR, CRF, and Changing Resolution using FFmpeg

CRF Guide (Constant Rate Factor in x264, x265 and libvpx)

Great quote for this!

I’m confused because there is a CRF setting for mp4 output.
It does not work as expected though. From what I have been able to find online, CRF 17 should be about what retail Blu-Ray discs are encoded in, yet in VEAI they lose dark colors. As in, colors that should be gradually fading to black, turn into gray boxes next to black boxes. There should be no boxes.

So, I agree that something should be done about the CRF setting, but I disagree that they don’t know what it is or have not implemented it.


I’m puzzled about this, too. But I’m puzzled because I’ve never seen a place to make a CRF setting. Which version of VEAI are you referring to?

There’s lots of info on it out there. And there are pros and cons. For my use, It works much better than bit rate; especially for old, noisy stuff originally from film.

1 Like

Version 2.6.4, but 2.6.3 had it too.

1 Like

Unfortunately, it isn’t included in the upcoming V3 beta. - At least, not yet; and hopefully, it will be added prior to release.

Please vote for it.

1 Like


CLI command or not, this is valuable functionality that should be available in the video output filter and/or Preferences.

I think I’m having trouble explaining the need for CFR; perhaps we can think of it this way… Using analogies…

I’m sure that everyone knows that music studios record the original sound using very high-resolution audio. These days, I’m not certain whether it’s still being recorded on audio tape or digitally, but they record it well above the resolution you get when you buy it on a CD.

The reason that this is done is to make certain that all the editing and remixing involved in creating the final product does not cause deterioration of the performance. - They only reduce it to ‘distribution format’ at the end.

This is exactly why you should always be editing with clips produced with a low, (higher quality,) CFR level.

As for original source input, it is always the best practice to convert it to a low CFR-level before editing it. This will help prevent loss of quality. And you get better results running it through VEAI and any other editors you are modifying it with.

When I got out of design school in the 1960s there was no such thing as digital audio or video media. But we did have cameras and copying machines to use for graphic design. - In either case, every time you made a copy of an original and then made a copy of a copy you would lose image quality. - The only way to minimize this problem was to blow the image up and work on it at a much bigger scale. When finished, the final image would be “shot down” to the final size for printing or display.

Yes, it’s true, we’re working digitally these days, but compression makes the image “lossy” and editing it and then recompressing makes it lossier still.

CFR is the modern equivalent of what upscaling it was back then.

1 Like