Bug Report no NVDefault preset in OBS Studio

this preset shows up in OBS Classic, but not in OBS Studio.

My brother refuses to use OBS because he is convinced that Shadowplay's NVEnc looks better than OBS's. As a result, he records stupid videos where he cannot hide the steam overlay, and they look really unprofessional. So I am trying to convince him that he should just use OBS, where he has more control over everything. But he is stubborn because of the quality difference.

I didn't want to believe him about it, because shadowplay is severely limiting in every other regard, and I refuse to use it myself. But after realizing that OBS Classic had the NVDefault preset, I thought maybe that was a useable solution. I did some comparison tests between OBS Classic with NVDefault vs OBS Studio with High Quality vs Shadowplay. I determined that the NVDefault looked pretty much identical to Shadowplay, but the High Quality looked more blocky, making it seem overall lower quality.

I found many threads about "why does shadowplay look better than OBS", which doesn't make sense to me, since they are both using NVEnc, and the program using it shouldn't make a difference. Also, "How to make OBS look like Shadowplay" threads, which are almost always concluded that NVEnc looks like crap either way, so why bother trying to get it the same crappy, and just use x264. But, the same crappy quality is never found, so the question is unresolved. Then I encountered this piece of advice from Timothy003:

'NVDefault' is the real default preset exposed by the NVENC API. It has most of the features enabled except B-frames. There is no encoder latency, since NVENC has no frame lookahead, but frame sizes vary significantly, requiring a buffer for smooth playback.

'High Quality' is essentially NVDefault with B-frames enabled. B-frames usually improve compression efficiency, but, with NVENC, they do not. I don't know if this was fixed in Maxwell, but the High Quality preset actually produces worse results than NVDefault on my GTX 670.

For general use, I would use the NVDefault preset. ShadowPlay uses something like it, and it has very good video quality. The High Quality preset would be useful if I dropped frames a lot or wanted very fast seeking. The Low Latency presets just weren't designed for our use case and subjectively doesn't look very good. Of course, you should test it yourself and see if it looks better to you.​

This all seemed to agree with my testing. So it appears that NVDefault would be the best preset to choose to match Shadowplay's quality. So the only issue really is that it is not available under OBS Studio, only OBS Classic.

If NVDefault is one of the presets that NVEnc already understands, one of the official nvidia presets, then it should just be in the list. I am speculating, but I think it was left out because it seemed redundant, especially if normally adding B-frames to x264 encodes has only a positive effect. Given that knowledge, it would be smart to assume NVDefault was unnecessary and leave it out, an improvement over classic maybe even... more streamlined. But, it seems that NVEnc does not behave as expected, the B-frames have a negative impact, and that preset did in fact have some usefulness. And, leaving it out has left us unable to choose the actual highest quality option.
 
Are you saying that one of the choices there will actually use the NVDefault preset? while under advanced mode it doesn't? It would still be a bug to not include it in the list for advanced mode.
 

Fenrir

Forum Admin
Are you saying that one of the choices there will actually use the NVDefault preset? while under advanced mode it doesn't? It would still be a bug to not include it in the list for advanced mode.

From what I understand, NVDefault is actually being deprecated, and shouldn't be used any more. The Indistinguishable Quality preset should be much higher quality than NVDefault.
 
here is the thread I am quoting from:

https://obsproject.com/forum/threads/differents-between-nvenc-low-latency-and-normal.17130/

The 'Default' preset just chooses between High Quality and High Quality Low Latency depending on your resolution and frame rate. Currently, OBS picks High Quality for 1080p60 or greater. 'Auto' would probably have been a better name for it.

Neither of these is the actual NVDefault preset. And most importantly, neither of those actually look the same quality as the NVDefault preset.
 
I personally use x264, so I am not that invested in this. I just thought: a flaw is a flaw. What you decide to do about it, is not really my concern.
 

Fenrir

Forum Admin
Have you tested those claims yourself? That post is from 2014, and NVENC has evolved quite significantly since then.

But either way, thanks for the heads up!

EDIT: Did some more research and looks like there was a bit of a misunderstanding on my end. I was reading about default, which is NOT the same as NVDefault. I'll keep digging and see what I can find.

EDIT2: Found that NVDefault and Default are the same thing. OBS Classic renamed it for some reason in the GUI, but the actual parameter being sent is default. This is definitely an option in OBS Studio, but should not yield better quality than HQ in any scenarios. See this note here: https://github.com/jp9000/obs-studio/pull/865
 
Last edited:
Top