Question / Help Low FPS on stream but High FPS In-game.

xkamerz

New Member
CPU: i7-4770k
Ram: 8gb ddr 1600
MB: Gigabyte Z87x-UD4H
GPU: GTX 295

I dont know why, but im trying to stream at 1920x1200 @30 Fps on Twitch, but it runs at 2-3 fps.
The point is the machine can handle it because ingame I have 60fps stable.

Can anyone have an idea why is this happening?

Oh before you ask, I have 10mg/s upload rate & 100mg/s download rate.
 

vbdkv

Member
Post a log, otherwise it's just guessing work.
My initial thought though, you have a quad core. Meh.

But er post your log. You can access it in OBS > Settings > Open Log Folder.
 

dodgepong

Administrator
Community Helper
Yes, we would need to see a log file.

Though your CPU should be fine. The i7-4770k is technically a quad core, but has hyperthreading, so it should be quite a bit faster than a normal quad core. And quad cores are fine for streaming, anyway.
 

Krazy

Town drunk
Your GPU is likely holding you back here. It's very underpowered for what OBS needs, unfortunately. I'm surprised you aren't noticing in game performance issues.

Anyway, you will almost certainly have to downscale to at least 720p with that GPU. Your CPU is more than enough, however, being a Haswell i7.
 

xkamerz

New Member
There it goes, just let you know i tried setting max fps to 30 and i had the same problem (60 in this log).

