Resource icon

NVIDIA NvEnc Guide

ABOUT THIS GUIDE
The objective of this guide is to help you understand how to use the NVIDIA encoder, NvEnc, in OBS. We have simplified some of the concepts to make this accessible to a wider audience. If you think we can improve any part of this guide or find any issues or mistakes, please post below and we will be happy to update it.

BITRATE, RESOLUTION AND FRAMERATE
Encoding is all about compressing images. The smaller the size of the image, the less we must compress it and the more quality it keeps. While the same applies for framerate, a viewer can really notice a drop in FPS but not so much in resolution, so we will always try to stream at 60 FPS.

First, run a speed test to determine your upload speed (e.g. Speed Test). We want to use around 75% of your upload speed, as the game and other programs such as Discord will also fight for bandwidth.

Then, we will determine the resolution and FPS that we can use for such bitrate. Most streaming sites have recommendations (Twitch, Mixer, Youtube) on what to use. These are ours:

Bitrate.png

* Important Note for High Motion Content. If you are going to stream high motion scenes (i.e. Racing games, some Battle Royale games, etc.) we highly recommend reducing your resolution. High motion content cannot be compressed as much, and suffers from more artifacting (encoding errors). If you reduce the resolution, you reduce the data that has to be encoded, and the resulting viewer quality is higher. For example, for Fortnite, many streamers decide to stream at 1600x900 60 FPS.

Note for New and Upcoming Streamers to Twitch. Transcoding allows a viewer to view your video on a different resolution, thus requiring a lower bandwidth. Twitch only offers guaranteed transcoding to Partners; non-partners may receive transcoding, but it is not guaranteed. This is important if your viewers are on mobile phones or their internet speed is not as fast. You may want to consider streaming at a lower bitrate and resolution to lower the bandwidth required to see your channel.

Note for Streamers to Mixer. Mixer allows you to stream through the standard protocol (RTMP) or an improved one called Faster Than Light (FTL). FTL provides very low latency. However, when you use it Mixer recommends to limit your bitrate to 7 Mbps and not use B-Frames. You select this in the OBS settings > Stream, under service.
  • If you want to get the most quality, use RTMP with up to 10 Mbps and B-Frames.
  • If you want the lowest possible latency, use FTL.

RECOMMENDED SETTINGS
These are our recommended settings for OBS Studio 23.0 and up. You’ll want to test and adjust these settings using a private account where you can verify you’re happy with the results.

VIDEO TAB SETTINGS
  • Base (Canvas) Resolution: Set the resolution you normally play at. That is, your desktop resolution (if you play in borderless mode), or the game resolution you normally enter (if you play in full screen).
  • Output (Scaled) Resolution: Enter the resolution appropriate for your Upload Speed and Bitrate, as we discussed in the previous section.
  • Downscale Filter: This allows you to select a downscale filter that will provide a small image sharpness enhancement, at the cost of some encoder workload. NvEnc is very efficient and typically runs at low utilization, so we recommend using this with the Lanczos, 32 samples option for the best quality.
  • FPS: Enter the FPS appropriate for your Upload Speed and Bitrate, as we discussed in the previous section.
OUTPUT TAB SETTINGS

Simple.png
If you want an easy, out of the box configuration, we suggest the following:
  • Output Mode: Simple
  • Streaming:
    • Bitrate: Enter the Bitrate appropriate for your Upload Speed, as we discussed in the previous section.
    • Encoder: Select Hardware (NVIDIA NVENC).
    • Enable Advanced Encoder Settings: Checked. This makes the next option visible.
    • Encoder Preset: Max Quality. If you are streaming 4K resolution on an RTX 20-Series, you will want to reduce this to Quality, as the RTX cards already run image optimizations that previous generations do not.
  • Recording:
    • Recording Path: This is the directory where the videos will be saved. Make sure the hard drive you select has enough space!
    • Recording Quality: High Quality typically works for most users, but you can change this to Indistinguishable Quality if you have enough disk space or are going to do short videos (about 60 seconds).
    • Recording Format: FLV or MKV.
    • Encoder: Hardware (NVIDIA NVENC).
OTHER SETTINGS
There are 2 other things you want to configure to ensure a smooth stream:
  • Windows: Make sure you update to Windows 10 version 1903, and enable Game Mode. This version includes performance enhancements for streaming, as well as an updated Game Mode compatible with streaming.
