Question / Help OBS Nvenc still not on par with NVIDIA Share in terms of smoothness

n3v3rm1nd

Member
Hey guys,

this problem persist like for years now for me. I can't get a completely smooth 60fps recording in OBS at all. Share does this amazingly fine and it's smooth as butter, so it should too in OBS. I tried many settings and am now on indistinguishable quality which gave me the best output but still suffers from stuttering.

My system is more than capable of recording at this rate which Share shows.

i7 4790 @4ghz
GTX 970 OCed
8GB of ram
Newest drivers everywhere and newest Windows 10 with every update known to mankind.

Here is log from OBS: https://gist.github.com/anonymous/ebd81945df5ff1984f05b18a2a70b9b4

Maybe someones has some suggestions that i can try! Would be really appreciated :D Thanks!
 

Ohem

New Member
So, what's the alternative? Don't really feel like having a choppy 60 fps video and since NVENC is hogged by nvidia it's basically useless.
 

DeMoN

Member
Buy a capture card.
Also dont forget to deactivate in NVInspector the VRAM downclocking as soon as NVEnc is in use by 3rd party software.
On a GTX 1080 you lose otherwise 500 mhz of VRAM clock.
Search for Force P2 State or so.
 

dodgepong

Administrator
Community Helper
Buying a capture card will do precisely nothing for encoding performance on a single-PC stream setup.
 

DeMoN

Member
oh yes it does. Because then OBS doesnt have to hook the games anymore - and there is the problem come from.

http://forums.guru3d.com/showpost.php?p=4687310&postcount=61
http://forums.guru3d.com/showpost.php?p=4983364&postcount=5

and this so true. Now with a capture card nearly no fps loss anymore (except with OBS even without capturing, just being opened costs a lot of fps already for some reason)

PS: And the OBS Hook combined with NVEnc it has indeed stuttering or better said it doesnt look as smooth as it should at for example 60fps. If OBS doesnt do the hooking anymore and grabs from a capture card - then the NVEnc encode by OBS is smooth.

With lossless codecs like MagicYUV and so on the Encoding impact on FPS is soooo small (if no HDD bottleneck). The main fps loss is by the hook into the games. And this can be avoided with a capture card.
so YES a capture card helps a lot to save fps. The difference is enormous. I have a card by datapath and yes the MSI Afterburner dev is so right - the performance loss is negligible since the card (except the performance problem with OBS, I use other software due to this).
 

Lapppy

Member
PS: And the OBS Hook combined with NVEnc it has indeed stuttering or better said it doesnt look as smooth as it should at for example 60fps. If OBS doesnt do the hooking anymore and grabs from a capture card - then the NVEnc encode by OBS is smooth.

I don't have a capture card, but what you are saying about OBS hooking definitely seems to line up with my experience. I have thought about getting a capture card just so I can use my second computer as a dedicated encoder, because OBS just doesn't seem to be good at "capturing" things.

NVENC as an encoder is very smooth. I can throw a media source into a scene and it will encode a perfect 60fps video for hours. Where most of the microstutter and performance issues lie is with the display, window and game capture sources, and they are the only moving sources in the whole scene that seem to have performance issues. I cap my games fps at 60, use vsync, there's over 60% gpu usage available for OBS, very little encoding or rendering lag, and frames are downloading in time... but the output can't stay a stable 60fps for more than 30 minutes. It all seems to be caused by how OBS hooks into processes and grabs frames.
 

dodgepong

Administrator
Community Helper
The capture hook should have virtually no performance impact. If it does, then something is likely wrong on your system somewhere. Sometimes this can happen with conflicting hooks (multiple things trying to hook the game in ways that step over each other). Generally speaking, the shared texture hook should be very fast since OBS can just copy the texture within VRAM to the OBS graphics context without having to go through system RAM. Capture cards, on the other hand, have to go through system RAM to VRAM due to the fact that they are DirectShow devices.

I'm not sure if the OBS hook is as fast as NVFBC (it's probably very close), but it's definitely faster than a capture card.
 

Lapppy

Member
The capture hook should have virtually no performance impact. If it does, then something is likely wrong on your system somewhere. Sometimes this can happen with conflicting hooks (multiple things trying to hook the game in ways that step over each other). Generally speaking, the shared texture hook should be very fast since OBS can just copy the texture within VRAM to the OBS graphics context without having to go through system RAM. Capture cards, on the other hand, have to go through system RAM to VRAM due to the fact that they are DirectShow devices.

I'm not sure if the OBS hook is as fast as NVFBC (it's probably very close), but it's definitely faster than a capture card.

Yes, I am not seeing any performance impact caused by the OBS hook while playing games. I can record on my PC with no performance problems. What I am personally referring to is that the OBS capture source(s) skips and drops a bunch of frames for no discernible reason after 15-30 minutes of recording/streaming that don't get reported in log files. This only appears to happen with the game/display/window capture sources and not with other moving sources such as a webcam. I've seen this happen on two separate PCs one of which is a laptop, both have NVIDIA graphics cards. My understanding is that it has to do with how directx "works" but it could be something else and I really want to know the workaround.

My theory behind using a capture card and/or a dual pc setup is not to improve encoding/game performance, but rather to not have to use OBS to capture. Let the capture card handle the monitor/game capture side of things and send that to a second PC to stream it, because the video capture source doesn't appear to have frame time problems.
 

chummy

Member
Windows 10 DVR has good performance in capturing frames like Shadowplay for NVENC or VCE, only OBS cause major duplication frames for output footage.

Since Win10 DVR works smooth with VCE too, i guess they dont have access to NVIDIA NVFBC but use some better method than OBS does.I lost my AMD card before Relive was released, bu ti guess AMD relive would have a better performance for capturing frames like Win10DVR/Shadowplay got.

OBS has all nice features but duplicated frames performance make it almost useless above 30fps recording.

OBS cause no issues with ingame FPS and is close to other recorders but it major issue is producing higher duplicated frames to output footage against Win10 DVR or Shadowplay.

One test i done in past Win10DVR and Shadowplay duplicate 6 of 60 frames while OBS-Studio duplicate 12 of 60. There is a big leap between them.

Recently i accessed some old footage i have here which i recorded in 60fps with OBS-Studio and when i made a clean up of duplicates from this video it become 34fps only. So this is a big loss of duplicates than OBS had with some heavy games while other recorders can deal better with that.

One point i can perceive is than OBS suffer more to cause duplicated frames in heavy load games which push CPU/GPU to it limits, while Win10DVR/Shadowplay can maintain low duplicated frames even on heavy load cases.

I dont know what is the real cause but OBS has major bottleneck with duplicated frames performance against alternative recorders and thats really sad beucase beside alternative performance they lack a lot in features.
 
Top