Does streaming and recording at the same time use more CPU when using NVENC?

Fractale

New Member
using recording quality same as stream or different quality.

Is it just asking more work to the encoder (on the GPU) or is it doing more work on the CPU too?
 

Lawrence_SoCal

Active Member
Recording and streaming requires 2X the work. UNLESS you use the same settings for Recording as using for streaming (ie creating one video stream, and recording that). I for example, don't do that as my stream provider doesn't accept input at as higher resolution as is my camera/environment. So I stream at a lower resolution, and record at native (higher) resolution. And that is extra workload for CPU and NVENC

The whole point of using NVENC is to offload some of the computationally demanding real-time video encoding to dedicated purpose designed circuits on GPU, thereby reducing workload on CPU. So, by definition for a given workload, if you are using NVENC, then CPU workload will be lower than not using NVENC. Now, with that said, once you've off-loaded certain workload to NVENC, the CPU is free to do other stuff...
- some don't have enough CPU to both, say gameplay, and use OBS to stream/record
- Others, once they have OBS working with their other workloads, start getting fancier by adding CPU workloads by using other OBS filters and effects (like Audio filters, or chromakeying, or any number of other options, or plug-ins which use CPU). And some items use more CPU than others.

What we don't have, in OBS Stats, is a way to identifying BOTH OBS main process, and any associated processes (like NDI, or plugins, etc) and combine that to see an overall OBS resource impact on PC. For example, on my system, showing OBS stats, eh OBS CPU indicator in 1-2%. Though technically accurate, it is also meaningless to me as that amount is NOT reflective of the overall system CPU impact of OBS and associated components (which will vary per system, not something simple to program to display)

Hopefully, I answered you question. If not please be clearer in your question
 

koala

Active Member
A more simple answer:
  • If you use nvenc as encoder for streaming and "same as stream" as encoder for recording, there is not more work for the CPU.
  • If you use nvenc as encoder for streaming as well as for recording, because you want to have higher quality encoding for recording than for streaming, and you use the same resolution for both, there is not more work for the CPU.
  • If you use nvenc as encoder for streaming as well as for recording, because you want to have higher quality encoding for recording than for streaming, and you use a different resolution for both, there is slightly more work for the CPU and overall slightly more system load, because this rescaling must be done by the CPU and nvenc cannot encode both videos directly from the GPU frame buffer.
 

Fractale

New Member
A more simple answer :
  • If you use nvenc as encoder for streaming and "same as stream" as encoder for recording, there is not more work for the CPU.
  • If you use nvenc as encoder for streaming as well as for recording, because you want to have higher quality encoding for recording than for streaming, and you use the same resolution for both, there is not more work for the CPU.
  • If you use nvenc as encoder for streaming as well as for recording, because you want to have higher quality encoding for recording than for streaming, and you use a different resolution for both, there is slightly more work for the CPU and overall slightly more system load, because this rescaling must be done by the CPU and nvenc cannot encode both videos directly from the GPU frame buffer.
thank you for your answers @Lawrence_SoCal and @koala
from @Lawrence_SoCal answer, I didn't understand that @koala's second point was possible.
I want to minimize CPU usage while having the best output for my stream and my recording. (I don't have a fancy PC but I have a good GPU)
Do my current settings makes @koala's second point possible or do I have to play with the advance mode to achieve this?

1638445205405.png
 

koala

Active Member
Yes, exactly this setup is my second point. This is a recommended setup to get better quality for recording than for streaming while at the same time not requiring more CPU power. This will run 2 encodings running parallel on the GPU, one with streaming settings and one with recording settings. Since Nvenc is a dedicated circuit on the GPU, this will also not require more GPU resources - it's perfect.
 
Top