Question / Help OBS FPS Problem

KissMyAxe

New Member
I've been streaming for a little bit now, and in different games, I don't have any problems, but when I try to stream Planetside 2, the stream will often go down to 5 fps or less. Sometimes it stays at 30 fps (like I have set) but then it drops, so it's constantly going back and forth. I'll post a log at the bottom, but I also have some monitoring programs up, and it seems like while the cpu load is at it's highest, (around 95+%) the stream works and looks great. However, sometimes the cpu load will drop to around 70%-80%, and that's when the fps in the stream drop to 5 or 3 or something. I can't figure out what's causing this to happen. Switching the preset to fast (instead of faster) seemed to help overall, but it still not where I'd like it. If I switch it to lower speeds, the computer doesn't want to run either, so I think the fast preset is the one to stick with for me. I've played with the bitrate, with downscaling, but it doesn't seem to help any. I do also have a webcam running as well, with a green screen behind me and I chroma key out the screen. It was still having fps problems before I added the webcam and screen though. The weird thing is it's only in this game, (Planetside 2) not in any of the other games I've streamed. I use the window capture, (since I can't seem to be able to get the game capture to work) and Planetside 2 has a fullscreen window mode, so that's what I have it set in. I can't seem to figure out why the cpu load would drop every now and then and cause the stream's fps to drop significantly. I've tried the 64 bit and 32 bit OBS versions, running both as administrator, changing bitrate and resolution, and nothing seems to fix it. My upload speed from speed test is at 5.8 mbps, and the stream is running around 4 as reported by the bottom of the screen in OBS, so I don't think it's that. And other online games have no problems with the stream (ESO for example, another MMO) So if you guys have any idea's, I'm all ears. I'd still like to have a good quality stream at 1080p, but if going to 720 or something fixes the problem, then that's what I'll have to do. Anyways, throw out some suggestions, and I'll give them a try. Thanks for taking the time to read all this. (it's kind of a lot.. but I wanted to be as specific as possible.)
 

KissMyAxe

New Member
Here's the log file from earlier today, which had some problem's with the fps in the stream throughout the stream.

https://gist.github.com/9509db12efd61ecabc3a

