NVENC Performance Improvements (Release Candidate)

Status
Not open for further replies.

dawggpie

New Member
Hi, I'm trying to get the obs-websocket plugin to work with this build but no luck. Is there something special that needs to be done to get it working (similar to the game capture) or can a build be made that works with the exist obs-websocket build? Thx.
 
Last edited:

Fingers

New Member
Well I thought version 9 fixed my issue but I had the release version running not the beta. So I'm still seeing the same issue in version 9. Here are the 2 logs, one of it not working in Insurgency and one where it worked fine in Black Ops 4.
 

Attachments

  • 2019-01-17 02-12-12.txt
    9.5 KB · Views: 45
  • 2019-01-17 02-12-122.txt
    14.7 KB · Views: 41

Fam3mon5ster

New Member
So I seem to be able to confirm that with a 2700x and a 2080 Ti get better performance with AMD's scheduling "HPET" ON vs OFF -- I still dropped regardless utilizing 99% of the GPU - Can anyone else confirm this ? I know this is a popular option to turn off with AMD chips to reduce stuttering in games may help some people if you mess with the settings in bios
 

Attachments

  • HPET OFF.txt
    7.3 KB · Views: 58
  • HPET ON.txt
    7.6 KB · Views: 52

Sadit91

New Member
Hi there, I'm a GTX 1050 Ti user. Generally i use quicksync to stream. I think the new nvenc encoder records video as Shadowplays way. Cz i saw huge improvements in performance. I've tested shadowplay with 1080p 60fps at 50mbps bitrate , the gpu usage was 10-12%. I was able to record Rainbows Six Siege with ultra settings at 60fps and sometimes below 60. I've also tested new nvenc with high performance at 50000kbps bitrate. the quality was very good but the video was stuttering. Gpu usage was also 10-12% or less. The thing that i wanted to tell you guys is i can't able to record games with high or ultra settings at 1080p 60fps with OBS. I was just comparing ShadowPlay and OBS. Both works in same way but OBS can't record games which has below fps below 60, But shadowplay can. I've tried with other profiles and presets all but the result was same.
NOTE: OBS shows that it's record at 60fps and no fps drops. But the video isn't smooth.
Sorry for my bad English.
 

dodgepong

Administrator
Community Helper
The OBS beta is primarily about performance improvements related to sending frames to the encoder more efficiently. It doesn't have the ability to make the encoder itself better somehow, since it's a hardware encoder built into your GPU. So all beta builds should result in the same quality, but later builds should have better performance.
 

LiaNdrY

Member
When will you display all NVENC encoder settings?

1547740628829.png