Game Mode On.jpg

  • GPU Utilization: If your GPU utilization is above 95% Windows will start prioritizing the game over everything; this can, in some cases, make your stream lag. To solve this, OBS added an option in OBS 24.0.3 to prioritize OBS Studio over the Game. Just run OBS as Admin, and your stream will be silky smooth.
2.png

If for some reason you don't want to run OBS in Admin mode, you can also limit your GPU usage to be below the 95% threshold. To do this, you can:
  • cap FPS in-game, run the game in Borderless Windowed mode, reduce game graphics or resolution, or turn V-Sync on.
  • Run all assets at 1080p. To do that, double click on the source in OBS and under Resolution select Custom and specify a resolution equal or under 1080p.
And there you have it! We hope this helps you improve your stream quality and reach your goals. Leave us a comment if this worked for you or if you’d like us to update the guide with other info. Happy streaming!


ADVANCED SETTINGS
If you want to mess around with all settings, here are our in-depth recommendations.

Streaming Settings

Streaming Advanced.png

  • Output Mode: Advanced. This gives you access to all the settings. Let’s start!
  • Encoder: Select NVIDIA NVENC H.264 (new).
  • Enforce Streaming Service Encoder Settings: Leave this checked, this will ensure that if you enter a wrong value by mistake it gets corrected.
  • Rate Control: Select CBR. This determines the rate at which frames are going to be encoded.
  • Bitrate: Enter the bitrate appropriate for your Upload Speed, as we discussed in the previous section. Keep in mind that some platforms have a maximum bitrate (i.e. for Twitch it’s currently 6000 Kbps, for Mixer it’s 10,000 Kbps).
  • Keyframe Interval: Set to 2. Streaming platforms may limit what you can select here, and most require a setting of 2.
  • Preset: Select Max Quality. This determines how much load we put on the encoder to get more quality. NvEnc is incredibly efficient, so most users can select the maximum setting. If you get encoder overload issues, change this back to Quality. Max Quality and Quality differ in that Max Quality uses 2-pass encoding.
  • Profile: Set to High. Profile determines a group of settings in the H.264 Codec. It doesn’t impact performance and gives access to a set of features that are key to streaming, so this should always be set to High.
  • Look-ahead: Unchecked for most content, checked for low motion games. This allows the encoder to dynamically select the number of B-Frames, between 0 and the number of B-Frames you specify. B-frames are great because they increase image quality, but they consume a lot of your available bitrate, so they reduce quality on high motion content. Look-ahead enables the best of both worlds, but struggles with high motion content as it needs to change too often. This feature is CUDA accelerated; toggle this off if your GPU utilization is high to ensure a smooth stream.
  • Psycho Visual Tuning: Checked. This enables the Rate Distortion Optimization in the encoder, which greatly optimizes the way you use bitrate, improving image quality on movement.
  • GPU: 0. If you have 2 GPUs in your system, you can select which one is used to encode. This is not recommended, as NvEnc is already very efficient and the little gain you can get from using a second card is lost by having to copy the frame to the second GPU.
  • Max B-Frames: Set to 2. For low motion content (i.e. adventure games such as Tomb Raider) you can increase this to 4. B-Frames increase image quality but consume bitrate, which decreases image quality on movement. If you see pixelation or artifacting on your stream you may want to reduce this.
    • Note: If you stream to Mixer using FTL, it is recommended to turn B-Frames off. Mixer relies on WebRTC to playback FTL streams; most web clients cannot handle B-Frames, so Mixer recommends using 0 B-Frames with FTL.
Recording Settings

Recording Advanced.png

  • Type: Standard.
  • Recording Path: This is the directory where the videos will be saved. Make sure the hard drive you select has enough space!
  • Recording Format: FLV; or MKV if you use multiple audio tracks.
  • Audio Track: Leave it at 1 for default; you can add more audio tracks if you are using more sources.
  • Encoder: NVIDIA NVENC H.264 (new).
  • Rate Control: We recommend CQ, although VBR with high bitrates will also produce good results but with larger file sizes.
  • CQ Level (CQ): 15 for CQ (or less if you want higher quality).
  • Bitrate and Max Bitrate (VBR): 40,000 Bitrate; 60,000 Max bitrate. You can increase these to 100,000 and 200,000 (respectively) for higher quality.
  • Keyframe Interval: 0 or 2.
  • Preset: Select Max Quality. If you get encoder overload issues, change this back to Quality.
  • Profile: Set to High.
  • Look-ahead: Checked.
  • Psycho Visual Tuning: Checked.
  • GPU: 0. If you have 2 GPUs in your system, you can select which one is used to encode.
  • Max B-Frames: Set to 2. For low motion content (i.e. adventure games like Assassin’s Creed) you can increase this to 4.

