# Encoder settings advice?



## DaniSVG (Jun 11, 2020)

I'm sure there are a lottt of these posts, but it's different depending on the hardware, so I thought I'd check here just to be safe, if that's okay! I just also wanna understand what I'm actually doing, if that makes sense. 

CPU: Intel(R) Core(TM) i7-8700 @ 3.20GHz
GPU: Nvidia GeForce GTX 1060

Upload speed (Idk if that's important): 40 mbps

The resolution I'm using is 1920x1080. 

So my question is, would you recommend using the x264 encoder, or the nvenc one? I really don't know a lot about which CPU is "good" or not, so im not sure if mine should be able to handle it. I did some tests and when, as an example, playing overwatch my CPU usage without OBS is about 40 - 50%, when streaming with x264 / 12000 bitrate / very fast preset, it uses about 10 - 20% more CPU. I tried faster but that'll basically strangle my computer. 

Only thing I'm worried about is that when using those settings ^ my CPU stays around 85 degrees celcius. From what I've seen that's a little too high, right? I don't know if it's "normal" for when I'm streaming, but I'd like to not blow up my computer. :) 

When using nvenc with 12000 bitrate, I get worse quality (which I expected looking at other posts from people). I don't know how much upping the bitrate would help, but I'm not sure whether that'll be harder on my computer. 

So I was wondering a couple things, is it b a d if my cpu gets that hot? Is a higher bitrate heavier on cpu or gpu? And what would you recommend with the cpu and gpu I have, x264 or nvenc?

One more thing. I'm thinking about buying a RTX 2070 gpu, if I do so, would you recommend different settings? 

Thx a lot in advance!


----------



## carlmmii (Jun 11, 2020)

Please post a log with your issue! Here's how...

To answer your general questions though...

The encoder you use for your specific hardware is going to depend on what you're actually doing -- streaming or recording, and with what constraints (i.e. streaming to twitch is much more restrictive than streaming to youtube).

Since you're on a previous-generation GPU with the older nvenc encoder, the quality you get from it is going to be about on par with the veryfast preset of x264. However, this is a very low impact on system performance as nvenc is a separate process from the rest of the graphics processing.

The general rule is... if you can't reach an x264 preset that beats nvenc comfortably for your hardware, then just use nvenc.

Raising the bitrate does not create a bigger load on your computer -- it's just letting it use more data for the same compression algorithm.

CPU temp around 85c is fine. The 8700's TJmax is 105c, so you're well within limits.

Upgradint to a 20-series RTX card would grant you the Turing nvenc encoder, which has a quality around x264 medium... so the recommendation would definitely be to stick with nvenc moving forward.


For now though, post a log file of both an x264 test and an nvenc (new) test, and we can suggest tweaks if there's anything that needs it.


----------



## DaniSVG (Jun 11, 2020)

Ah I forgot to upload them, my bad! Not sure which one I should upload so I just picked these two (the last two). Hope this helps!


----------



## carlmmii (Jun 11, 2020)

I made a major edit to the above post in between... here's the suggestions for tweaks.

First things first -- none of your encoding sessions resulted in any missing frames due to rendering/encoding lag, so you're good there as far as your system handling things well. That said, running OBS as administrator mode will help prevent potential problems with rendering lag if your game uses too much of your GPU processing (running in admin mode puts OBS on the windows GPU priority list, so it gets what it needs).

Also, for Nvenc encoding, there are settings that should be avoided due to CUDA processing potentially interfering with GPU utilization.
- Psychovisual tuning (which is enabled in your tests)
- Look Ahead
- Max Quality

Something else you should definitely do is have the Stats window open -- this will let you know if you have any frames lost to rendering lag or encoding lag as it happens, so you can immediately know when you've reached a limit or need to change settings.


For the specifics of what you're wanting to do right now, since it looks like you're streaming to twitch, and you're playing a fast-action game, my suggestion would actually be to stick with x264 encoding, but drop your resolution down to 1600x900 or 1280x720, and change your CPU preset down to faster or fast.

The 6000kbps limit is very harsh for fast-action 1080p60, and even with higher quality encoding, h.264 just isn't able to produce good enough quality most of the time. Dropping the resolution and increasing the encoding quality will most likely look much better for the end result, with no real change to your CPU's loading.


Again though, moving forward... if you do end up getting an RTX card, use nvenc -- your CPU won't be able to match its quality for x264 encoding, and nvenc processing is essentially free.


----------



## DaniSVG (Jun 11, 2020)

Thank you so much for your reply! 

Where exactly should I drop my resolution down? The output tab under "rescale output" or the video tab and then either "base (canvas) resolution" or "output (scaled) resolution", or both?

And do you recommend starting with the "fast" preset and then going up if my cpu can't handle it?

One more thing, I didn't exactly get what you meant with the 6000kbps limit. Would you mind explaining :) And does that mean I should also lower my bitrate? Or does bitrate not affect this overall?

Thank you again!! I appreciate it!


----------



## carlmmii (Jun 11, 2020)

Set your resolution in the Video tab. "Output (scaled) resolution". This uses the GPU for rescaling before it goes to the encoder. You can leave your canvas resolution as is (imagine this as your main workspace area -- don't mess with it unless you're doing full reorganization).

The "rescale output" option in the Output is actually an ffmpeg function, which uses the CPU, and also prevents using the Nvenc (new) encoder (it will still say you're using the new encoder, but it will silently fall back to using the old implementation).

Absolutely just go for the "fast" preset and see how your system handles it. No reason not to -- test out your system's limits and see what it can and can't handle. Worst thing that happens is you hit 100% on your CPU and you start missing frames.

The 6000kbps limit is a twitch limitation. It's a "soft" limitation, meaning technically you can exceed it, but around 8000kbps you will probably never get transcoding options, and past that the ingest servers may not accept the upload stream.


----------



## DaniSVG (Jun 11, 2020)

Thank you! 

I did some tests and when putting my resolution to 1600x900 and my preset to fast it took up around like 85 - 95% of my cpu while playing a game that isn't too heavy compared to some other ones. Do you recommend keeping it this way, changing the res to 1280x720 or keeping the res but changing it to fastest? (Idk if the log is needed)

And oneee more question, then I'm done. If I do get a RTX 2070 and start using NVENC, will it automatically "improve" the quality? Or wouldI have to setit to "Max Quality" instead of "Quality".


----------



## carlmmii (Jun 12, 2020)

Personally, I like to know I have enough headroom so that when random spikes happen, it doesn't affect stream. 85-95% CPU usage seems a bit high, so either dropping it down to faster or dropping the resolution down might be better in the long run for reliability (whichever one ends up looking better to your eyes).

For the RTX 2070, the quality improvement is inherent to the hardware. Max Quality should still be avoided because this leverages CUDA in addition, which can cause the interference with GPU utilization as mentioned (Max Quality actually forces 2-pass encoding, which is the CUDA-accelerated function).


----------



## Milo1325 (Jan 15, 2021)

carlmmii said:


> Personally, I like to know I have enough headroom so that when random spikes happen, it doesn't affect stream. 85-95% CPU usage seems a bit high, so either dropping it down to faster or dropping the resolution down might be better in the long run for reliability (whichever one ends up looking better to your eyes).
> 
> For the RTX 2070, the quality improvement is inherent to the hardware. Max Quality should still be avoided because this leverages CUDA in addition, which can cause the interference with GPU utilization as mentioned (Max Quality actually forces 2-pass encoding, which is the CUDA-accelerated function).



Hey was wondering if you could give me some quick advice for my encoders i have , x264, h264/avc encoder ( amd advanced media framework) as well as h265/hvec amd advanced media framework, with a ryzen 5 3600 and rx 580, with a 10mbps upload speed, I'm wondering what my best encoder would be to choose, im trying to record 1080p 30 or 60 at the moment and no matter what I change the videos don't look quite hd and are extremely choppy, my bitrates I've tried are between 10000-20000 and I cant quite figure out what works best. Aswell do you think I should switch to 720p instead?


----------



## Nass86 (Jan 27, 2021)

Milo1325 said:


> Hey was wondering if you could give me some quick advice for my encoders i have , x264, h264/avc encoder ( amd advanced media framework) as well as h265/hvec amd advanced media framework, with a ryzen 5 3600 and rx 580, with a 10mbps upload speed, I'm wondering what my best encoder would be to choose, im trying to record 1080p 30 or 60 at the moment and no matter what I change the videos don't look quite hd and are extremely choppy, my bitrates I've tried are between 10000-20000 and I cant quite figure out what works best. Aswell do you think I should switch to 720p instead?


Hey, if you are live streaming, it seems to be a common desire to stream 1080p (before I had half a clue, I wanted to stream at 4k a year ago!).

The problem with anything higher than 720p is that the bitrate you need is too much for some of your viewers broadband, or indeed it will often cause 'buffering' for your mobile viewers and you will lose live viewers because you become unwatchable.

My personal favourite thing to do is stream 720p @ 60fps. And - IF - your computer can handle it, it looks a bit sharper if you make the Base Canvas 1080p and downscale it to 720p with 32 Sample (or 36 Sample) Lanczos. Don't stress your computer out for the sake of that last tip, but there is a little improvement.

So even if you have 10mb upload, your viewers wouldn't benefit from you maxing that out when it comes to streaming.

So for streaming, I suggest:
720p x 60fps
3500 to 5,000 bitrate (any more is a waste at this resolution).

Regarding your recordings I will leave someone else to answer, I'm not sure why your recording is choppy. The only possible thing I can think of is that perhaps you have your recordings set to a CPU encoding by accident (which could be too stressful for your CPU to handle) and you need to find h264 in the encoding settings somewhere.

Try Mov and MKV container formats too.


----------