Code:
12:25:02: Open Broadcaster Software v0.621b - 32bit (´・ω・`)
12:25:02: -------------------------------
12:25:02: CPU Name: AMD FX(tm)-8350 Eight-Core Processor
12:25:02: CPU Speed: 4853MHz
12:25:02: Physical Memory: 4095MB Total, 2776MB Free
12:25:02: stepping id: 0, model 2, family 21, type 0, extmodel 0, extfamily 3, HTT 1, logical cores 8, total cores 4
12:25:02: monitor 1: pos={0, 0}, size={1920, 1080}
12:25:02: monitor 2: pos={-1080, -492}, size={1080, 1920}
12:25:02: Windows Version: 6.1 Build 7601 S
12:25:02: Aero is Enabled
12:25:02: -------------------------------
12:25:02: OBS Modules:
12:25:02: Base Address Module
12:25:02: 012F0000 OBS.exe
12:25:02: 64DC0000 OBSApi.dll
12:25:02: 64B70000 DShowPlugin.dll
12:25:02: 64B40000 GraphicsCapture.dll
12:25:02: 64B10000 NoiseGate.dll
12:25:02: 72130000 PSVPlugin.dll
12:25:02: ------------------------------------------
12:25:02: Adapter 1
12:25:02: Video Adapter: NVIDIA GeForce GTX 660 Ti
12:25:02: Video Adapter Dedicated Video Memory: 3154837504
12:25:02: Video Adapter Shared System Memory: 1140064256
12:25:02: Video Adapter Output 1: pos={0, 0}, size={1920, 1080}, attached=true
12:25:02: Video Adapter Output 2: pos={-1080, -492}, size={1080, 1920}, attached=true
12:25:02: ------------------------------------------
12:25:02: Adapter 2
12:25:02: Video Adapter: NVIDIA GeForce GTX 750
12:25:02: Video Adapter Dedicated Video Memory: 1000144896
12:25:02: Video Adapter Shared System Memory: 3221417984
12:25:02: ------------------------------------------
12:25:02: Adapter 3
12:25:02: Video Adapter: Air Display (Microsoft Corporation - WDDM v1.1)
12:25:02: Video Adapter Dedicated Video Memory: 0
12:25:02: Video Adapter Shared System Memory: 0
12:25:02: =====Stream Start: 2014-04-24, 12:25:02===============================================
12:25:02: Multithreaded optimizations: On
12:25:02: Base resolution: 1920x1080
12:25:02: Output resolution: 1920x1080
12:25:02: ------------------------------------------
12:25:02: Loading up D3D10 on NVIDIA GeForce GTX 660 Ti (Adapter 1)...
12:25:02: ------------------------------------------
12:25:02: Audio Format: 44100 Hz
12:25:02: ------------------------------------------
12:25:02: Audio Channels: 2 Ch
12:25:02: Playback device Default
12:25:02: ------------------------------------------
12:25:02: Using desktop audio input: Speakers (Realtek High Definition Audio)
12:25:02: Global Audio time adjust: 0
12:25:02: ------------------------------------------
12:25:02: Using auxilary audio input: Microphone (HD Webcam C510)
12:25:02: Mic time offset: 0
12:25:02: ------------------------------------------
12:25:02: Audio Encoding: AAC
12:25:02: bitrate: 128
12:25:02: ------------------------------------------
12:25:02: device: Logitech HD Webcam C510,
12:25:02: device id \\?\usb#vid_046d&pid_081d&mi_02#6&2ccff429&0&0002#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{bbefb6c7-2fc4-4139-bb8b-a58bba724083},
12:25:02: chosen type: I420, usingFourCC: false, res: 1280x1024 - 1280x1024, frameIntervals: 333333-2000000
12:25:02: use buffering: false - 0, fourCC: 'I420'
12:25:02: audio device: Disable,
12:25:02: audio device id Disabled,
12:25:02: audio time offset 0,
12:25:02:
12:25:02: Using directshow input
12:25:02: Using Window Capture
12:25:03: Scene buffering time set to 400
12:25:03: ------------------------------------------
12:25:03: Video Encoding: x264
12:25:03: fps: 30
12:25:03: width: 1920, height: 1080
12:25:03: preset: fast
12:25:03: profile: main
12:25:03: keyint: 60
12:25:03: CBR: yes
12:25:03: CFR: no
12:25:03: max bitrate: 3500
12:25:03: buffer size: 3500
12:25:03: ------------------------------------------
12:25:06: Using RTMP service: Twitch / Justin.tv
12:25:06: Server selection: rtmp://live-dfw.justin.tv/app
12:25:06: Interface: Realtek PCIe GBE Family Controller (ethernet, 100 mbps)
12:25:06: Completed handshake with rtmp://live-dfw.justin.tv/app in 189 ms.
12:25:06: SO_SNDBUF was at 8192
12:25:06: SO_SNDBUF is now 65536
12:25:08: RTMPPublisher::SocketLoop: Increasing send buffer to ISB 131072 (buffer: 26100 / 463872)
12:25:08: RTMPPublisher::SocketLoop: Increasing send buffer to ISB 262144 (buffer: 47784 / 463872)
12:47:28: RTMPPublisher::SocketLoop: Increasing send buffer to ISB 524288 (buffer: 0 / 463872)
13:18:19: RTMPPublisher::SocketLoop: Stalled for 2959 ms to write 462307 bytes (buffer: 0 / 463872), unstable connection?
13:55:28: Audio timestamp for device 'Microphone (HD Webcam C510)' was behind target timestamp by 70
13:58:58: Total frames encoded: 169013, total frames duplicated: 20037 (11.86%)
13:58:58: Number of frames skipped due to encoder lag: 2425 (1.43%)
13:58:58: Total frames rendered: 155315, number of late frames: 1652 (1.06%) (it's okay for some frames to be late)
13:58:58: RTMPPublisher::SocketLoop: Graceful loop exit
13:58:58: Average send payload: 7756 bytes, average send interval: 17 ms
13:58:58: Number of times waited to send: 2, Waited for a total of 8194 bytes
13:58:58: Number of b-frames dropped: 28 (0.017%), Number of p-frames dropped: 46 (0.027%), Total 74 (0.044%)
13:58:58: Number of bytes sent: 2557149193
13:58:58:
13:58:58: Profiler time results:
13:58:58:
13:58:58: ==============================================================
13:58:58: video thread frame - [100%] [avg time: 8.391 ms] [children: 90.3%] [unaccounted: 9.71%]
13:58:58: | scene->Preprocess - [86.3%] [avg time: 7.245 ms]
13:58:58: | GPU download and conversion - [3.94%] [avg time: 0.331 ms] [children: 2.79%] [unaccounted: 1.16%]
13:58:58: | | flush - [1.86%] [avg time: 0.156 ms]
13:58:58: | | CopyResource - [0.87%] [avg time: 0.073 ms]
13:58:58: | | conversion to 4:2:0 - [0.0596%] [avg time: 0.005 ms]
13:58:58: Convert444Threads - [100%] [avg time: 1.83 ms] [children: 99.3%] [unaccounted: 0.71%]
13:58:58: | Convert444toNV12 - [99.3%] [avg time: 1.817 ms]
13:58:58: encoder thread frame - [100%] [avg time: 5.711 ms] [children: 0.84%] [unaccounted: 99.2%]
13:58:58: | sending stuff out - [0.84%] [avg time: 0.048 ms]
13:58:58: ==============================================================
13:58:58:
13:58:58:
13:58:58: Profiler CPU results:
13:58:58:
13:58:58: ==============================================================
13:58:58: video thread frame - [cpu time: avg 1.899 ms, total 295060 ms] [avg calls per frame: 1]
13:58:58: | scene->Preprocess - [cpu time: avg 1.203 ms, total 186983 ms] [avg calls per frame: 1]
13:58:58: | GPU download and conversion - [cpu time: avg 0.106 ms, total 16504.9 ms] [avg calls per frame: 1]
13:58:58: | | flush - [cpu time: avg 0.067 ms, total 10436.5 ms] [avg calls per frame: 1]
13:58:58: | | CopyResource - [cpu time: avg 0.014 ms, total 2308.81 ms] [avg calls per frame: 1]
13:58:58: | | conversion to 4:2:0 - [cpu time: avg 0.003 ms, total 483.602 ms] [avg calls per frame: 1]
13:58:58: Convert444Threads - [cpu time: avg 1.465 ms, total 455227 ms] [avg calls per frame: 2]
13:58:58: | Convert444toNV12 - [cpu time: avg 1.46 ms, total 453729 ms] [avg calls per frame: 2]
13:58:58: encoder thread frame - [cpu time: avg 2.388 ms, total 403684 ms] [avg calls per frame: 1]
13:58:58: | sending stuff out - [cpu time: avg 0.03 ms, total 5132.42 ms] [avg calls per frame: 1]
13:58:58: ==============================================================
13:58:58:
13:58:58: =====Stream End: 2014-04-24, 13:58:58=================================================


Last game capture log:
2014-04-22, 16:03:31: we're booting up:
16:03:31: CaptureThread: attached to process steam.exe
16:03:32: NV Capture available
16:03:32: FBO available
16:03:32: GL Present
16:03:32: (half life scientist) everything.. seems to be in order



Last Game Capture Log:
2014-04-22, 16:03:31: we're booting up:
16:03:31: CaptureThread: attached to process steam.exe
16:03:32: NV Capture available
16:03:32: FBO available
16:03:32: GL Present
16:03:32: (half life scientist) everything.. seems to be in order
 
Last edited by a moderator:

KissMyAxe

New Member
http://www.twitch.tv/kissmyaxe1/b/522682759

Here's a link to the stream, and you'll notice most of the time things are great, but there are a few times where the FPS drops quite low. The beginning was pretty rough too. Look around 26:45 for an example of the FPS dropping. In game I'm guessing it was above 45 fps the whole time.

P.S. - I kind of was raging a bit, so I was dropping a few f-bombs... So if you don't want to hear any bad language, just mute the sound. The sound comes through great, no stutters there, it's just the video's fps dropping. In game, my fps was usually above 30, it never dropped to an unplayable speed. It's just the fps within OBS that was having problems.

I should probably also mention that Planetside 2 is a very cpu intensive game, but when I'm not streaming, it only uses about 40%-50% of my processor.
 

Sapiens

Forum Moderator
Planetside 2 is a pretty CPU intensive and so is streaming at 1080p using the fast preset. Lower your stream resolution/preset.
 

KissMyAxe

New Member
Lower the preset to like medium or whatever the next step down is, as well lower the resolution? I'll have to give it a try when I get home tonight.
 

Sapiens

Forum Moderator
No, you want a less demanding preset, which would be faster or veryfast. The "slower" the preset the more CPU load it causes because it's doing more work to compress the video. ultrafast is less demanding than superfast, which is less demanding than veryfast, etc.
 

KissMyAxe

New Member
-https://gist.github.com/72d897748f061223b178
-- http://www.twitch.tv/kissmyaxe1/b/522817068

-https://gist.github.com/da31e3a792a4424adf05
-- http://www.twitch.tv/kissmyaxe1/b/522818149

-https://gist.github.com/fabd5071d30f968e55b9
-- http://www.twitch.tv/kissmyaxe1/b/522820415

-https://gist.github.com/290a195086de8cb731a7
-- http://www.twitch.tv/kissmyaxe1/b/522828631

-https://gist.github.com/15228bb26ec5d911f508
-- http://www.twitch.tv/kissmyaxe1/b/522833738

Here's a bunch of different settings I tried, with the video of the stream associated streams. It seems like OBS doesn't want to work at 100% all the time. I notice that the only time that the FPS in OBS drops is when the processor load drops. My setting in the original post would work fine as long as the processor usage was in the 95% range. Just on default settings, streaming at 720p, with a bitrate of 3000 or less, and the default preset (very fast I believe) the processor workload was only around 40%. But the whole time I did that, it didn't seem to get an FPS even near where I had set it. It was stuck around 10 or so. I can stream in 1080p at a bitrate of 3500kbps with another software called D3DGear, but I'd rather use OBS because of the many more features with OBS. And it's only Planetside 2 I have problems with, but I guess it makes sense seeing as how it's a pretty cpu intensive game. I do have an 8 core FX 8350 clocked at 4.85 ghz, so it's not like I'm hurting for processing power.

So I guess the question is, is there a way to make OBS work more consistently?

(It just seems like the processing load jumps around and it seems to me to be causing problems.)
 

Bensam123

Member
720p@30/very fast should be using around 18% of your processor (less since you have a higher OC then me).

Use gamecapture and not windowcapture as well. Gamecapture is much less performance intensive. Keyint should be 2, that's set in advanced options.
 

KissMyAxe

New Member
Yeah, the keyint should be set correctly, and I would love use the game capture, but I can't get it to work. All I see is a black screen regardless of what I do. Perhaps re-formatting and re-installing windows will help. I tried installing the nvidia 335 driver, but I would blue screen anytime I opened a game. So at the moment, I'm on the 337 beta driver, and it works fine, but it blue screens whenever I open Shadowplay.
 

Bensam123

Member
When you add game capture, start the game and make sure it's set as the application when it's running. Sometimes it's not set and it'll just be a black screen.
 

KissMyAxe

New Member
I would right click in the sources window>add>game capture>click ok for the name>Make sure the application is set correctly (shows planetside 2 in there)>click ok on the bottom of that window, and it would be a black screen. The audio is fine, but it wouldn't pick up the visual side of the game. I checked to make sure that OBS is looking on the right video card (the 660 ti instead of the 750) and I added it as a program in the nvidia control panel and told it to run on just the 660 ti. Just seems odd is all.

But here's what I was noticing from today. Anytime I was in a large battle in Planetside 2, the stream was great, running at just what I set it as. However, as soon as I left the area to a un-populated area, my game's fps would jump up to like 70 or 80 or higher, but the stream's fps would drop to around 5. As soon as I got back into a populated area where a large battle was going on, the stream would pick back up and be just fine. It would make sense if it was opposite, where large battles would drop the streams fps, but no, the large battles work great. It's just everywhere else that doesn't work. My ram usage is getting up to around 90% used, and my processor never goes above 80% usage, even in the highest battles.

It just doesn't make any sense to me, and I'm not sure if there's anything I can do about it.

Here's a link to the log from obs:
https://gist.github.com/anonymous/df9dde9e7dbb318b207e

And here's a link to the corresponding stream.
http://www.twitch.tv/kissmyaxe1/b/523750054


It's streaming at 720p, 2500 kbps, fast preset, at 25 fps, but I just don't get why it would work great in a large battle, but hardly at all when traveling between points where there's little action.
 
Top