RECORDING AND STREAMING HDR WITH HEVC AND HDR
With OBS version 28, you can stream with HEVC to platforms that support it. HEVC is an improved codec that provides 15% better encoding efficiency than H.264 (i.e. it provides quality as if you streamed with 15% more bitrate). HEVC - and OBS version 28 - also allow you to record and stream HDR content.

How to Record and/or Stream with HEVC
If you want to record or stream with HEVC, in OBS navigate to your Output window and change the Encoder to Hardware (NVENC, HEVC) for the Streaming or Recording settings, as needed.

1.png

If you want to stream with HEVC, you will also have to adjust your Stream settings. Note that HEVC live streaming is currently only supported by YouTube. To stream to YouTube with HEVC, navigate to the Stream tab and change the Service to YouTube - HLS. You may need to click Show All… to find this option.

2.png


Now you should be able to connect your YouTube account.

Finally, navigate to your YouTube Live settings on YouTube.com, and make sure that your Latency setting is set to Low or Normal (do not use Ultra Low as it is not compatible).

Streaming or Recording in HDR
HDR - or High Dynamic Range - allows you to increase the range of light of your content. You can record and/or stream with HDR.
Note that:
  • HDR content can look washed off in non-HDR displays, so you don’t want to turn this on if your display does not support HDR, or if the platform you are streaming to does not support HDR.
  • HDR requires HEVC; it’s not compatible with H.264.
In order to enable HDR, we’ll need to make sure that:
  1. You have an HDR monitor.
  2. Your Windows and Game settings have HDR turned on.
  3. We configure your full pipeline in OBS to enable HDR.
Windows and Game Settings
Start by making sure that you have HDR turned on for your Display in Windows. Right Click on your desktop > Display Settings, and turn on Use HDR.

Next, open the game you want to record or stream, go to the settings and make sure HDR is turned on. In Windows 11 there’s a feature called Auto HDR that enables a virtual HDR mode for any game. This is also a valid option.

OBS Settings
In OBS, start by going to the Advanced tab and changing the Color Format to P010 and the Color Space to Rec. 2100 (PQ).

3.png


Next, we need to adjust the Game Capture source. Double click it (or right click it and go to Properties), scroll down find the RGB10A2 Color Space. Make sure this is set to Rec. 2100 (PQ).

Your content should now be ready to be captured and/or streamed in HDR! But remember, in order to record and/or stream in HDR you need to change your encoder from H.264 to HEVC. You can visit the How to Record and/or Stream with HEVC section above to adjust this.

ABOUT NVENC
NvEnc is NVIDIA’s encoder. It’s a physical section of our GPUs that is dedicated to encoding only. This means that your GPU can operate normally regardless of whether you use this region to stream or record. Other encoders, such as x264, use your CPU to encode, which takes resources away from other programs such as your game. That’s why using NvEnc allows you to play games at a higher framerate and avoid stuttering, giving you and your viewers a better experience.

In the last two GPU generations we have made great improvements to NvEnc, helping deliver best-in-class output quality. NvEnc in the GTX 10-series GPUs provides superior quality than x264 Very Fast, the most commonly used x264 preset. And in the new RTX 20-series, NvEnc performs better than x264 Fast and on par with x264 Medium, a preset that requires an expensive dual PC setup.

One thing that is great about NvEnc on the RTX 20-series is that all GPUs have the same NvEnc with the same performance and quality, from the RTX 2060 to the RTX 2080 Ti. NvEnc also benefits from our own NVIDIA Video Codec SDK, an advanced set of tools that help improve the encoded quality and that we constantly update to help you get the best out of your NVIDIA card.

Finally, if you are using an NVIDIA GPU you have access to GeForce Experience’s Game Filters, which allow you to further improve the image quality of your viewers via software by enhancing color, adding sharpness, or introducing cool effects.

ABOUT THE GEFORCE-OPTIMIZED NEW VERSION OF OBS STUDIO
We have collaborated with OBS to improve support for NVIDIA GeForce GPUs. The new OBS Studio, version 23.0, will leverage the NVIDIA Video Codec SDK, which will greatly improve performance and reduce the FPS impact of streaming and recording. We have also tweaked some of the background settings of NvEnc to improve quality, especially for the RTX 20-Series GPUs.

