Can someone explain to me how NVENC/OBS work with Nvidia GPUs and the GPU load they cause?

SomeRando

n00b
Joined
Feb 22, 2023
Messages
14
I have not found answers to this and need help understanding how NVENC streams work and what they demand from the GPU in regards to load/utilization.

So if I had 2 or 3 GoPros recording and being sent to my PC and processed and uploaded through OBS to Youtube/Odysee (Note, I would be using a stream server in between so I could upload to multiple platforms simultaneously) . How does the GPU do that with NVENC*? Is there an ASIC on the GPU that does the processing and the GPU has no load while processing the GoPro streamed video? or does the GPU cuda cores or whatever process the streams and create x% GPU utilization?

How much TDP/power is required to process 1, 2, or 3 GoPro 4K120hz streams with 15Mbps bandwidth? How many streams can an A2000 handle? Its obviously not unlimited.

I eventually plan on using 2-4 GoPros and live streaming to Odysee/Youtube and trying to figure out what the most efficient way is. The GoPros also must be wireless. They can't be directly connected to PC. Efficiency is important because I plan on doing some streaming remotely like when hiking, camping, or whatever. I know CPU is too slow/power hungry. So I am curious on what the best method is. Is GPU the best or are there other ASIC specific/dedicated methods that I don't know about?

*Nvidia A2000s have no stream limit but ADA series do offer 2 streams.
https://en.wikipedia.org/wiki/Nvidia_NVENC

Thanks!!!!
 
Generally NVENC is all handled by the encoder chip on the card and doesn’t use the GPU much if at all. If you enable look ahead, psycho visual tuning or the highest quality mode then you will see some CUDA core usage. I think you would probably be in the 10% usage range or less with those options but I haven’t tested myself and you probably don’t need them enabled.

As for your particular setup, it sounds complex so I can’t really offer any insight. When I do a 4K high bit rate game capture on a second PC I am near the limits of the Turing encoder so I’m not sure how well it would handle 3 simultaneous streams, but it might work depending on the options used. Turing and Ampere use the same encoder but it was updated in the 40 series cards.
 
Generally NVENC is all handled by the encoder chip on the card and doesn’t use the GPU much if at all. If you enable look ahead, psycho visual tuning or the highest quality mode then you will see some CUDA core usage. I think you would probably be in the 10% usage range or less with those options but I haven’t tested myself and you probably don’t need them enabled.

As for your particular setup, it sounds complex so I can’t really offer any insight. When I do a 4K high bit rate game capture on a second PC I am near the limits of the Turing encoder so I’m not sure how well it would handle 3 simultaneous streams, but it might work depending on the options used. Turing and Ampere use the same encoder but it was updated in the 40 series cards.
Interesting, per the link it says Ampere uses 7th gen but you are correct they are almost the same just some minor AV1 support.

What are these? I have never heard of them.
1) enable look ahead
2) psycho visual tuning

I remember in the past doing a deep dive into NVENC vs quick sync vs CPU software encode but I forget how exactly NVENC settings work. I do remember NVENC has finally gotten close to CPU software quality but what settings is that and are there higher quality ones? Do you know exactly what the highest NVENC compression quality compares to and how demanding that would be in TDP? Is it in the 10s of watts TDP/system power?

Do you know of any other solution besides using NVENC with OBS that would provide high quality streams with minimal power usage? My goal is to be able to do 2-3 streams under 100 watt total system use if at all possible so I can get decent run time off custom battery pack.

Someone mentioned in the past on a reddit that there are special ASIC boards but the one the person showed me was only HDMI and not wireless. Unless I could get some sort of wireless HDMI cables but that would be even more bulky and a pain. I do plan on doing further research on Reddit/other more specific forums/websites but wanted to better understand NVENC first. If you got recommendations on places that would be better to ask these types of questions I would greatly appreciate the advice.

Lastly, I'll be using Tmobile 4G/5G for this and did find a windows program that does load balancing but will have to test for stability. If I absolutely have to I might be forced to get a dual SIM load balanced cradlepoint but those are absurdly expensive and would like to avoid doing that if possible.

Thanks for the input!
 
That Wikipedia page must be wrong then, Nvidia maintains their own matrix and both Turing and Ampere are listed as 7th gen not that it makes much difference. AV1 was on the decode side which is a different chip, only the 40 series with the 8th gen chip support AV1 encodes. You can see the matrix here - https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new

Look ahead will 'look ahead' and dynamically decide how many B frames to use up to the limit you specify. When I had it enabled my 1650 Super with a 7th gen encoder started skipping frames with a 4K60 recording so I turned it off. Not really sure what Psycho Visual Tuning does, it's explained in the Nvidia OBS guide as bitrate optimization - https://www.nvidia.com/en-us/geforce/guides/broadcasting-guide/

