Question / Help [NVENC] Duplicating Frames at any Bitrate or FPS

I've been messing around with recording and have hit a bit of a snag.
I would like to be able to reliably record locally 1080@60fps with OBS, but the CPU just can't take the hit when using h264.
I then started looking into NVENC as I already use the NVENC_Export plugin for Premiere Pro.

Whenever I begin recording with NVENC, I can see the problem within the preview window, frames are duplicating which creates an almost "glitch in the matrix" effect happening 2-3 times a second, and is present when playing back the output.

Mostly stationary footage also exhibits this behaviour, as well as 30fps but not as pronounced.
I immediately thought that the issue was due to my SLI. I disabled and retested, and still get the same result.

I've tried:
CBR on/off
Bitrates 1,000 - 50,000
CFR on/off
NVENC Presets Default, NVDefaults, HQ - LL, HQ, HP

I'm seeing:
Delayed frames ~0.8%
Duplicated frames ~9 - 15%
Avg Framerate ~ 140
Framerate during recording ~ 115

System:
i5 4670 @ 4.2ghz
16gb Ram
SLI 770s (337.91 drivers)

Recording onto raid 1 (290mb/s) disks

I will post the log once I am back from the office, as well as upload a sidebyside (Dxtory UTVideo vs OBS NVENC) to show how pronounced the issue is.

Anyone experience similar?

===Edit for logs etc===

Comparison Video:
Without SLI and then With SLI
http://youtu.be/Ah3gv91pn-s
DXTory UTVideo Control: http://youtu.be/TQ7CPR7XkW0
Really bad in BF4: http://youtu.be/Jnv7gr16je8

Logs:
Without SLI: http://pastebin.com/hXDnBpAs
With SLI: http://pastebin.com/xvMRukPd
BF4: http://pastebin.com/bpEbsLcN
 
Last edited:
How are you capturing the games? Window capture?Monitor? Game?

Game capture of course! :)
I've also tried: DXTory (UTVideo@30fps)->Direct out->Obs->Video Capture->Output(NVENC)

Would dual monitors present any issues, ie having the preview on a secondary screen?
(I just thought I'd try disabling preview while encoding tonight...)

Also another fun thing I've noticed:

When running in SLI mode and I recieve a steam notification, I get almost interpolated frames.
One frame with the overlay, another where it's missing, these frame "skips" coincide with the frame duplications...
Where I have no overlay, I get massive repetition...
(Will try disabling steam overlay)

This also happens to the DXTory FPS overlay, when enabled.
 

Boildown

Active Member
The problem is probably SLI. Also the best NVEnc preset to use at 1080p60 on a Kepler-based GPU is High Performance. The others don't have enough speed to keep up, resulting in duplicated frames.

If you want specific help, you'll post a log file, by the way.
 
The problem is probably SLI. Also the best NVEnc preset to use at 1080p60 on a Kepler-based GPU is High Performance. The others don't have enough speed to keep up, resulting in duplicated frames.

If you want specific help, you'll post a log file, by the way.

Thanks Boildown, I fully intend to post a log and comparitive videos to demonstrate the point in ~3hrs once I'm home from the office.

I have disabled SLI and used the HP preset in previous tests.

I would have thought that if the issue is present at 1000kbps (cutting down the usage requirements) it would point to something more fundamentally wrong with NVENC build/configuration/my hardware.

On a side note:
Can I configure which card NVENC uses for encoding?
 
Update:
It's definitely SLI+OBS causing this issue, NVENC is just an innocent bystander.

I've used DXTory to output Lagarith@60fps to DirectShow, and then pulled that in via Video Source within OBS.
Encoding that stream 1080p@60fps:50mbps results in a silky smooth encode, no hitches and very low (~0.05%) repeated frames.

I'll assume (reading through the forum) that OBS devs thoroughly dislike SLI and we won't be seeing support for the distributed frame rendering any time soon.

I guess I have 2 options, upgrade to a 780ti, or move back to DXTory@30fps :(
 

Dogway

New Member
I've also tried: DXTory (UTVideo@30fps)->Direct out->Obs->Video Capture->Output(NVENC)
....
I've used DXTory to output Lagarith@60fps to DirectShow, and then pulled that in via Video Source within OBS.
Probably a dumb question, but why do you encode to lagarith/UTVideo instead of NVENC directly?

Guess, this answers it.
 
Last edited:
Top