Question / Help Low FPS Game Capture

Chazney

New Member
Hi,

I have looked around and I can't seem to find a solution for this. This is not an issue with OBS, since XSplit produces the same issue.

I am running GTA:VC through Steam, running at 1920x1080x32 fullscreen. The game runs fine on my end at 60FPS. However, both OBS and XSplit seem to pick it up at a lower FPS. I can't tell what FPS it is, but probably something around 20. The FPS is consistent, so it seems to be capped. Other games seem to be captured alright, such as SC2, which captures at full 60FPS.

Has anyone else come across this issue in other games? Perhaps GTA:VC uses some rendering method that causes capture issues, but I have seen other people streaming GTA:VC just fine, so perhaps just the Steam version?

If anyone could shed even a single ray of light on this, I would be grateful. Thanks. I can do a recording on Twitch if you need to actually see it, but I hope I explained it well enough.

EDIT:
Here is a log:

Code:
Open Broadcaster Software v0.472b - 64bit ( ^ω^)
-------------------------------
CPU Name: Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz
CPU Speed: 3200MHz
Physical Memory:  16327MB Total, 12976MB Free
stepping id: 7, model 13, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 12, total cores 6
monitor 1: pos={0, 0}, size={1920, 1080}
monitor 2: pos={1920, 0}, size={1920, 1080}
Windows Version: 6.1 Build 7600 
Aero is Disabled
------------------------------------------
Adapter 1
  Video Adapter: NVIDIA GeForce GTX 580
  Video Adapter Dedicated Video Memory: 3166109696
  Video Adapter Shared System Memory: 3996864512
=====Stream Start=====================================================================
  Multithreaded optimizations: On
  Base resolution: 1920x1080
  Output resolution: 1920x1080
------------------------------------------
Loading up D3D10...
Playback device Default
------------------------------------------
Using desktop audio input: Headset Earphone (Microsoft LifeChat LX-3000 )
------------------------------------------
Using auxilary audio input: Headset Microphone (Microsoft LifeChat LX-3000 )
------------------------------------------
Audio Encoding: AAC
    bitrate: 128
Using Window Capture
Using Monitor Capture
------------------------------------------
    device: Live! Cam Sync (VF0520),
    device id \\?\usb#vid_041e&pid_406c&mi_00#7&3b3d2c6&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
    chosen type: YUY2, usingFourCC: false, res: 800x600 - 800x600, fps: 15-30, fourCC: 'YUY2'

Using directshow input
Using text output
x264: using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2
x264: profile High, level 4.2
------------------------------------------
Video Encoding: x264
    fps: 60
    width: 1920, height: 1080
    preset: veryfast
    CBR: no
    CFR: yes
    max bitrate: 4000
    buffer size: 4000
    quality: 7
------------------------------------------
Warning -- Capture BitBlt failed..  just so you know
++++++++++++++++++++++++++++++++++++++++++++++++++++++
  New Scene