As far as quality it seems like most can get to about X264 slow these days, that's at 6000 bit rate at 1080p. I'm not sure how 4k compares but it would be interesting to see. You can see a good comparison video from Eposvox -

I'm not sure about power usage, I could do a quick test later this weekend and let you know what the GPU shows. For other solutions, Intel Quicksync is supposed to be pretty good as well and there are other videos that show comparisons but I don't have anything that does Quicksync at the moment so I have no experience with it.
 
That Wikipedia page must be wrong then, Nvidia maintains their own matrix and both Turing and Ampere are listed as 7th gen not that it makes much difference. AV1 was on the decode side which is a different chip, only the 40 series with the 8th gen chip support AV1 encodes. You can see the matrix here - https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new

Look ahead will 'look ahead' and dynamically decide how many B frames to use up to the limit you specify. When I had it enabled my 1650 Super with a 7th gen encoder started skipping frames with a 4K60 recording so I turned it off. Not really sure what Psycho Visual Tuning does, it's explained in the Nvidia OBS guide as bitrate optimization - https://www.nvidia.com/en-us/geforce/guides/broadcasting-guide/

As far as quality it seems like most can get to about X264 slow these days, that's at 6000 bit rate at 1080p. I'm not sure how 4k compares but it would be interesting to see. You can see a good comparison video from Eposvox -

I'm not sure about power usage, I could do a quick test later this weekend and let you know what the GPU shows. For other solutions, Intel Quicksync is supposed to be pretty good as well and there are other videos that show comparisons but I don't have anything that does Quicksync at the moment so I have no experience with it.

Yea, I have seen some amazing comparison videos on comparing these things. NVENC used to suck but now its comparable to Intel Quicksync. AMDs is very bad still for a variety of reason.

You mentioned x264 but I was planning on using x265 because they will offer higher quality at same bit rate or similiar quality at 1/2-2/3s the bandwidth. Is there some reason you didn't mention x265? Like it's not an option because compatibility or too slow or something?

You can run multiple streams through OBS correct? So, can you use NVENC and Quicksync at the same time with OBS? Like if I have 3 gopros sending data through wifi if "my" "4050" only supports 2 NVENC streams can I run the 3rd through Quick sync? Is there a better software to use than OBS?

Also, if you an do that test that would be hugely helpful. I would assume Nvidia newer gen GPU with 4N process node would be more efficient. Or is NVENC a totally different chip from GPU and unaffected by GPU process node shrinks? (from my googling it appears to be a sperate chip* from the GPU)

*https://www.igorslab.de/en/nvidias-nvenc-vs-cpu-encoding-the-turing-video-encoder-for-twitch-streaming-co-comparison-analysis-with-netflix-vmaf/#:~:text=For some time now, a,can convert videos quite efficiently.

What do minimum frame rates mean in these charts? Does that mean the game was running too slow due to streaming taking too many resources for the game to run at smooth frame rate? Or does that mean the NVENC encoder was too slow to keep up with the game? I would be encoding recorded video and not a demanding game with variable frame rate. Would I experience the same frame rate inconsistency or not?

https://www.igorslab.de/en/nvidias-...g-co-comparison-analysis-with-netflix-vmaf/4/
 
Last edited:
I'm assuming you are using a laptop?

The most power efficient, would be a laptop with no dedicated GPU. Only an Intel CPU, with the built in Intel Graphics. And use Intel quicksync for encoding.

OBS finally added HEVC/H.265 streaming support, for Quicksync, in the latest update.
Quicksync HEVC quality is quite good. And should be plenty good enough for GoPro content. Although if you are trying to stream 1080p/60, you may have problems with Quicksync from CPU graphics being able to maintain 1080p/60fps for HEVC. You will have to do some testing. 30fps should be fine.

If you want 1080p/60fps and can't maintain it-----Quicksync H.264 is still pretty good quality and shouldn't have an issue doing 1080p/60. Would be fine for GoPro content.

HOWEVER, you also need to test your mobile internet connection, to see if you can even push enough bitrate. If you can't upload AT LEAST a steady 5,000kbps, then you shouldn't do 1080p. and should instead do 720p.
If you are wiling to give up some power efficiency: you could get a laptop with a new Nvidia 4000 series GPU, and stream to youtube with AV1. The quality is a lot better than h.264 and h.265. And since you are using mobile internet, you may not have a lot of bitrate to work with. AV1 can do pretty good 1080p at like 4,000kbps. Normally at 4,000, you would stream in 720p with H.264.

You cannot have more than one stream encoder with OBS. You can Stream and record at the same time, with two different encoders. And all 3 cameras would have to be combined into one 'scene'. You would not be able to stream each camera separately. So basically, you would need to setup your scene so that you can press a key (or USB trigger) to change between cameras, when you want to show a specific camera.
 
I'm assuming you are using a laptop?