Code:
h264_nvenc AVOptions:
  -preset            <int>        E..V.... Set the encoding preset (from 0 to 11) (default medium)
     default                      E..V....
     slow                         E..V.... hq 2 passes
     medium                       E..V.... hq 1 pass
     fast                         E..V.... hp 1 pass
     hp                           E..V....
     hq                           E..V....
     bd                           E..V....
     ll                           E..V.... low latency
     llhq                         E..V.... low latency hq
     llhp                         E..V.... low latency hp
     lossless                     E..V....
     losslesshp                   E..V....
  -profile           <int>        E..V.... Set the encoding profile (from 0 to 3) (default main)
     baseline                     E..V....
     main                         E..V....
     high                         E..V....
     high444p                     E..V....
  -level             <int>        E..V.... Set the encoding level restriction (from 0 to 51) (default auto)
     auto                         E..V....
     1                            E..V....
     1.0                          E..V....
     1b                           E..V....
     1.0b                         E..V....
     1.1                          E..V....
     1.2                          E..V....
     1.3                          E..V....
     2                            E..V....
     2.0                          E..V....
     2.1                          E..V....
     2.2                          E..V....
     3                            E..V....
     3.0                          E..V....
     3.1                          E..V....
     3.2                          E..V....
     4                            E..V....
     4.0                          E..V....
     4.1                          E..V....
     4.2                          E..V....
     5                            E..V....
     5.0                          E..V....
     5.1                          E..V....
  -rc                <int>        E..V.... Override the preset rate-control (from -1 to INT_MAX) (default -1)
     constqp                      E..V.... Constant QP mode
     vbr                          E..V.... Variable bitrate mode
     cbr                          E..V.... Constant bitrate mode
     vbr_minqp                    E..V.... Variable bitrate mode with MinQP
     ll_2pass_quality              E..V.... Multi-pass optimized for image quality (only for low-latency presets)
     ll_2pass_size                E..V.... Multi-pass optimized for constant frame size (only for low-latency presets)
     vbr_2pass                    E..V.... Multi-pass variable bitrate mode
  -rc-lookahead      <int>        E..V.... Number of frames to look ahead for rate-control (from -1 to INT_MAX) (default -1)
  -surfaces          <int>        E..V.... Number of concurrent surfaces (from 0 to 64) (default 32)
  -cbr               <boolean>    E..V.... Use cbr encoding mode (default false)
  -2pass             <boolean>    E..V.... Use 2pass encoding mode (default auto)
  -gpu               <int>        E..V.... Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on. (from -2 to INT_MAX) (default any)
     any                          E..V.... Pick the first device available
     list                         E..V.... List the available devices
  -delay             <int>        E..V.... Delay frame output by the given amount of frames (from 0 to INT_MAX) (default INT_MAX)
  -no-scenecut       <boolean>    E..V.... When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts (default false)
  -forced-idr        <boolean>    E..V.... If forcing keyframes, force them as IDR frames. (default false)
  -b_adapt           <boolean>    E..V.... When lookahead is enabled, set this to 0 to disable adaptive B-frame decision (default true)
  -spatial-aq        <boolean>    E..V.... set to 1 to enable Spatial AQ (default false)
  -temporal-aq       <boolean>    E..V.... set to 1 to enable Temporal AQ (default false)
  -zerolatency       <boolean>    E..V.... Set 1 to indicate zero latency operation (no reordering delay) (default false)
  -nonref_p          <boolean>    E..V.... Set this to 1 to enable automatic insertion of non-reference P-frames (default false)
  -strict_gop        <boolean>    E..V.... Set 1 to minimize GOP-to-GOP rate fluctuations (default false)
  -aq-strength       <int>        E..V.... When Spatial AQ is enabled, this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive) (from 1 to 15) (default 8)
  -cq                <int>        E..V.... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0)
  -aud               <boolean>    E..V.... Use access unit delimiters (default false)
  -bluray-compat     <boolean>    E..V.... Bluray compatibility workarounds (default false)
  -init_qpP          <int>        E..V.... Initial QP value for P frame (from -1 to 51) (default -1)
  -init_qpB          <int>        E..V.... Initial QP value for B frame (from -1 to 51) (default -1)
  -init_qpI          <int>        E..V.... Initial QP value for I frame (from -1 to 51) (default -1)
  -qp                <int>        E..V.... Constant quantization parameter rate control method (from -1 to 51) (default -1)
 

TSMHalifax

New Member
Hey Friends! Thank you all battling in the trenches here keeping the 1 PC dream alive. I have been having lots of success and compliments on the look of the stream with the new OBS Beta. OBS is sub 5% (3% without Cam) usage on PUBG and I feel the difference. Game crashes will also no longer crash my OBS which was happening on the current LIVE build when using NVENC.

The issue that I have run into is when playing Rainbow Six on all the Beta builds (from 6 to 9). The video is choppy and the impact on the PC is massive. The LIVE OBS build is working great with Rainbow Six. When researching this there were suggestions of turning Game Mode Off however I do not have that option as others (example attached). Feel free let me know if you have had similar issues or Ideas.
 

Attachments

  • OBS NVENC Settings.PNG
    OBS NVENC Settings.PNG
    62.7 KB · Views: 247
  • GameMode.PNG
    GameMode.PNG
    301.9 KB · Views: 223

Animetic

New Member
I tried the 9 build last night, and it was dropping frames like mad. This wasn't the occasional stuttering that I experienced earlier, this was a ton of constantly dropping frames. So I panicked and switched back to the 8 build which worked fine without stuttering or any dropped frames for the rest of the night (6-7 hours).

It might be incidental but it was just really odd. I've never had dropped frames happen before.
 

Vraelon

