Question / Help NVENC OBS VS NVENC Shadowplay

Suslik V

Active Member
I think, NVIDIA know how to write a code for the hardware. Current build of the OBS Studio uses FFmpeg to encode as NVENC. Studio can do some side work to render the whole scene before encode it.
 

Black Ops

Member
Yeah but the main issue i have with it is that is uses rec601 colour matrix instead of 709 which youtube uses
 

Black Ops

Member
Not yet, i've been relying on mediainfo so far to check the colour matrix of my videos. Hopefully I will have time this week to test them out


Off topic, i've been getting duplicated frames when recording using NVENC. I've been reading other post which say that the "download_frame: 99th percentile" should be around 16ms but mine is around 20ms. Could this be the cause of the lag?

http://pastebin.com/GwYxbDLx

I'm running windows 10 anniversary update with 372.70 Geforce game ready driver
 
Last edited:

Suslik V

Active Member
...when recording using NVENC. I've been reading other post which say that the "download_frame: 99th percentile" should be around 16ms but mine is around 20ms. Could this be the cause of the lag?

http://pastebin.com/GwYxbDLx

I'm running windows 10 anniversary update with 372.70 Geforce game ready driver
I think, it has most significant value of all. You'll see the stutters in preview? "do_encode" is perfect 3.659 ms (hw encoder is good) and far from 16.666ms for 60 fps. Thus no problems on encode (most time). Then problems on rendering (to heavy task or heavy memory usage, I assume).
 

Black Ops

Member
I see occasional stuttering when playing back the video. BTW im recording splinter cell blacklist.

So can this stutter be fixed or am i forever doomed to an eternity of Lag? :)
 

RytoEX

Forum Admin
Forum Moderator
Developer
Yeah but the main issue i have with it is that is uses rec601 colour matrix instead of 709 which youtube uses
It's unclear from this post whether you're talking about Shadowplay or OBS Studio using Rec. 601. If you're talking about OBS Studio, have you checked the Color Space setting (Settings > Advanced > Video)? If you were talking about Shadowplay, disregard.
 

Sapiens

Forum Moderator
On a basic level Shadowplay will have better performance because it's only encoding the frames generated by the card. OBS is compositing a scene with multiple sources, which requires a bit of extra processing power and can be negatively affected if (among other possibilities) your CPU/GPU is maxed out.
 

Suslik V

Active Member
I see occasional stuttering when playing back the video. BTW im recording splinter cell blacklist.

So can this stutter be fixed or am i forever doomed to an eternity of Lag? :)
Try to lower in game settings a bit and see what happens.
 

velvitonator

New Member
If you're using NVENC in OBS, you're getting constant frame rate as well. This means that if you get a long frame--even something like 20ms--the encoder'll be forced to duplicate the previous frame for the next 16ms (assuming you've targeted 60 FPS), which will make your video look choppy even though your own experience is more or less smooth.

I've struggled with this a couple of times, and the only options are either to lower settings to make sure you're hitting 60Hz, solid, or some very complicated frame interpolation stuff that may or may not actually work.

-Velvit
 

DamageInc

Member
To the OP, this is the problem i was and still am having.

Im playing BF4 at 1440p and between 110 to 145 fps. I see this through a 144hz monitor so its lovely and smooth.

Unfortunstely using the nvenc codec to record through obs yields every 7th to 10th frame (when viewed in premiere pro) as a duplicated frame. This makes my "60 fps" recording feel like its a badly done 30 fps recording. It feels stuttery and bad. Whats frustrating is that lowering the bitrate of nvenc does not improve things. Its the rendering stage which is choking us both out.

I note that Lvlcap, a 2million subscriber youtuber posted here with the same issue. His rig is crushingly powerful so this isnt going to improve, and he appeared to give up in the thread on obs being his solution.

Unless someone has a solution, im doing this:

I wanted obs because of its ability to allow me to record multiple audio tracks. This element works very well resulting in 3 tracks for me (game, my mic and Teamspeak3) all synced up perfectly (syncing seperate audio is a big pain in the behind) and more importantly able to be brought into premiere as seperate but synced tracks i can adjust and edit seperately in videos.

So given obs just cant deliver smooth (non frame duplucated), 60fps 1440p video at bitrates around 50-70000 kbs (which shadowplay can do easily) i am now:

Using obs to capture my 3 audio tracks with the "eye" on the scene off. Tjiscway i get an mp4 with my synched audio tracks but no video.

Using shadowplay to record 1440p 60fos video with no audio.

Pull them both into premiere and just sync the ingame bud to ingame audio and its all sorted.

I really hoped obs woukd be a 1 stop shop but it seems not :(
 

velvitonator

New Member
Unfortunstely using the nvenc codec to record through obs yields every 7th to 10th frame (when viewed in premiere pro) as a duplicated frame. This makes my "60 fps" recording feel like its a badly done 30 fps recording. It feels stuttery and bad. Whats frustrating is that lowering the bitrate of nvenc does not improve things. Its the rendering stage which is choking us both out.
In the interest of science, if you cap BF4 at 60 (probably just enabling Vsync), does the issue go away?

I realize that's not a tractable solution in the long term, since your monitor is > 60Hz, but it would help to validate the idea that it's the CFR recording that's screwing you.

It sounds like Shadowplay doesn't have this issue for you? If so, can you check whether Shadowplay's video is variable or constant framerate? Mediainfo should be able to tell you this, but I'd hope some of the video editing tools you're using could also show this.
 

Black Ops

Member
So is there any way for obs to stop compositing scenes and just encode the frames generated by the card lie shadowplay does? All I need is just the gameplay footage without any other scenes/sources
 

RytoEX

Forum Admin
Forum Moderator
Developer
So is there any way for obs to stop compositing scenes and just encode the frames generated by the card lie shadowplay does? All I need is just the gameplay footage without any other scenes/sources

I don't think so. OBS Studio and Shadowplay are not designed or built the same way. OBS Studio is designed to composite various sources into an output file, while Shadowplay is designed to capture gameplay. It seems this has now become "how can I get OBS Studio to perform the same as Shadowplay" instead of "NVENC OBS VS NVENC Shadowplay: Which is better in terms of performance?" So...

16:49:14.833: Loaded scenes:
16:49:14.833: - scene 'Games':
16:49:14.833: - source: 'Banner' (image_source)
16:49:14.833: - source: 'Display Capture' (monitor_capture)
16:49:14.833: - source: 'Intro' (ffmpeg_source)
16:49:14.834: - source: 'Full Screen Capture' (game_capture)
You could remove all of the other sources in your scene if you only need your gameplay footage. You can always edit your intro footage into a final product in post-production.

If your OS is 64-bit, you could try the 64-bit OBS Studio to see if it provides better performance. You could try to reduce the number of applications and processes running in the background. You could run OBS Studio minimized or disable its preview.

If all of that fails, your last resort options are:
  • reduce your recording FPS
  • reduce your recording output resolution
  • lower your in-game settings
 

Black Ops

Member
The scenes mentioned in your quote are hidden anyway but ill try out 64bit OBS studio to see if there is any difference. Thanks for the info
 
Top