Question / Help Differents between NVENC Low Latency and normal?

Status
Not open for further replies.

FlikGP

New Member
I have a Nvidia GTX 750 Ti and like to stream with NVENC, because my CPU is a "high end toaster", so its very bad.
My question is, what are the differents between the NVENC presets Default, Low Latency, High Quality - High Quality Low Latency and NVD Default?
I can stream only in 480p with 700 kbit/s.
Here is an example of my "quality": http://www.hitbox.tv/video/181662
 

Boildown

Active Member
How exactly is the 750 Ti a "toaster"? Its one of the lowest power consumption video cards on the market, it is actually distinguished by this fact above anything else.

In any case, it is the first of the new Maxwell-based GPUs, and I have one in my encoder PC. With it you should be able to do 1080p60 NVEnc encoding on High Quality preset, which is the highest quality preset available, so its the obvious choice.

To answer your question, the various presets offer various tradeoffs between speed and quality and latency (i.e. how long the encoder works on the input before it spits out the output). Most or all streaming services have so much built-in latency that its pointless to make the quality sacrifice to save a tiny bit of latency. Avoid the low latency presets and use one of the others.

With a 750 (Ti), you can use the High Quality preset, whereas every other NVEnc-capable video card currently on the market will want to use the lower-quality High Performance preset unless they're streaming a low enough resolution/framerate.

The bad news is that even with the best preset, NVEnc's quality per bitrate is pretty bad. Its only good for recording to the hard drive, not for streaming. Use x264 for streaming, or don't expect high quality results.
 
Last edited:
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.

'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.

The 'Low Latency' presets add extra processing to try to keep frames at a constant size. Frames can be decoded and displayed in real-time without the need for a buffer. This is good for applications like remote gaming and videoconferencing where every millisecond counts, but it significantly reduces picture quality.

All of the presets are fast enough to be used for real-time encoding; however, if you were encoding multiple streams at a time, you might need to use the faster presets.

In terms of quality, I would rank the presets as such:

NVDefault > High Quality > High Quality Low Latency > Low Latency

The High Quality Low Latency preset preserves more detail than the High Quality preset, but it also generates a lot of blocky artifacts, making it end up looking worse in most cases.

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.
 
Status
Not open for further replies.
Top