New Member
I can't get any higher than 40mbps in CQ and I can't select a CQ lower than 14 and that is not NEARLY enough bitrate for 4K60P local recordings, CQ 8-12 in old OBS gave me perfect quality with peak bitrates hitting near 300mpbs. But old OBS had 30% frame drop. Now I have to chose between HQ recording with frame drops and low quality game experience or perfect game experience with horrible encode quality. I even tried manually setting the CQ in recordEncoder.json and even at CQ 1 I only get 40mbps... Is CQ not properly implemented yet?
 

Motofreak

New Member
The issue that I have run into is when playing Rainbow Six on all the Beta builds (from 6 to 9). The video is choppy and the impact on the PC is massive. The LIVE OBS build is working great with Rainbow Six. When researching this there were suggestions of turning Game Mode Off however I do not have that option as others (example attached). Feel free let me know if you have had similar issues or Ideas.
5

Did you happened to notice the GPU usage or OBS stats for render & encoder lag? when using the beta 6-9 ? I found when my GPU (2080ti) is near maxed usage, OBS would drop/complain about render & encoder issues using. It was only when I lowered the GPU usage by either videos settings or easier way is FPS lock to 80-90% gpu usage and then I would get zero issues using NVENC new encoder settings in OBS beta.
 

Osiris

Active Member
I can't get any higher than 40mbps in CQ and I can't select a CQ lower than 14 and that is not NEARLY enough bitrate for 4K60P local recordings, CQ 8-12 in old OBS gave me perfect quality with peak bitrates hitting near 300mpbs. But old OBS had 30% frame drop. Now I have to chose between HQ recording with frame drops and low quality game experience or perfect game experience with horrible encode quality. I even tried manually setting the CQ in recordEncoder.json and even at CQ 1 I only get 40mbps... Is CQ not properly implemented yet?

The CQ level property has 14 set as minimum for some reason and in the code the maxbitrate parameter seems to be locked to 40mbps when selecting CQ rate control, for whatever reason. Need to wait for Jim to change that.
 

Kl3ppy

New Member
This option enables dynamic B-frames. Without this option, the encoder will always use the number of B-frames specified in the "Max B-frames" setting. If Look-ahead is enabled, it will only use the number of B-frames that it decides it needs to, resulting in better quality via better resource usage, but uses CUDA.

Can you explainwhat you mean with it uses CUDA? I dont know what the implications are, more usage of the GPU?
 

Fam3mon5ster

New Member
Hey Friends! Thank you all battling in the trenches here keeping the 1 PC dream alive. I have been having lots of success and compliments on the look of the stream with the new OBS Beta. OBS is sub 5% (3% without Cam) usage on PUBG and I feel the difference. Game crashes will also no longer crash my OBS which was happening on the current LIVE build when using NVENC.

The issue that I have run into is when playing Rainbow Six on all the Beta builds (from 6 to 9). The video is choppy and the impact on the PC is massive. The LIVE OBS build is working great with Rainbow Six. When researching this there were suggestions of turning Game Mode Off however I do not have that option as others (example attached). Feel free let me know if you have had similar issues or Ideas.
5


Did you happened to notice the GPU usage or OBS stats for render & encoder lag? when using the beta 6-9 ? I found when my GPU (2080ti) is near maxed usage, OBS would drop/complain about render & encoder issues using. It was only when I lowered the GPU usage by either videos settings or easier way is FPS lock to 80-90% gpu usage and then I would get zero issues using NVENC new encoder settings in OBS beta.

same issue here, that GPU encoding overload keeps creeping up lol didn't think it would pop its ugly head out for nvenc but I was wrong - - even though our 2080ti's are the latest on the market, I'm surprised really - Looking through the forums it seems other people with non TI versions or previous gens are having better luck. what I'm curious about though is the resolution and graphic settings they are running? Maybe its because we keep cranking all our settings to max? or driving some really high or wild resolution like ultrawide? I MEAN we DID buy a 2080ti lol I feel like we are just simply overloading it. I was hoping to get to the point where the encoder would say run on its own like a standalone vs it being effected by your GPU load - in other words being that "dual pc setup" that nvidia is trying to market - but it just simply seems that we may be actually seeing the max potential of what the encoder can actually do with settings all maxed out. just a wild guess- still hopeful though.


