Question / Help CRF settings seems to not apply except 0 value

rebjorn

New Member
Heya,

So I've been playing around with settings for some time and I've noticed something. If I set the CRF values to anything between 1-20 I see no subjective quality difference and there's no difference in file size either. However, if I set CRF=0 and compare it to a similar clip where all other settings are the same, the file size and subjective quality impression skyrockets, as in .. the file size is like 15-20 times higher than the clip with the same settings and the only difference being CRF=1 instead of 0 and it looks much much better, too.

I realize that setting CRF=0 basically means asking a tall order but my system handles it well so that's beside the issue.. I'm just a bit confused about not seeing much or any difference at all for the values 1-20 and that the file size and subjective quality impression between 0 and 1 is so profound. Please help me understand :-)
 

R1CH

Forum Admin
Developer
Are you disabling the VBV system? If not, setting CRF won't do anything noticeable since it will be restricted by VBV. CRF 0 is special since it enables lossless High444 encoding and disables many other parts of x264 in the process.
 

rebjorn

New Member
Thanks. I did some quick googling and found what you're talking about, as described by you here.

So basically disabling the Buffer Size is a necessity for using low custom CRF values. One thing that immediately caught my attention and that I'd like to mention is that you can't just untick the checkbox for 'Use Custom Buffer Size', you have to keep it checked and input a value of 0 for it to work. Just in case someone else stumbles upon this thread.

So - I have my answer, thanks R1CH, you pointed me in the right direction. I use your Twitch Analyzer, that's really helpful as well. I'm still a bit confused about what good a filesize of 10-11 MB/sec at CRF=15 will do for an actual live stream with limited bit rate though! Say I stream at 2750 bitrate with that filesize/sec.. what's going to happen here? :-)
 

R1CH

Forum Admin
Developer
CRF should only be used for local recording. If you try to stream with it the bitrate variations will cause massive lag spikes and send you well over the maximum recommended bitrates for live streaming.

VBV overrides CRF as you discovered, so setting CRF 15 with VBV of 2750kbps will just basically stream at a lower quality CRF at 2750kbps unless there's no motion.
 

rebjorn

New Member
Thanks. I did another quick test, monitoring my upload rate.

It seems a CRF value of 20-21 would probably be OK but anything lower might start to chop up the quality a bit too much and it might not be the best balance adjustment one can make, taking other settings into consideration. The important thing is of course subjective quality perception. A value of 20-21 might not seem like much of a difference to 22-23 but it looks like it is. If I'm not mistaken the default value is 23, so bringing it down to 20 is actually a big deal.

I recorded 1 clip @ 20 CRF:
592.88 KB / sec

Then another @ 23 CRF:
423.25 KB / sec

Bitrate fluctuations for actual live streaming are very high with these settings. Disabling Custom Buffer size seems to just allow bitrates to spike way too much no matter what CRF setting I'm using. Might be best to just keep it at default value I take it.
 

R1CH

Forum Admin
Developer
Yeah, VBV off is not suitable at all for live streaming due to the fluctuations.
 
Top