Using Monitor Capture
Total frames rendered: 21836, number of frames that lagged: 33 (0.15%) (it's okay for some frames to lag)
Total duplicated CFR frames: 166
x264: frame I:88    Avg QP:24.15  size:138282
x264: frame P:5724  Avg QP:23.10  size:  1491
x264: frame B:16122 Avg QP:26.36  size:    77
x264: consecutive B-frames:  1.7%  0.1%  2.5% 95.7%
x264: mb I  I16..4: 25.1% 26.5% 48.3%
x264: mb P  I16..4:  0.7%  0.9%  0.1%  P16..4:  1.2%  0.5%  0.2%  0.0%  0.0%    skip:96.4%
x264: mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.1%  0.0%  0.0%  direct: 0.0%  skip:99.9%  L0:53.5% L1:43.8% BI: 2.7%
x264: 8x8 transform intra:40.7% inter:31.5%
x264: coded y,uvDC,uvAC intra: 49.0% 35.3% 16.7% inter: 0.1% 0.1% 0.0%
x264: i16 v,h,dc,p: 49% 31% 13%  6%
x264: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 14% 34% 24%  4%  4%  4%  6%  3%  7%
x264: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 25% 10%  6%  7%  7%  6%  7%  7%
x264: i8c dc,h,v,p: 65% 18% 14%  3%
x264: Weighted P-Frames: Y:0.1% UV:0.0%
x264: kb/s:480.32
=====Stream End=======================================================================
=====Stream Start=====================================================================
  Multithreaded optimizations: On
  Base resolution: 1920x1080
  Output resolution: 1920x1080
------------------------------------------
Loading up D3D10...
Playback device Default
------------------------------------------
Using desktop audio input: Headset Earphone (Microsoft LifeChat LX-3000 )
------------------------------------------
Using auxilary audio input: Headset Microphone (Microsoft LifeChat LX-3000 )
------------------------------------------
Audio Encoding: AAC
    bitrate: 128
Using Monitor Capture
x264: using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2
x264: profile High, level 4.2
------------------------------------------
Video Encoding: x264
    fps: 60
    width: 1920, height: 1080
    preset: veryfast
    CBR: no
    CFR: yes
    max bitrate: 4000
    buffer size: 4000
    quality: 7
------------------------------------------
Using RTMP service: Twitch / Justin.tv
  Server selection: rtmp://live-lhr.justin.tv/app
bufferTime: 1749, outputRateWindowTime: 1000, dropThreshold: 2249
Total frames rendered: 6815, number of frames that lagged: 30 (0.44%) (it's okay for some frames to lag)
Total duplicated CFR frames: 166
RTMPPublisher::SocketLoop: Aborting due to bStopping
Number of b-frames dropped: 0 (0%), Number of p-frames dropped: 0 (0%), Total 0 (0%)
x264: frame I:39    Avg QP:24.05  size: 97162
x264: frame P:2477  Avg QP:26.40  size:  8038
x264: frame B:4360  Avg QP:27.55  size:    89
x264: consecutive B-frames: 12.5%  1.9% 20.8% 64.9%
x264: mb I  I16..4: 24.4% 44.8% 30.8%
x264: mb P  I16..4:  4.4%  5.0%  0.4%  P16..4:  6.7%  2.8%  0.9%  0.0%  0.0%    skip:79.9%
x264: mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.2%  0.0%  0.0%  direct: 0.0%  skip:99.7%  L0:81.0% L1:17.9% BI: 1.1%
x264: 8x8 transform intra:50.2% inter:32.2%
x264: coded y,uvDC,uvAC intra: 39.3% 18.8% 5.5% inter: 0.9% 0.5% 0.1%
x264: i16 v,h,dc,p: 37% 37% 20%  7%
x264: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 11% 33% 29%  4%  4%  3%  7%  3%  7%
x264: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 29% 14%  6%  6%  6%  7%  5%  6%
x264: i8c dc,h,v,p: 70% 18% 11%  1%
x264: Weighted P-Frames: Y:0.7% UV:0.6%
x264: kb/s:1681.37
=====Stream End=======================================================================

Profiler results:

==============================================================
frame - [100%] [avg time: 9.737 ms] [avg calls per frame: 1] [children: 95.8%] [unaccounted: 4.16%]
| scene->Preprocess - [22.6%] [avg time: 2.199 ms] [avg calls per frame: 1]
| video encoding and uploading - [73.3%] [avg time: 7.133 ms] [avg calls per frame: 1] [children: 18.2%] [unaccounted: 55.1%]
| | CopyResource - [0.123%] [avg time: 0.012 ms] [avg calls per frame: 0]
| | conversion to 4:2:0 - [0.0822%] [avg time: 0.008 ms] [avg calls per frame: 0]
| | call to encoder - [17.9%] [avg time: 1.746 ms] [avg calls per frame: 1]
| | sending stuff out - [0.0205%] [avg time: 0.002 ms] [avg calls per frame: 1]
==============================================================

Chazney
 

hilalpro

Member
obs reports nothing wrong other than you're not using game capture. if you're sure that you're using it post a link to the vod.
 

Chazney

New Member
Sure, I recorded one with a bit of commentary describing what is happening:
http://www.twitch.tv/chazneysr/b/373232074

GTA:VC starts at 2:00
Also note that I switch to fullscreen at 1:30 in SC2 to show that it isn't an issue and it starts flickering like crazy, as I expected it would. Just a fair warning so you don't go blind.

I did say that SC2 was lagging on the stream which wasn't actually visible on the VOD, but it did stop after a few seconds and ran pretty much as you see on the VOD. As I also mention, GTA:VC is not unwatchable by any means, but I would prefer it to run at 60FPS.

What you are seeing on the VOD is exactly what I see in the OBS preview window.

obs reports nothing wrong other than you're not using game capture.
I have tried game capture too, and the same thing happens.

EDIT:
Hmm, actually, it seems I lied about the game capture. I'm sure I had it working earlier, but apparently not. The layer just displays transparent now. Other games are captured correctly. GTA:VC runs in DX9 as far as I remember. Could this cause issues? I don't see why this would cause the screen capture to fall in FPS though, but maybe there's something I don't know.

Chazney
 

hilalpro

Member
it looks that you're not running the source "game capture" but rather you're trying capturing the whole screen.

first run gta and alt tab out back to obs
on the sources area disable software capture and add a new source but should be game capture (the bottom option from when you see software capture) it should ask you what program to capture choose the game. you can also do this to starcraft while running it on full screen mode. the flickering is supposed to happen only when you use software capture (whole monitor).

note that the source game capture does not start capturing until you switch back to the game and start playing for a couple of seconds. game capture is supposed to capture dx9 games so it should be no problem.
 

Chazney

New Member
Yeah, this is what I had set up. It just displays black (well, transparent actually, since you can see things through the layer). Here is a both monitor screenshot with the game capture settings:
http://i.imgur.com/NDpNFeE.jpg

If I change the application, it can capture. I have tried SC2 and SFxT, both capture fine. gta-vc.exe shows as 32 bit in task manager, but I have tried both 32 and 64 bit versions of OBS anyway, and neither capture it. The flicker for software capture isn't an issue, since GTA:VC doesn't have it, so I would settle for getting that to produce 60FPS if there is no other option.

Latest logs, FYI:

32-bit:
Code:
Open Broadcaster Software v0.472b - 32bit (´・ω・`)
-------------------------------
CPU Name: Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz
CPU Speed: 3200MHz
Physical Memory:  4095MB Total, 4095MB Free
stepping id: 7, model 13, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 12, total cores 6
monitor 1: pos={0, 0}, size={1920, 1080}
monitor 2: pos={1920, 0}, size={1920, 1080}
Windows Version: 6.1 Build 7600 
Aero is Disabled
------------------------------------------
Adapter 1
  Video Adapter: NVIDIA GeForce GTX 580
  Video Adapter Dedicated Video Memory: 3166109696
  Video Adapter Shared System Memory: 3996864512
=====Stream Start=====================================================================
  Multithreaded optimizations: On
  Base resolution: 1920x1080
  Output resolution: 1920x1080
------------------------------------------
Loading up D3D10...
Playback device Default
------------------------------------------
Using desktop audio input: Headset Earphone (Microsoft LifeChat LX-3000 )
------------------------------------------
Using auxilary audio input: Headset Microphone (Microsoft LifeChat LX-3000 )
------------------------------------------
Audio Encoding: AAC
    bitrate: 128
Using Monitor Capture
Using graphics capture
x264: using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2
x264: profile High, level 4.2
------------------------------------------
Video Encoding: x264
    fps: 60
    width: 1920, height: 1080
    preset: veryfast
    CBR: no
    CFR: no
    max bitrate: 4000
    buffer size: 4000
    quality: 7
------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++
  New Scene
Using text output
------------------------------------------
    device: Live! Cam Sync (VF0520),
    device id \\?\usb#vid_041e&pid_406c&mi_00#7&3b3d2c6&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
    chosen type: YUY2, usingFourCC: false, res: 800x600 - 800x600, fps: 15-30, fourCC: 'YUY2'

Using directshow input
Using Monitor Capture
Using Window Capture
++++++++++++++++++++++++++++++++++++++++++++++++++++++
  New Scene
Using Monitor Capture
Using graphics capture
++++++++++++++++++++++++++++++++++++++++++++++++++++++
  New Scene
------------------------------------------
    device: Live! Cam Sync (VF0520),
    device id \\?\usb#vid_041e&pid_406c&mi_00#7&3b3d2c6&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
    chosen type: YUY2, usingFourCC: false, res: 800x600 - 800x600, fps: 15-30, fourCC: 'YUY2'

Using directshow input
Using graphics capture
Total frames rendered: 5109, number of frames that lagged: 43 (0.84%) (it's okay for some frames to lag)
x264: frame I:22    Avg QP:21.54  size: 38068
x264: frame P:1274  Avg QP:17.78  size:   393
x264: frame B:3748  Avg QP:19.27  size:    76
x264: consecutive B-frames:  0.9%  0.2%  0.1% 98.9%
x264: mb I  I16..4: 83.2%  3.4% 13.4%
x264: mb P  I16..4:  0.2%  0.1%  0.0%  P16..4:  0.4%  0.1%  0.1%  0.0%  0.0%    skip:99.1%
x264: mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.1%  0.0%  0.0%  direct: 0.0%  skip:99.9%  L0:46.6% L1:50.6% BI: 2.8%
x264: 8x8 transform intra:5.5% inter:28.1%
x264: coded y,uvDC,uvAC intra: 12.8% 13.9% 9.9% inter: 0.0% 0.1% 0.0%
x264: i16 v,h,dc,p: 93%  4%  2%  1%
x264: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 21% 28%  3%  6%  5%  4%  4%  6%
x264: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 24% 12%  5%  6%  6%  5%  6%  5%
x264: i8c dc,h,v,p: 88%  6%  6%  1%
x264: Weighted P-Frames: Y:0.2% UV:0.1%
x264: kb/s:147.49
=====Stream End=======================================================================

Profiler results:

==============================================================
frame - [100%] [avg time: 5.884 ms] [avg calls per frame: 1] [children: 89.6%] [unaccounted: 10.4%]
| scene->Preprocess - [17%] [avg time: 1 ms] [avg calls per frame: 1]
| video encoding and uploading - [72.6%] [avg time: 4.274 ms] [avg calls per frame: 1] [children: 29.8%] [unaccounted: 42.9%]
| | CopyResource - [0.221%] [avg time: 0.013 ms] [avg calls per frame: 0]
| | conversion to 4:2:0 - [0.119%] [avg time: 0.007 ms] [avg calls per frame: 0]
| | call to encoder - [29.4%] [avg time: 1.732 ms] [avg calls per frame: 0]
| | sending stuff out - [0%] [avg time: 0 ms] [avg calls per frame: 0]
==============================================================

64-bit:
Code:
Open Broadcaster Software v0.472b - 64bit ( ^ω^)
-------------------------------
CPU Name: Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz
CPU Speed: 3200MHz
Physical Memory:  16327MB Total, 12519MB Free
stepping id: 7, model 13, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 12, total cores 6
monitor 1: pos={0, 0}, size={1920, 1080}
monitor 2: pos={1920, 0}, size={1920, 1080}
Windows Version: 6.1 Build 7600 
Aero is Disabled
------------------------------------------
Adapter 1
  Video Adapter: NVIDIA GeForce GTX 580
  Video Adapter Dedicated Video Memory: 3166109696
  Video Adapter Shared System Memory: 3996864512
=====Stream Start=====================================================================
  Multithreaded optimizations: On
  Base resolution: 1920x1080
  Output resolution: 1920x1080
------------------------------------------
Loading up D3D10...
Playback device Default
------------------------------------------
Using desktop audio input: Headset Earphone (Microsoft LifeChat LX-3000 )
------------------------------------------
Using auxilary audio input: Headset Microphone (Microsoft LifeChat LX-3000 )
------------------------------------------
Audio Encoding: AAC
    bitrate: 128
Using graphics capture
Using text output
------------------------------------------
    device: Live! Cam Sync (VF0520),
    device id \\?\usb#vid_041e&pid_406c&mi_00#7&3b3d2c6&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
    chosen type: YUY2, usingFourCC: false, res: 800x600 - 800x600, fps: 15-30, fourCC: 'YUY2'

Using directshow input
Using Window Capture
x264: using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2
x264: profile High, level 4.2
------------------------------------------
Video Encoding: x264
    fps: 60
    width: 1920, height: 1080
    preset: veryfast
    CBR: no
    CFR: no
    max bitrate: 4000
    buffer size: 4000
    quality: 7
------------------------------------------
Total frames rendered: 47857, number of frames that lagged: 46 (0.10%) (it's okay for some frames to lag)
x264: frame I:193   Avg QP:26.30  size: 39309
x264: frame P:12057 Avg QP:15.42  size:   146
x264: frame B:35542 Avg QP:17.91  size:    70
x264: consecutive B-frames:  0.8%  0.0%  0.0% 99.1%
x264: mb I  I16..4: 86.5%  0.7% 12.8%
x264: mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  0.1%  0.0%  0.0%  0.0%  0.0%    skip:99.9%
x264: mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.0%  0.0%  0.0%  direct: 0.0%  skip:100.0%  L0:47.1% L1:49.8% BI: 3.1%
x264: 8x8 transform intra:1.0% inter:27.8%
x264: coded y,uvDC,uvAC intra: 10.1% 8.8% 8.0% inter: 0.0% 0.0% 0.0%
x264: i16 v,h,dc,p: 96%  3%  2%  0%
x264: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 50% 17%  3%  2%  2%  2%  3%  2%
x264: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 30% 11%  3%  5%  5%  5%  5%  5%
x264: i8c dc,h,v,p: 92%  4%  4%  0%
x264: Weighted P-Frames: Y:0.0% UV:0.0%
x264: kb/s:117.97
=====Stream End=======================================================================

Profiler results:

==============================================================
frame - [100%] [avg time: 5.802 ms] [avg calls per frame: 1] [children: 94.8%] [unaccounted: 5.21%]
| scene->Preprocess - [7.58%] [avg time: 0.44 ms] [avg calls per frame: 1]
| video encoding and uploading - [87.2%] [avg time: 5.06 ms] [avg calls per frame: 1] [children: 30.7%] [unaccounted: 56.5%]
| | CopyResource - [0.19%] [avg time: 0.011 ms] [avg calls per frame: 0]
| | conversion to 4:2:0 - [0.0689%] [avg time: 0.004 ms] [avg calls per frame: 0]
| | call to encoder - [30.4%] [avg time: 1.765 ms] [avg calls per frame: 0]
| | sending stuff out - [0.0172%] [avg time: 0.001 ms] [avg calls per frame: 0]
==============================================================
 

hilalpro

Member
the best option in this case is to enable aero (from settings >video) and do software capture (window capture) on gta. it's about the same capture performance as game capture on your system and just stick to 64bit version of obs. application/game platform is no longer a requirement on obs.

make sure that the windows theme is transparent before doing window capture.
 

Chazney

New Member
I can't select GTA for a window capture unfortunately since it can only run in fullscreen and therefore minimizes whenever I go to select it. It seems a window capture cannot be performed on a minimized window, which makes sense.

I'm still puzzled as to why it can't capture the screen at full speed when GTA is running. I've even tried setting up a view for both screens, and the second view is running at full speed. Honestly, the only solution seems to be trying to fix the screen capture.

I will see if I can get some information from someone else who has streamed it in the meantime.
 
Pretty sure GTA VC uses Direct x 8(requirements ask for DX9 but it uses DX8) which game capture does not support yet(GTA SA and GTA4 are DX9),
Edit:DXtory indeed shows GTA VC being a DX8 game "View: Type=DX8"

You also have "Frame limiter" on in the graphic settings which lowers the game to 30fps last I checked(if you disable this expect high frame rates but strange physics issues).

GTA VC also has no option to use windowed mode so you may have to find some kind of modification in order to force it into windowed and then use Window capture.
 
Chazney said:
Edit:DXtory indeed shows GTA VC being a DX8 game "View: Type=DX8"

Nailed it. I managed to get a d3d8.dll with d3d9 calls in it, and now the game capture works perfectly at full speed. For those interested, the DLL was found here:
http://enbdev.com/convertor_dx8_dx9_v0018.htm

Thanks for all the information, it has been really helpful.

Chazney

Nice one, I'll have to keep that link safe at least until Game Capture supports DX8.
 

Lain

Forum Admin
Lain
Forum Moderator
Developer
what in the nine divines? chazney.. you.. brilliant son of a. how well does it work? you could get full capture speed with that, full GPU capture
 
Top