The most power efficient, would be a laptop with no dedicated GPU. Only an Intel CPU, with the built in Intel Graphics. And use Intel quicksync for encoding.

OBS finally added HEVC/H.265 streaming support, for Quicksync, in the latest update.
Quicksync HEVC quality is quite good. And should be plenty good enough for GoPro content. Although if you are trying to stream 1080p/60, you may have problems with Quicksync from CPU graphics being able to maintain 1080p/60fps for HEVC. You will have to do some testing. 30fps should be fine.

If you want 1080p/60fps and can't maintain it-----Quicksync H.264 is still pretty good quality and shouldn't have an issue doing 1080p/60. Would be fine for GoPro content.

HOWEVER, you also need to test your mobile internet connection, to see if you can even push enough bitrate. If you can't upload AT LEAST a steady 5,000kbps, then you shouldn't do 1080p. and should instead do 720p.
If you are wiling to give up some power efficiency: you could get a laptop with a new Nvidia 4000 series GPU, and stream to youtube with AV1. The quality is a lot better than h.264 and h.265. And since you are using mobile internet, you may not have a lot of bitrate to work with. AV1 can do pretty good 1080p at like 4,000kbps. Normally at 4,000, you would stream in 720p with H.264.

You cannot have more than one stream encoder with OBS. You can Stream and record at the same time, with two different encoders. And all 3 cameras would have to be combined into one 'scene'. You would not be able to stream each camera separately. So basically, you would need to setup your scene so that you can press a key (or USB trigger) to change between cameras, when you want to show a specific camera.
what I have to do is 4k 120hz so from what you said quicksync is too slow. But Nvidia GPUs should be plenty fast enough from what I have seen.

I have seen comparison showing h.265 having better image quality than AV1 but I have scene conflicting reports that AV1 uses the same bandwidth as h.265 and some saying it uses less than h.265. Also, aren't there a lot of AV1 compatibility issues? most devices can't run it atm right? Or does Youtube reprocess AV1 to h265 for devices that can't run it?

Why can't you stream multiple videos? what prevents OBS from doing that?
 
I did a quick test, my card uses around 20W at idle with OBS open and maxed out at 45W doing an encode. GPU usages was 22% and that didn't seem to change by enabling/disabling the psycho visualization. As far as H264 vs HEVC, if I were to stream it would be on Twitch and they only accept H264 as far as I know. For my higher bitrate recording I just stuck with H264 because it seemed the easiest to work with at the time, but I think YouTube and all the editing programs support HEVC these days so that would be fine. I'll probably just stick with H264 until AV1 becomes more common.
 
what I have to do is 4k 120hz so from what you said quicksync is too slow. But Nvidia GPUs should be plenty fast enough from what I have seen.

I have seen comparison showing h.265 having better image quality than AV1 but I have scene conflicting reports that AV1 uses the same bandwidth as h.265 and some saying it uses less than h.265. Also, aren't there a lot of AV1 compatibility issues? most devices can't run it atm right? Or does Youtube reprocess AV1 to h265 for devices that can't run it?

Why can't you stream multiple videos? what prevents OBS from doing that?
Youtube transcodes everything you upload, into formats that every viewer can watch. The point of uploading in AV1 to youtube right now, is because a higher quality source (your upload) means that youtube's transcode will look better.

Youtube also supports HEVC/H.265.

What kind of bitrate do you think you might be able to upload consistently, with your mobile internet?

Even at home, with GREAT internet, you would struggle to push enough bitrate, to make a 4k stream look good (where you are presumably walking around/the camera has a fair amount of motion in the frame) and be stable with no stutter/dropped frames. Let alone a 4K 120 stream.

And then, trying to do that for 3 separate streams, all being uploaded at the same time? Nearly impossible.

Your best bet would be to record in 4K 120, for later use. And have OBS downscale it in realtime to 1080p or 720p, for the live stream.

Someone with a stationary camera, doing some cooking or something, might be able to have a decent looking 4K/30/60 stream in HEVC, at a like 15,000 kbps. I would probably downscale to 1440p, for bitrate/quality efficiency.


OBS simply does not support more than one stream at a time.
 
Last edited:
Youtube transcodes everything you upload, into formats that every viewer can watch. The point of uploading in AV1 to youtube right now, is because a higher quality source (your upload) means that youtube's transcode will look better.

Youtube also supports HEVC/H.265.

What kind of bitrate do you think you might be able to upload consistently, with your mobile internet?

Even at home, with GREAT internet, you would struggle to push enough bitrate, to make a 4k stream look good (where you are presumably walking around/the camera has a fair amount of motion in the frame) and be stable with no stutter/dropped frames. Let alone a 4K 120 stream.

And then, trying to do that for 3 separate streams, all being uploaded at the same time? Nearly impossible.