the only improvement I'm noticing, other then the stability and other misc updates as the beta continues, is dropping the graphics settings to give the encoder some room to breath. personally I've checked off the extra quality options and set to high performance on the encoder and still run into some issues with skipped or lagged frames - but if I turn down my graphics settings everything is all good and can even revert back to default nvenc (new) settings -

In my opinion I feel like turning up your resolution or graphics settings in game is as equal to dropping the encoder preset on x264 to a slower preset

whats weird though is on the old nvenc, you don't run into that issue. If I remember correctly when the 2080ti's came out I saw a review by LinusTechTips who said the encoder got a improvement which showed the encoder pushing out a quality boost and was performing in certain situations as equal to x264 "faster" -- I also do recall there was a PDF that NVIDIA produced confirming this around launch ---- in CES 2019 OBS announcement they mention another revision I believe which on NVIDIA's website it now says

"For you as a streamer, this means that GeForce RTX GPUs can stream with superior image quality compared to x264 Fast, and on par with x264 Medium. " -- https://www.nvidia.com/en-us/geforce/news/geforce-rtx-streaming/

** I believe NVIDIA in this new build have maybe some how updated the "encoder preset" (If we were to give it a name)? to attempt to get the encoder to produce a "superior image quality compared to x264 Fast, and on par with x264 Medium." -- for all I know its probably those new options to achieve this? maybe not though seeing that I turned them off and still ran into issues - who knows this is probably why we are seeing lagged and skipped frames - least for some

I believe Dodgepong shot down this theory earlier though as they are simply working on performance/stablility enhancements -
Keep them updates coming ! :)
 

Bonezz

New Member
I'm having a bit of an issue with builds 8 and 9. If I stream with 8 I start getting hitches and stuttering in the actual game that I'm playing and with 9 if I hit start stream it will constantly turn my stream on and off over and over again. Here's a vod of me running through the RE2 demo to see what I'm talking about.

CBR
7000 bitrate
Keyframe Interval 3
Max Quality
High
Psycho Visual Tuning
Max B-Frames 3

If I record rather than stream with build 9 since the stream wont work it does not cause the hitching / stuttering issues that build 8 causes.
 

Motofreak

New Member
the only improvement I'm noticing, other then the stability and other misc updates as the beta continues, is dropping the graphics settings to give the encoder some room to breath. personally I've checked off the extra quality options and set to high performance on the encoder and still run into some issues with skipped or lagged frames - but if I turn down my graphics settings everything is all good and can even revert back to default nvenc (new) settings -

With some games (like Insurgency Sandstorm ) I have to drop the settings because the GPU & vram usage is maxed out (10.5 out of 11gigs worth) and then there is nothing left for OBS to use. With the only one monitor on the gpu and set to 1080P and supersample turned on to 2x it will max out my 2080ti and then there is nothing left for OBS to use. So I have it set to in game supersample to 1.25x and cap the FPS to 90 which will left about 20-35% GPU and about 1gig of Vram free for obs beta-9 to use and abuse and this will still make it look great but at a cost of lowering FPS when outputting it to a 720/60 @6k bitrate.

Here is a quick 10 minute sample (Insurgency:sandstorm PG-13+) you'll notice 4:18 (during a bomb going off with FPS drop) & 4:50 stuttering without frame rate drop but then I saw gpu & encoder spikes and dropped about 15 frames each time at 4:50 (looking at task manager gpu graph only and logs) I picked this game for the testing because of the lighting and textures. But I find this encoder was very dark at range and indoors when looking at the VOD. And when the scene got fast paced or fire & smoke at times it struggled at keeping the quality. Again this could just mean, that I need to set the game video settings a bit lower to handle the load, even thought I tried to keep it below 80% gpu usage 1 gig of vram already.

I'm impressed with the new found life in OBS beta /Nvidia! thanks to the OBS crew & Nvidia for making this happen. I've normal used x264 on slow for my recording and game streaming needs.
 

Attachments

  • 2019-01-17 16-56-04.txt
    24.6 KB · Views: 41

AdamLop413

New Member
When will you display all NVENC encoder settings?