HOW TO DEBUG PROBLEMS
Streaming can be very complicated, but it’s particularly hard to debug. There are many things at play when you stream, so we are going to try to provide you some help on how to identify what is going wrong and how to fix it.

Components
  • Streaming uses the following components:
  • Your PC: This includes hardware and software.
  • Local Internet: WiFi or cabled internet + your Router.
  • Your connection: To your service provider.
  • The platform: Twitch, Mixer, Youtube, etc.
  • Viewer’s Internet: Typically Wi-Fi, but can also be 3G/4G.
  • Viewer’s device: keep in mind 35% of Twitch viewers are on mobile.
If something is failing, we want to first identify what component may be failing, so we don’t go crazy trying to fix something that was never broken in the first place. Typically, this means that the first test you should do is a Speed Test to make sure that you don’t have internet problems in your local internet or your connection. Second, make sure the platform hasn’t issued an alert that they are down or are experiencing problems. Then based on what error you get, you start looking at one thing or another in your PC.

How to check what’s happening to the encode
OBS Studio includes a very useful tool: the Stats Window. To bring it up, click on View > Stats. This window will show you Lagged and Skipped frames, Dropped frames, and Encode FPS.

Stats.PNG

This window will show you:

  • FPS at which you are encoding.
  • Latency to encode each frame.
  • Missed Frames - problems with GPU.
  • Skipped Frames - problems with CPU.
  • Dropped Frames - problems with network.
Common Error Types

Stream is missing FPS
. The stats window will show missed frames. While streaming and missing frames, pull up the Task Manager > Performance, Click on GPU and check the 3D load and Encoder load.

-aBjJJdmFlTz-vhw-KGorEdVkUtcyZEjWqSXkURXXOkJ_COV8fu79UbLh7kXWzVl2WLh-E0LjH0uCHyglqy2MuW4wfyjBvWhQAiYzsjnSY8CiMiBmKMFQDc5OE6DOkFvVRG6am-n

Solutions:
  • If the 3D load is above 95%, especially at 1440p or 4K setups, Windows may be prioritizing the Game over OBS. To fix this, we have a special mode inserted on OBS 24.0.3 where you can prioritize OBS above the Game. Just run OBS in Game Mode.
  • If the Video Encode load is maxed out, we need to lower the load. NVENC can do up to 8K30, so the only way to overload it is to do 2x4K60 streams. If you are encoding 4K60, make sure that your quality setting in OBS is set to Quality, not Max Quality. Max Quality does 2 pass encoding (i.e. encodes twice), which is too much for the encoder.
Image looks very washed out. The most likely issue is trying to push too much quality with not enough bitrate. Consider reducing the resolution, and frame rate (if needed), and try again. If quality improves, then adjust until you find your sweet spot.
Author
findal
Views
117,084
First release
Last update
Rating
4.57 star(s) 7 ratings

More resources from findal

Latest updates

  1. Streaming or Recording with HEVC and HDR

    With OBS version 28, you can stream with HEVC to platforms that support it. HEVC is an improved...
  2. OBS 24.0.3 Admin Mode

    Updated Guide with info about OBS 24.0.3 new solution for high GPU encoding. Forget about...
  3. Windows 10, version 1903 is out

    Updating the guide after the Windows 10 1903 release. For this new version of Windows, the new...

Latest reviews

Please note that you can enable hardware-accelerated GPU scheduling in Windows to have OBS prioritize NVENC encoding so the game rendering doesn't slow your stream down. Running OBS in administrator mode is the other workaround. In Windows 10, search the start menu for "graphics settings", then scroll to the bottom and click "graphics settings" again (smart, Microsoft), then turn hardware-accelerated GPU scheduling on.

Read more here:
https://twitter.com/gerdelgado/status/1496657523700420608
https://twitter.com/search?q=from%3Agerdelgado%20nvenc

And you can find another NVENC guide by the author of the StreamFX plugin here:
https://www.xaymar.com/guides/obs/high-quality-streaming/nvenc/
Hi, i dont know something, more exactly, why obs is giving me an error with nvenc. please help
Perfect guide, appreciate the explanations. Exactly what I'm looking for.
Thanks !
Great guide!
F
findal
Thanks!
Top