Your best bet would be to record in 4K 120, for later use. And have OBS downscale it in realtime to 1080p or 720p, for the live stream.

Someone with a stationary camera, doing some cooking or something, might be able to have a decent looking 4K/30/60 stream in HEVC, at a like 15,000 kbps. I would probably downscale to 1440p, for bitrate/quality efficiency.


OBS simply does not support more than one stream at a time.
I think my families house qualifies for having great internet since it has 1Gbps/1Gbps fiber so more than enough for many streams lawls. It depends on where I am stream of course so not sure. Depending on the area my 4G phone gets either great or terrible upload but if/when I do this I will be using 2 4/5G phones load balanced. If software method is unstable. I will have to get a cradlepoint as I mentioned above so it'll depend but should have enough bandwidth one way or another.

Can you not run multiple OBS applications? Is there a better software that I should use/buy than OBS that would allow me to upload multiple streams?

There was another option I was debating on doing with using already recorded video and reuploading them as 4K or 8K merged video because I wasn't sure how it would work as a live stream. So, I was considering down the road if I ever expanded from 2/3 streams to 4 streams. I was going to have the 4 go pros get merged/encoded into a single 4K or 8K stream with 4 separate 1080p or 4K video respectively.

No idea how that would be done on the fly but was planning on turning some of my content into that either post or on the fly if I figured out a way to do that. These things are down the road I will figure out and improve/upgrade my content with.

Also, forgot to mention but I do eventually plan on getting a stream box in a server. I want to eventually get this set up so that I can upload to the stream box and send the recording to multiple platforms. I absolutely will be using d.tube/lbry/liveleaks because Youtube policies are so bad and censor content badly. Youtube is not a long-term options for majority of my content. No idea how that works so I have to research that as well. Any advice on where to find info on that would be appreciated.
 
Last edited:
I think my families house qualifies for having great internet since it has 1Gbps/1Gbps fiber so more than enough for many streams lawls. It depends on where I am stream of course so not sure. Depending on the area my 4G phone gets either great or terrible upload but if/when I do this I will be using 2 4/5G phones load balanced. If software method is unstable. I will have to get a cradlepoint as I mentioned above so it'll depend but should have enough bandwidth one way or another.

Can you not run multiple OBS applications? Is there a better software that I should use/buy than OBS that would allow me to upload multiple streams?

There was another option I was debating on doing with using already recorded video and reuploading them as 4K or 8K merged video because I wasn't sure how it would work as a live stream. So, I was considering down the road if I ever expanded from 2/3 streams to 4 streams. I was going to have the 4 go pros get merged/encoded into a single 4K or 8K stream with 4 separate 1080p or 4K video respectively.

No idea how that would be done on the fly but was planning on turning some of my content into that either post or on the fly if I figured out a way to do that. These things are down the road I will figure out and improve/upgrade my content with.

Also, forgot to mention but I do eventually plan on getting a stream box in a server. I want to eventually get this set up so that I can upload to the stream box and send the recording to multiple platforms. I absolutely will be using d.tube/lbry/liveleaks because Youtube policies are so bad and censor content badly. Youtube is not a long-term options for majority of my content. No idea how that works so I have to research that as well. Any advice on where to find info on that would be appreciated.
I do not know what software allows you to do multiple separate streams, from the same machine. Maybe check out some reddit subforums or other internet forums, for professional internet broadcasting.
 
NVENC core offload gpu processing.

"Do you know of any other solution besides using NVENC with OBS that would provide high quality streams with minimal power usage?"

You need try Linux Ubuntu plus OBS.
Nvidia doing NVENC is much fast and cpu usage is low.
HD , 2K and 4K videos playback cpu usage is much low.
 
Consumer NVIDIA GPUs have a limit of 3 max concurrent encode and 1 decode video streams until recently (increased to 5 max concurrent endcode and 1 decode).
https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new

RTX A2000 should be unrestricted.

There is a hack to remove the limit on NVIDIA consumer GPUs.
https://github.com/keylase/nvidia-patch/blob/master/win/README.md

NVIDIA Turing NVENC H.264 is equivalent to CPU x264 slow preset in terms of quality.

Intel 11th gen iGPU Quicksync and newer is comparable to NVENC quality.

If you want the absolute lowest power consumption device, you can probably get an Intel N100 PC (only 6W power consumption)
It has 4-E cores and Intel UHD Graphics XE 24EUs
https://www.aliexpress.us/item/3256805068593066.html

There is also another device called "NVIDIA Jetson Nano Developer Kit" and consumes 5-10W, but it only has a Maxwell GPU so the video quality won't be as good as Turing.
https://www.amazon.com/NVIDIA-Jetson-Nano-Developer-945-13450-0000-100/dp/B084DSDDLT
 
As an Amazon Associate, HardForum may earn from qualifying purchases.
Back
Top