Question / Help 1440p 60fps for content creation.

FPSExile

New Member
Hi,

I was hoping I could get some advice from you guy's regarding my recording setup.

I usually play and record the game as well as facecam on the one PC and recently started getting into trouble when I upgraded to an SLR for my facecam. I'm in the process of offloading the facecam recording to a second machine using a capture card so I can play and record 1440p 60 on my main rig.

I was happy to record the game at a bitrate of 50000 in 1080p 60 but i'd like to push that higher now for 1440p 60.

I can play Quake Champions perfectly fine with 90+fps even while recording and the fps display on OBS doesn't seem to fluctuate much from the 60fps it is displaying but when I watch the file back it looks choppy. Not hugely but enough for it to not look smooth. Ideally, I'd like to not lose a single frame and have the same smooth footage a capture card will give you.

I've tried this with OBS Studio (NVENC), Shadowplay, and Dxtory with the H.264vfw codec. Dxtory hammers my CPU though.
I hope you guy's can help me narrow this down. :)

Obviously, I'm running low on ram but I don't want to make the mistake of running out to buy DDR3 if I have to upgrade to DDR4 anyway. (I'm not an expert)

This is the final video I end up with. (Recorded with OBS NVENC 1440p 60 @60000)


My system specs.

Corsair RM Series RM 850
Maximus VII Hero
Intel Core i7-4790K
16GB G.Skill TridentX 2400MHz
KFA2 GeForce GTX 970 "Hall of Fame Edition"
2 SSD's in Raid0 that I record to separate from my boot drive. Also, Quake is installed on my boot drive.

LOG File:
https://gist.github.com/18c65d365ae76a065126f75fbc5eb0e2
 

Attachments

Update OBS, you're a little outdated.

Try to cut dxtory out of your workflow. What specifically are you using it for?

Also, you should try using CQP instead of CBR for local recordings, you'll have a much better experience overall and you won't have to mess with bitrate settings. Start with CQP 16 and see how it looks.

Lastly, from your log:

Code:
13:54:09.685: Output 'adv_file_output': Number of skipped frames due to encoding lag: 510 (28.3%)
13:54:09.685: Output 'adv_file_output': Number of lagged frames due to rendering lag/stalls: 1077 (58.9%)

Skipped frames indicates your CPU is overloaded, and lagged frames indicates your GPU is overloaded. A 970 is probably not going to be able to both play a game and record at 1440p 60fps.
 
Well, I used to use Dxtory for the audio channels but abandoned it for OBS.

I'll try out CQP now.

Will turning on Vsync help free up some processing power from my GPU?

Also, I guess when my CPU usage spikes I get skipped frames. If my CPU usage is at around 50% most of the time that should be acceptable right?

Thank you for your quick reply.
 
Ignore what your CPU usage graphs are telling you, and just look at the OBS log files. With hyperthreading its not practical to make a judgement of how loaded your CPU "should" be. But the OBS logs will tell you actual results, and that's what matters. You want skipped and lagged frames to be under 1% for the video to have a chance of looking normal.

Next, the reason your performance is so bad is probably because you're running a Logitech C920 webcam at 1920x1080 resolution. The USB bandwidth on most (but not all) computers can't handle what it outputs. Set the resolution on the webcam down to 540p or even less to avoid this.

Also your Elgato is a USB capture device, which can have the same problem as the webcam. But at least it compresses its output before putting it on the USB bus. Still you should make sure the Elgato and your webcam reside on separate USB root hubs, as both of them operating on the same one will clog it and make for bad times.

Seeing as you were using UltraFast x264 preset, I'm hoping fixing these two issues might resolve your skipped/lagged frames. You shouldn't otherwise have CPU usage issues.
 
Ok thanx. Well the Elgato is going to be removed from this machine. I deleted my old scene setups and made a new one with just game capture and audio. I also unplugged my C920.

Code:
19:53:46.623: Switched to scene 'Recording'
19:53:46.623: ------------------------------------------------
19:53:46.624: Loaded scenes:
19:53:46.624: - scene 'Recording':
19:53:46.624:     - source: 'Game Capture' (game_capture)
19:53:46.624: ------------------------------------------------
19:53:46.624: Removed scene collection 'Untitled' (C:\Users\FPS Exile\AppData\Roaming\obs-studio/basic/scenes/Untitled.json.bak.json), switched to 'Recording' (Recording.json)
19:53:46.624: ------------------------------------------------
19:54:27.529: WASAPI: Device 'Speakers (Realtek High Definition Audio)' initialized
19:54:27.560: WASAPI: Device 'Line Out (4- Scarlett 2i4 USB)' initialized
19:54:27.594: WASAPI: Device 'Line In (4- Scarlett 2i4 USB)' initialized
19:54:27.598: Settings changed (audio)
19:54:27.598: ------------------------------------------------
19:56:28.971: [game-capture: 'Game Capture'] attempting to hook fullscreen process: QuakeChampions.exe
19:56:28.976: [game-capture: 'Game Capture'] using helper (compatibility hook)
19:56:28.978: [game-capture: 'Game Capture'] hook not loaded yet, retrying..
19:56:32.238: [game-capture: 'Game Capture'] attempting to hook fullscreen process: QuakeChampions.exe
19:56:32.758: [game-capture: 'Game Capture'] d3d11 shared texture capture successful
19:56:32.802: [game-capture: 'Game Capture'] shared texture capture successful
19:58:40.503: ---------------------------------
19:58:40.503: [NVENC encoder: 'recording_h264'] settings:
19:58:40.503:     rate_control: CQP
19:58:40.503:     bitrate:      0
19:58:40.503:     cqp:          16
19:58:40.503:     keyint:       250
19:58:40.503:     preset:       default
19:58:40.503:     profile:      main
19:58:40.503:     level:        auto
19:58:40.503:     width:        2560
19:58:40.503:     height:       1440
19:58:40.503:     2-pass:       false
19:58:40.503:     b-frames:     2
19:58:40.503:     GPU:          0
19:58:40.503:
19:58:40.822: ---------------------------------
19:58:40.822: [FFmpeg aac encoder: 'Track1'] bitrate: 160, channels: 2
19:58:40.827: ==== Recording Start ===============================================
19:58:40.827: [ffmpeg muxer: 'adv_file_output'] Writing file 'Z:/Recorded Footage/2017-07-25 19-58-40.mp4'...
19:59:32.027: [ffmpeg muxer: 'adv_file_output'] Output of file 'Z:/Recorded Footage/2017-07-25 19-58-40.mp4' stopped
19:59:32.027: Output 'adv_file_output': stopping
19:59:32.027: Output 'adv_file_output': Total encoded frames: 3071
19:59:32.027: Output 'adv_file_output': Total drawn frames: 3072
19:59:32.027: ==== Recording Stop ================================================
19:59:32.134: warning: 2 frames left in the queue on closing

This looks fine, right? No skipped or lagged frames?
 
Do a five minute + test of high action video to be sure. That's only 52 seconds. Also you switched to NVEnc instead of x264 so its hard to directly compare. But no problems in what you posted.
 
Well, I've been doing a lot more testing. 1440p seems to be just slightly too much for my system.

You can see what I tried in the Log File https://gist.github.com/d67f3fbd49246f29f5b6bdba96a6c8e5

I think I've settled on downscaling to 2048x1152 then upscaling again in Premiere. Not done a test render yet but in my mind, it should come out better than 1080p upscaled to 1440p. Hopefully, it will.

Thank you very much for your help and advice on here, just wish I knew enough to repay the favour.
 
If it is for youtube stay at 2048x1152 instead of rescaling it up.

2048x1152 will get youtube's bitrate of 1440p, the label on the player will be 1080p, but internally it is their 1440p preset already (ID 308) which you can lookup at stats for nerds.
 
Back
Top