View attachment 42350
Code:
h264_nvenc AVOptions:
  -preset            <int>        E..V.... Set the encoding preset (from 0 to 11) (default medium)
     default                      E..V....
     slow                         E..V.... hq 2 passes
     medium                       E..V.... hq 1 pass
     fast                         E..V.... hp 1 pass
     hp                           E..V....
     hq                           E..V....
     bd                           E..V....
     ll                           E..V.... low latency
     llhq                         E..V.... low latency hq
     llhp                         E..V.... low latency hp
     lossless                     E..V....
     losslesshp                   E..V....
  -profile           <int>        E..V.... Set the encoding profile (from 0 to 3) (default main)
     baseline                     E..V....
     main                         E..V....
     high                         E..V....
     high444p                     E..V....
  -level             <int>        E..V.... Set the encoding level restriction (from 0 to 51) (default auto)
     auto                         E..V....
     1                            E..V....
     1.0                          E..V....
     1b                           E..V....
     1.0b                         E..V....
     1.1                          E..V....
     1.2                          E..V....
     1.3                          E..V....
     2                            E..V....
     2.0                          E..V....
     2.1                          E..V....
     2.2                          E..V....
     3                            E..V....
     3.0                          E..V....
     3.1                          E..V....
     3.2                          E..V....
     4                            E..V....
     4.0                          E..V....
     4.1                          E..V....
     4.2                          E..V....
     5                            E..V....
     5.0                          E..V....
     5.1                          E..V....
  -rc                <int>        E..V.... Override the preset rate-control (from -1 to INT_MAX) (default -1)
     constqp                      E..V.... Constant QP mode
     vbr                          E..V.... Variable bitrate mode
     cbr                          E..V.... Constant bitrate mode
     vbr_minqp                    E..V.... Variable bitrate mode with MinQP
     ll_2pass_quality              E..V.... Multi-pass optimized for image quality (only for low-latency presets)
     ll_2pass_size                E..V.... Multi-pass optimized for constant frame size (only for low-latency presets)
     vbr_2pass                    E..V.... Multi-pass variable bitrate mode
  -rc-lookahead      <int>        E..V.... Number of frames to look ahead for rate-control (from -1 to INT_MAX) (default -1)
  -surfaces          <int>        E..V.... Number of concurrent surfaces (from 0 to 64) (default 32)
  -cbr               <boolean>    E..V.... Use cbr encoding mode (default false)
  -2pass             <boolean>    E..V.... Use 2pass encoding mode (default auto)
  -gpu               <int>        E..V.... Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on. (from -2 to INT_MAX) (default any)
     any                          E..V.... Pick the first device available
     list                         E..V.... List the available devices
  -delay             <int>        E..V.... Delay frame output by the given amount of frames (from 0 to INT_MAX) (default INT_MAX)
  -no-scenecut       <boolean>    E..V.... When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts (default false)
  -forced-idr        <boolean>    E..V.... If forcing keyframes, force them as IDR frames. (default false)
  -b_adapt           <boolean>    E..V.... When lookahead is enabled, set this to 0 to disable adaptive B-frame decision (default true)
  -spatial-aq        <boolean>    E..V.... set to 1 to enable Spatial AQ (default false)
  -temporal-aq       <boolean>    E..V.... set to 1 to enable Temporal AQ (default false)
  -zerolatency       <boolean>    E..V.... Set 1 to indicate zero latency operation (no reordering delay) (default false)
  -nonref_p          <boolean>    E..V.... Set this to 1 to enable automatic insertion of non-reference P-frames (default false)
  -strict_gop        <boolean>    E..V.... Set 1 to minimize GOP-to-GOP rate fluctuations (default false)
  -aq-strength       <int>        E..V.... When Spatial AQ is enabled, this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive) (from 1 to 15) (default 8)
  -cq                <int>        E..V.... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0)
  -aud               <boolean>    E..V.... Use access unit delimiters (default false)
  -bluray-compat     <boolean>    E..V.... Bluray compatibility workarounds (default false)
  -init_qpP          <int>        E..V.... Initial QP value for P frame (from -1 to 51) (default -1)
  -init_qpB          <int>        E..V.... Initial QP value for B frame (from -1 to 51) (default -1)
  -init_qpI          <int>        E..V.... Initial QP value for I frame (from -1 to 51) (default -1)
  -qp                <int>        E..V.... Constant quantization parameter rate control method (from -1 to 51) (default -1)
The new NVENC Encoder is not available on Windows 7, that is why you do not see it.
 
Status
Not open for further replies.
Top