Code:
01:08:16: Open Broadcaster Software v0.592b - 32bit (´・ω・`)
01:08:16: -------------------------------
01:08:16: CPU Name: Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz
01:08:16: CPU Speed: 3491MHz
01:08:16: Physical Memory:  4095MB Total, 4095MB Free
01:08:16: stepping id: 3, model 60, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 8, total cores 4
01:08:16: monitor 1: pos={0, 0}, size={1920, 1200}
01:08:16: monitor 2: pos={1920, 0}, size={1920, 1080}
01:08:16: Windows Version: 6.1 Build 7601 S
01:08:16: Aero is Disabled
01:08:16: -------------------------------
01:08:16: OBS Modules:
01:08:16: Base Address     Module
01:08:16: 00CC0000         OBS.exe
01:08:16: 6A9A0000         OBSApi.dll
01:08:16: 6A760000         DShowPlugin.dll
01:08:16: 6A740000         GraphicsCapture.dll
01:08:16: 6A720000         NoiseGate.dll
01:08:16: 6A700000         PSVPlugin.dll
01:08:16: ------------------------------------------
01:08:16: Adapter 1
01:08:16:   Video Adapter: NVIDIA GeForce GTX 295
01:08:16:   Video Adapter Dedicated Video Memory: 911605760
01:08:16:   Video Adapter Shared System Memory: 3354996736
01:08:16:   Video Adapter Output 1: pos={0, 0}, size={1920, 1200}, attached=true
01:08:16:   Video Adapter Output 2: pos={1920, 0}, size={1920, 1080}, attached=true
01:08:16: =====Stream Start: 2014-02-01, 01:08:16===============================================
01:08:16:   Multithreaded optimizations: On
01:08:16:   Base resolution: 1920x1200
01:08:16:   Output resolution: 1920x1200
01:08:16: ------------------------------------------
01:08:16: Loading up D3D10 on NVIDIA GeForce GTX 295 (Adapter 1)...
01:08:16: ------------------------------------------
01:08:16: Audio Format: 48000hz
01:08:16: Playback device Default
01:08:16: ------------------------------------------
01:08:16: Using desktop audio input: Altavoces (Logitech G930 Headset)
01:08:16: Using 7.1 surround speaker setup
01:08:16: ------------------------------------------
01:08:16: Using auxilary audio input: Micrófono (Logitech G930 Headset)
01:08:16: ------------------------------------------
01:08:16: Audio Encoding: AAC
01:08:16:     bitrate: 128
01:08:16: Using graphics capture
01:08:16: Scene buffering time set to 400
01:08:16: ------------------------------------------
01:08:16: Video Encoding: x264
01:08:16:     fps: 60
01:08:16:     width: 1920, height: 1200
01:08:16:     preset: veryfast
01:08:16:     profile: main
01:08:16:     keyint: 120
01:08:16:     CBR: yes
01:08:16:     CFR: no
01:08:16:     max bitrate: 3500
01:08:16:     buffer size: 3500
01:08:16: ------------------------------------------
01:08:16: MMDeviceAudioSource: Frequency for device 'Altavoces (Logitech G930 Headset)' is 1536000, samples per sec is 48000
01:08:16: MMDeviceAudioSource: Frequency for device 'Micrófono (Logitech G930 Headset)' is 64000, samples per sec is 16000
01:08:16: SharedTexCapture hooked
01:08:18: Total frames encoded: 99, total frames duplicated: 19 (19.19%)
01:08:18: Total frames rendered: 108, number of late frames: 1 (0.93%) (it's okay for some frames to be late)
01:08:18: 
01:08:18: Profiler time results:
01:08:18: 
01:08:18: ==============================================================
01:08:18: video thread frame - [100%] [avg time: 8.208 ms] [children: 90.2%] [unaccounted: 9.76%]
01:08:18: | scene->Preprocess - [0.0244%] [avg time: 0.002 ms]
01:08:18: | GPU download and conversion - [90.2%] [avg time: 7.405 ms] [children: 124%] [unaccounted: -33.8%]
01:08:18: | | flush - [0.439%] [avg time: 0.036 ms]
01:08:18: | | CopyResource - [124%] [avg time: 10.141 ms]
01:08:18: | | conversion to 4:2:0 - [0.0244%] [avg time: 0.002 ms]
01:08:18: Convert444Threads - [100%] [avg time: 1.543 ms] [children: 99.5%] [unaccounted: 0.454%]
01:08:18: | Convert444toNV12 - [99.5%] [avg time: 1.536 ms]
01:08:18: encoder thread frame - [100%] [avg time: 3.248 ms]
01:08:18: ==============================================================
01:08:18: 
01:08:18: 
01:08:18: Profiler CPU results:
01:08:18: 
01:08:18: ==============================================================
01:08:18: video thread frame - [cpu time: avg 3.9 ms, total 421.202 ms] [avg calls per frame: 1]
01:08:18: | scene->Preprocess - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
01:08:18: | GPU download and conversion - [cpu time: avg 3.322 ms, total 358.802 ms] [avg calls per frame: 1]
01:08:18: | | flush - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
01:08:18: | | CopyResource - [cpu time: avg 4.6 ms, total 358.802 ms] [avg calls per frame: 1]
01:08:18: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
01:08:18: Convert444Threads - [cpu time: avg 1.823 ms, total 280.8 ms] [avg calls per frame: 2]
01:08:18: | Convert444toNV12 - [cpu time: avg 1.823 ms, total 280.8 ms] [avg calls per frame: 2]
01:08:18: encoder thread frame - [cpu time: avg 2.08 ms, total 156.001 ms] [avg calls per frame: 1]
01:08:18: ==============================================================
01:08:18: 
01:08:18: =====Stream End: 2014-02-01, 01:08:18=================================================
01:08:19: =====Stream Start: 2014-02-01, 01:08:19===============================================
01:08:19:   Multithreaded optimizations: On
01:08:19:   Base resolution: 1920x1200
01:08:19:   Output resolution: 1920x1200
01:08:19: ------------------------------------------
01:08:19: Loading up D3D10 on NVIDIA GeForce GTX 295 (Adapter 1)...
01:08:19: ------------------------------------------
01:08:19: Audio Format: 48000hz
01:08:19: Playback device Default
01:08:19: ------------------------------------------
01:08:19: Using desktop audio input: Altavoces (Logitech G930 Headset)
01:08:19: Using 7.1 surround speaker setup
01:08:19: ------------------------------------------
01:08:19: Using auxilary audio input: Micrófono (Logitech G930 Headset)
01:08:19: ------------------------------------------
01:08:19: Audio Encoding: AAC
01:08:19:     bitrate: 128
01:08:19: Using graphics capture
01:08:19: Scene buffering time set to 400
01:08:19: ------------------------------------------
01:08:19: Video Encoding: x264
01:08:19:     fps: 60
01:08:19:     width: 1920, height: 1200
01:08:19:     preset: veryfast
01:08:19:     profile: main
01:08:19:     keyint: 120
01:08:19:     CBR: yes
01:08:19:     CFR: no
01:08:19:     max bitrate: 3500
01:08:19:     buffer size: 3500
01:08:19: ------------------------------------------
01:08:19: MMDeviceAudioSource: Frequency for device 'Altavoces (Logitech G930 Headset)' is 1536000, samples per sec is 48000
01:08:19: MMDeviceAudioSource: Frequency for device 'Micrófono (Logitech G930 Headset)' is 64000, samples per sec is 16000
01:08:19: SharedTexCapture hooked
01:08:20: Using RTMP service: Twitch / Justin.tv
01:08:20:   Server selection: rtmp://live-lhr.justin.tv/app
01:08:20:   Interface: Intel(R) Ethernet Connection I217-V (ethernet, 1000 mbps)
01:08:21: Completed handshake with rtmp://live-lhr.justin.tv/app in 463 ms.
01:08:22: SO_SNDBUF was at 8192
01:08:22: SO_SNDBUF is now 65536
01:08:23: RTMPPublisher::SocketLoop: Increasing send buffer to ISB 131072 (buffer: 12196 / 463872)
01:08:23: RTMPPublisher::SocketLoop: Increasing send buffer to ISB 262144 (buffer: 8947 / 463872)
01:17:40: Total frames encoded: 33622, total frames duplicated: 31979 (95.11%)
01:17:40: Total frames rendered: 1848, number of late frames: 1068 (57.79%) (it's okay for some frames to be late)
01:17:40: RTMPPublisher::SocketLoop: Graceful loop exit
01:17:40: Average send payload: 7530 bytes, average send interval: 16 ms
01:17:40: Number of times waited to send: 0, Waited for a total of 0 bytes
01:17:40: Number of b-frames dropped: 0 (0%), Number of p-frames dropped: 0 (0%), Total 0 (0%)
01:17:40: Number of bytes sent: 253539295
01:17:40: 
01:17:40: Profiler time results:
01:17:40: 
01:17:40: ==============================================================
01:17:40: video thread frame - [100%] [avg time: 301.61 ms] [children: 99.8%] [unaccounted: 0.228%]
01:17:40: | scene->Preprocess - [0.000663%] [avg time: 0.002 ms]
01:17:40: | GPU download and conversion - [99.8%] [avg time: 300.92 ms] [children: 101%] [unaccounted: -1.62%]
01:17:40: | | flush - [0.0315%] [avg time: 0.095 ms]
01:17:40: | | CopyResource - [101%] [avg time: 305.661 ms]
01:17:40: | | conversion to 4:2:0 - [0.0209%] [avg time: 0.063 ms]
01:17:40: Convert444Threads - [100%] [avg time: 2.149 ms] [children: 99.5%] [unaccounted: 0.512%]
01:17:40: | Convert444toNV12 - [99.5%] [avg time: 2.138 ms]
01:17:40: encoder thread frame - [100%] [avg time: 4.024 ms]
01:17:40: ==============================================================
01:17:40: 
01:17:40: 
01:17:40: Profiler CPU results:
01:17:40: 
01:17:40: ==============================================================
01:17:40: video thread frame - [cpu time: avg 12.181 ms, total 22510.9 ms] [avg calls per frame: 1]
01:17:40: | scene->Preprocess - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
01:17:40: | GPU download and conversion - [cpu time: avg 11.978 ms, total 22136.5 ms] [avg calls per frame: 1]
01:17:40: | | flush - [cpu time: avg 0.059 ms, total 109.201 ms] [avg calls per frame: 1]
01:17:40: | | CopyResource - [cpu time: avg 12.09 ms, total 21980.5 ms] [avg calls per frame: 1]
01:17:40: | | conversion to 4:2:0 - [cpu time: avg 0.008 ms, total 15.6 ms] [avg calls per frame: 1]
01:17:40: Convert444Threads - [cpu time: avg 1.906 ms, total 6926.44 ms] [avg calls per frame: 2]
01:17:40: | Convert444toNV12 - [cpu time: avg 1.906 ms, total 6926.44 ms] [avg calls per frame: 2]
01:17:40: encoder thread frame - [cpu time: avg 3.109 ms, total 104474 ms] [avg calls per frame: 1]
01:17:40: ==============================================================
01:17:40: 
01:17:40: =====Stream End: 2014-02-01, 01:17:40=================================================


Last game capture log:
2014-02-01, 01:08:16: we're booting up: 
01:08:16: CaptureThread: attached to process Loadout.exe
01:08:16: D3D9 Present
01:08:16: DXGI Present
01:08:16: (half life scientist) everything..  seems to be in order
01:08:16: D3D9EndScene called
01:08:16: D3DPRESENT_PARAMETERS {
01:08:16: 	BackBufferWidth: 1920
01:08:16: 	BackBufferHeight: 1200
01:08:16: 	BackBufferFormat: D3DFMT_A8R8G8B8
01:08:16: 	BackBufferCount: 2
01:08:16: 	MultiSampleType: D3DMULTISAMPLE_NONE
01:08:16: 	MultiSampleQuality: 0
01:08:16: 	SwapEffect: D3DSWAPEFFECT_DISCARD
01:08:16: 	hDeviceWindow: 852702
01:08:16: 	Windowed: true
01:08:16: 	EnableAutoDepthStencil: false
01:08:16: 	AutoDepthStencilFormat: D3DFMT_UNKNOWN
01:08:16: 	Flags: None
01:08:16: 	FullScreen_RefreshRateInHz: 0
01:08:16: 	PresentationInterval: 2147483648
01:08:16: };
01:08:16: successfully set up d3d9 hooks
01:08:16: D3D9Present called
01:08:16: DoD3D9GPUHook: success
01:08:16: D3DSURFACE_DESC {
01:08:16: 	Format: D3DFMT_A8R8G8B8
01:08:16: 	Type: D3DRTYPE_SURFACE
01:08:16: 	Usage: D3DUSAGE_RENDERTARGET 
01:08:16: 	Pool: D3DPOOL_DEFAULT
01:08:16: 	MultiSampleType: D3DMULTISAMPLE_NONE
01:08:16: 	MultiSampleQuality: 0
01:08:16: 	Width: 1920
01:08:16: 	Height: 1200
01:08:16: };
01:08:16: successfully capturing d3d9 frames via GPU
01:08:18: ---------------------- Cleared D3D9 Capture ----------------------
01:08:18: D3D9EndScene called
01:08:18: D3D9Present called
01:08:19: received restart event, capturing
01:08:19: DoD3D9GPUHook: success
01:08:19: D3DSURFACE_DESC {
01:08:19: 	Format: D3DFMT_A8R8G8B8
01:08:19: 	Type: D3DRTYPE_SURFACE
01:08:19: 	Usage: D3DUSAGE_RENDERTARGET 
01:08:19: 	Pool: D3DPOOL_DEFAULT
01:08:19: 	MultiSampleType: D3DMULTISAMPLE_NONE
01:08:19: 	MultiSampleQuality: 0
01:08:19: 	Width: 1920
01:08:19: 	Height: 1200
01:08:19: };
01:08:19: successfully capturing d3d9 frames via GPU
01:17:40: ---------------------- Cleared D3D9 Capture ----------------------
01:17:40: D3D9EndScene called
01:17:40: D3D9Present called
 

BPSlays

Member
Are you sure it's just not you watching your own stream while streaming? Because the broadcast would look really bad in that scenario.
 

dodgepong

Administrator
Community Helper
Well, the fact that you were streaming at 60fps in this log certainly didn't help. That's an absurdly high frame rate and resolution to be streaming at, and most people won't even be able to watch it smoothly due to how poorly Flash handles such high-framerate-high-resolution video. Furthermore, a majority of monitors are smaller than 1920x1200, so most people won't even be able to watch it in full resolution.

And yes, it does look like your GPU is the biggest bottleneck. The 2xx series of GPUs is notorious for having slow VRAM, which is why it takes so much extra time to encode. I recommend downscaling to 800p or less, and changing your frame rate back to 30, and see how that works. Beyond that, I recommend getting a better GPU...it's kind of sad seeing a very nice CPU paired with a very old, outdated GPU.
 

xkamerz

New Member
Thanks for the help, ill try it and post here the result to help other people having the same isue.

Just one question, i have a friend with a very worst GPU, didnt know wich one, he cant even play games as good as me, but his streams works fine running at 20-25 fps, this is pissing me off.
 

dodgepong

Administrator
Community Helper
We'd have to see a log from him, too, to see the differences between your setups.
 

Floatingthru

Community Helper
The issue is that your GPU has really slow VRAM which kills OBS performance. You can get a modern GPU with faster GDDR5, but with lower overall performance yet it will make OBS work much better than your GPU.
 

xkamerz

New Member
Well, after your recommendations here is the results.

02:51:56: Open Broadcaster Software v0.592b - 32bit (´・ω・`)
02:51:56: -------------------------------
02:51:56: CPU Name: Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz
02:51:56: CPU Speed: 3491MHz
02:51:56: Physical Memory: 4095MB Total, 4095MB Free
02:51:56: stepping id: 3, model 60, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 8, total cores 4
02:51:56: monitor 1: pos={0, 0}, size={1920, 1200}
02:51:56: Windows Version: 6.1 Build 7601 S
02:51:56: Aero is Disabled
02:51:56: -------------------------------
02:51:56: OBS Modules:
02:51:56: Base Address Module
02:51:56: 00A40000 OBS.exe
02:51:56: 6B0F0000 OBSApi.dll
02:51:56: 70A70000 DShowPlugin.dll
02:51:56: 71BB0000 GraphicsCapture.dll
02:51:56: 71800000 NoiseGate.dll
02:51:56: 70A50000 PSVPlugin.dll
02:51:56: ------------------------------------------
02:51:56: Adapter 1
02:51:56: Video Adapter: NVIDIA GeForce GTX 295
02:51:56: Video Adapter Dedicated Video Memory: 911605760
02:51:56: Video Adapter Shared System Memory: 3354996736
02:51:56: Video Adapter Output 1: pos={0, 0}, size={1920, 1200}, attached=true
02:51:56: =====Stream Start: 2014-02-01, 02:51:56===============================================
02:51:56: Multithreaded optimizations: On
02:51:56: Base resolution: 1920x1200
02:51:56: Output resolution: 960x600
02:51:56: ------------------------------------------
02:51:56: Loading up D3D10 on NVIDIA GeForce GTX 295 (Adapter 1)...
02:51:56: ------------------------------------------
02:51:56: Audio Format: 44100hz
02:51:56: Playback device Default
02:51:56: ------------------------------------------
02:51:56: Using desktop audio input: Altavoces (Logitech G930 Headset)
02:51:56: Using 7.1 surround speaker setup
02:51:56: ------------------------------------------
02:51:56: Using auxilary audio input: Micrófono (Logitech G930 Headset)
02:51:56: ------------------------------------------
02:51:56: Audio Encoding: AAC
02:51:56: bitrate: 128
02:51:56: Using graphics capture
02:51:56: Scene buffering time set to 400
02:51:56: ------------------------------------------
02:51:56: Video Encoding: x264
02:51:56: fps: 30
02:51:56: width: 960, height: 600
02:51:56: preset: veryfast
02:51:56: profile: high
02:51:56: keyint: 60
02:51:56: CBR: yes
02:51:56: CFR: yes
02:51:56: max bitrate: 3500
02:51:56: buffer size: 3500
02:51:56: ------------------------------------------
02:51:56: MMDeviceAudioSource: Frequency for device 'Altavoces (Logitech G930 Headset)' is 1536000, samples per sec is 48000
02:51:56: MMDeviceAudioSource: Frequency for device 'Micrófono (Logitech G930 Headset)' is 64000, samples per sec is 16000
02:51:56: SharedTexCapture hooked
02:51:58: Using RTMP service: Twitch / Justin.tv
02:51:58: Server selection: rtmp://live-fra.justin.tv/app
02:51:58: Interface: Intel(R) Ethernet Connection I217-V (ethernet, 1000 mbps)
02:51:59: Completed handshake with rtmp://live-fra.justin.tv/app in 474 ms.
02:52:00: SO_SNDBUF was at 8192
02:52:00: SO_SNDBUF is now 65536
02:52:01: RTMPPublisher::SocketLoop: Increasing send buffer to ISB 131072 (buffer: 122833 / 463872)
02:52:03: RTMPPublisher::SocketLoop: Increasing send buffer to ISB 262144 (buffer: 0 / 463872)
02:53:04: Total frames encoded: 2012, total frames duplicated: 795 (39.51%)
02:53:04: Total frames rendered: 1326, number of late frames: 581 (43.82%) (it's okay for some frames to be late)
02:53:04: RTMPPublisher::SocketLoop: Graceful loop exit
02:53:04: Average send payload: 10222 bytes, average send interval: 22 ms
02:53:04: Number of times waited to send: 0, Waited for a total of 0 bytes
02:53:04: Number of b-frames dropped: 0 (0%), Number of p-frames dropped: 0 (0%), Total 0 (0%)
02:53:04: Number of bytes sent: 28938809
02:53:04:
02:53:04: Profiler time results:
02:53:04:
02:53:04: ==============================================================
02:53:04: video thread frame - [100%] [avg time: 41.792 ms] [children: 98.5%] [unaccounted: 1.47%]
02:53:04: | scene->Preprocess - [0.00479%] [avg time: 0.002 ms]
02:53:04: | GPU download and conversion - [98.5%] [avg time: 41.175 ms] [children: 99.6%] [unaccounted: -1.07%]
02:53:04: | | flush - [0.163%] [avg time: 0.068 ms]
02:53:04: | | CopyResource - [99.4%] [avg time: 41.546 ms]
02:53:04: | | conversion to 4:2:0 - [0.0167%] [avg time: 0.007 ms]
02:53:04: Convert444Threads - [100%] [avg time: 0.377 ms] [children: 98.7%] [unaccounted: 1.33%]
02:53:04: | Convert444toNV12 - [98.7%] [avg time: 0.372 ms]
02:53:04: encoder thread frame - [100%] [avg time: 0.847 ms]
02:53:04: ==============================================================
02:53:04:
02:53:04:
02:53:04: Profiler CPU results:
02:53:04:
02:53:04: ==============================================================
02:53:04: video thread frame - [cpu time: avg 2.858 ms, total 3790.82 ms] [avg calls per frame: 1]
02:53:04: | scene->Preprocess - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
02:53:04: | GPU download and conversion - [cpu time: avg 2.635 ms, total 3494.42 ms] [avg calls per frame: 1]
02:53:04: | | flush - [cpu time: avg 0.047 ms, total 62.4 ms] [avg calls per frame: 1]
02:53:04: | | CopyResource - [cpu time: avg 2.605 ms, total 3416.42 ms] [avg calls per frame: 1]
02:53:04: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
02:53:04: Convert444Threads - [cpu time: avg 0.297 ms, total 780.004 ms] [avg calls per frame: 2]
02:53:04: | Convert444toNV12 - [cpu time: avg 0.297 ms, total 780.004 ms] [avg calls per frame: 2]
02:53:04: encoder thread frame - [cpu time: avg 0.163 ms, total 327.602 ms] [avg calls per frame: 1]
02:53:04: ==============================================================
02:53:04:
02:53:04: =====Stream End: 2014-02-01, 02:53:04=================================================

Here is the link to the test: http://es.twitch.tv/xkamerz/b/499771072

What do you think guys, cant it go better cos of the GPU?
Thanks you all for your help.
 

dodgepong

Administrator
Community Helper
Yeah, the GPU is still choking. Maybe you can try downscaling even more (640x400) or just manually set an even lower resolution than that (~360p) but the GPU is absolutely killing your streaming abilities, here.
 
Top