Question / Help In Game Frame Rate drop spikes.

TheAlexC

New Member
Hey all, I've searched all over for similar problems and changed the settings based on the responses given, but to no avail.

I stream League of Legends in fullscreen using Window capture. My speedtest results are

Edit: As requested, here is my "Testmy" results : http://testmy.net/db/2Pc7WG0
Processor : Intel(R) Core(TM) i7 -2640M CPU @ 2.80GHz
RAM : 8 GB
My bitrate is currently set at 3000
Resolution : 1366 x 778
FPS: 30

Code:
09:37:54: Settings::Video: Disabling Aero
09:37:58: Open Broadcaster Software v0.552b - 32bit (´・ω・`)
09:37:58: -------------------------------
09:37:58: CPU Name: Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz
09:37:58: CPU Speed: 2793MHz
09:37:58: Physical Memory:  4095MB Total, 3320MB Free
09:37:58: stepping id: 7, model 10, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 4, total cores 2
09:37:58: monitor 1: pos={0, 0}, size={1366, 768}
09:37:58: monitor 2: pos={1366, 0}, size={1360, 768}
09:37:58: Windows Version: 6.1 Build 7601 S
09:37:58: Aero is Disabled
09:37:58: -------------------------------
09:37:58: OBS Modules:
09:37:58: Base Address     Module
09:37:58: 01370000         OBS.exe
09:37:58: 5AE70000         OBSApi.dll
09:37:58: 636B0000         DShowPlugin.dll
09:37:58: 6F8C0000         GraphicsCapture.dll
09:37:58: 009B0000         NoiseGate.dll
09:37:58: 63630000         PSVPlugin.dll
09:37:58: ------------------------------------------
09:37:58: Adapter 1
09:37:58:   Video Adapter: Intel(R) HD Graphics Family
09:37:58:   Video Adapter Dedicated Video Memory: 67108864
09:37:58:   Video Adapter Shared System Memory: 1711276032
09:37:58: ------------------------------------------
09:37:58: Adapter 2
09:37:58:   Video Adapter: NVIDIA GeForce GT 520M
09:37:58:   Video Adapter Dedicated Video Memory: 1041825792
09:37:58:   Video Adapter Shared System Memory: 3221069824
09:37:58: =====Stream Start: 2013-08-22, 09:37:58===============================================
09:37:58:   Multithreaded optimizations: On
09:37:58:   Base resolution: 1366x778
09:37:58:   Output resolution: 1364x778
09:37:58: ------------------------------------------
09:37:58: Loading up D3D10 on Intel(R) HD Graphics Family...
09:37:58: Playback device Default
09:37:58: ------------------------------------------
09:37:58: Using desktop audio input: Speakers (Realtek High Definition Audio)
09:37:58: ------------------------------------------
09:37:58: Using auxilary audio input: Microphone (Realtek High Definition Audio)
09:37:58: ------------------------------------------
09:37:58: Audio Encoding: AAC
09:37:58:     bitrate: 128
09:37:58: ------------------------------------------
09:37:58:     device: Integrated Webcam,
09:37:58:     device id \\?\usb#vid_174f&pid_143f&mi_00#7&3688707d&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
09:37:58:     chosen type: YUY2, usingFourCC: false, res: 1280x720 - 1280x720, frameIntervals: 1000000-2000000, fourCC: 'YUY2'
09:37:58:     audio device: Disable,
09:37:58:     audio device id Disabled,
09:37:58: 
09:37:58: Using directshow input
09:37:58: Using Monitor Capture
09:37:58: Using custom x264 settings: "keyint=60"
09:37:58: ------------------------------------------
09:37:58: Video Encoding: x264
09:37:58:     fps: 30
09:37:58:     width: 1364, height: 778
09:37:58:     preset: veryfast
09:37:58:     CBR: yes
09:37:58:     CFR: no
09:37:58:     max bitrate: 3000
09:37:58: ------------------------------------------
09:37:58: MMDeviceAudioSource: Frequency for device 'Speakers (Realtek High Definition Audio)' is 384000, samples per sec is 48000
09:37:58: MMDeviceAudioSource: Frequency for device 'Microphone (Realtek High Definition Audio)' is 352800, samples per sec is 44100
09:38:00: Using RTMP service: Twitch / Justin.tv
09:38:00:   Server selection: rtmp://live-dfw-backup.justin.tv/app
09:38:00:   Interface: Atheros AR8151 PCI-E Gigabit Ethernet Controller (NDIS 6.20) (ethernet, 100 mbps)
09:38:01: SO_SNDBUF was at 8192
09:38:01: SO_SNDBUF is now 65536
09:38:02: RTMPPublisher::Socketloop: Increasing send buffer to ISB 131072 (buffer: 673 / 400384)
09:38:04: RTMPPublisher::Socketloop: Increasing send buffer to ISB 262144 (buffer: 72739 / 400384)
09:38:06: RTMPPublisher::Socketloop: Increasing send buffer to ISB 524288 (buffer: 0 / 400384)
09:39:59: RTMPPublisher::Socketloop: Increasing send buffer to ISB 1048576 (buffer: 0 / 400384)
09:49:09: Total frames rendered: 18757, number of late frames: 1370 (7.30%) (it's okay for some frames to be late)
09:49:09: RTMPPublisher::SocketLoop: Graceful loop exit
09:49:09: Number of times waited to send: 9, Waited for a total of 29741 bytes
09:49:09: Number of b-frames dropped: 72 (0.39%), Number of p-frames dropped: 88 (0.47%), Total 160 (0.86%)
09:49:11: 
09:49:11: Profiler results:
09:49:11: 
09:49:11: ==============================================================
09:49:11: frame - [100%] [avg time: 16.361 ms (cpu time: avg 8.159 ms, total 153053 ms)] [avg calls per frame: 1] [children: 99.9%] [unaccounted: 0.0917%]
09:49:11: | frame preprocessing and rendering - [73.1%] [avg time: 11.959 ms (cpu time: avg 5.161 ms, total 96814.2 ms)] [avg calls per frame: 1] [children: 66.6%] [unaccounted: 6.47%]
09:49:11: | | scene->Preprocess - [66.6%] [avg time: 10.901 ms (cpu time: avg 4.57 ms, total 85722.6 ms)] [avg calls per frame: 1]
09:49:11: | video encoding and uploading - [26.8%] [avg time: 4.387 ms (cpu time: avg 2.994 ms, total 56160.4 ms)] [avg calls per frame: 1] [children: 26.1%] [unaccounted: 0.715%]
09:49:11: | | flush - [1.71%] [avg time: 0.279 ms (cpu time: avg 0.129 ms, total 2433.61 ms)] [avg calls per frame: 1]
09:49:11: | | CopyResource - [0.868%] [avg time: 0.142 ms (cpu time: avg 0.084 ms, total 1591.22 ms)] [avg calls per frame: 0]
09:49:11: | | conversion to 4:2:0 - [0.801%] [avg time: 0.131 ms (cpu time: avg 0.006 ms, total 124.802 ms)] [avg calls per frame: 0]
09:49:11: | | call to encoder - [22%] [avg time: 3.602 ms (cpu time: avg 2.69 ms, total 50466.3 ms)] [avg calls per frame: 0]
09:49:11: | | sending stuff out - [0.709%] [avg time: 0.116 ms (cpu time: avg 0.053 ms, total 998.411 ms)] [avg calls per frame: 0]
09:49:11: | Convert444Threads - [218%] [avg time: 35.703 ms (cpu time: avg 2.116 ms, total 39702.3 ms)] [avg calls per frame: 0]
09:49:11: ==============================================================
09:49:11: 
09:49:11: =====Stream End: 2013-08-22, 09:49:11=================================================

I've never had any problems with framerate until recently moving into a new apartment, so I suspect the internet here might be the issue, but my speedtest results are fine.

League runs smoothly without the stream going, so I know the problem is definitely with my streaming rather than League or my machine.

Also, as a side, I recently switched to having dual monitors and when League is fullscreen on my monitor, there is a strip showing part of the windows behind the League window , like so http://puu.sh/485Ja.jpg (It's on the right). How would I go about fixing this?
 

Kharay

Member
No need to edit your opening post; in fact, it is better not to, ends up confusing the logical order of the conversation.

Couple of things:
  • You're using a Monitor Capture; it is strongly advised not to do so. There are better ways to capture League of Legends. You have quite a few late frames which could be as a result of using Monitor Capture; in Windows 7 / Vista it easily is the slowest capture method.
  • You have keyint=60 manually specified. Whereas this isn't an issue, there also is no need to. OBS' latest versions have a control that will allow you to specify the keyframe interval.
  • Did you make sure to run a test on testmy.net to a server near the one you've been streaming to? Thing is, you are indeed dropping a few frames (although only a few). This could be for any of a number of reasons. It could simply be Twitch's natural tendency to congest hard or it could be a routing issue or it could be a bandwidth issue.
 

TheAlexC

New Member
I use monitor capture because, for whatever reason, Game capturing League of Legends crashes the game once Streaming commences and gives me a Bugsplat, and I've found that window capture doesnt detect the League window unless it is in Windowed mode, which is unacceptable(I prefer to play in Fullscreen). It's worked fine until I recently moved into a new place and my frames started dropping. What are some of the better ways that you mentioned to go about Streaming League?

I was unaware. I just needed to set my keyframe intervals so that Twitch would put my stream rating as "Excellent" and the first google result gave me that method.

I ran the test to Dallas, TX while my Twitch Server is San Antonio, TX. I've found, using the TwitchTV Ingest Latency Checker from JTV, that the San Antonio and Dallas servers give me the lowest latency with the smallest jitter. However, my actual Location is in Florida. What are the other possible reasons for frame drops that you mention on your third point?
 

Kharay

Member
Does LoL not have a Fullscreen Window / Borderless Window mode? This would allow you to play it in fullscreen but would allow you to capture it with Window Capture. The ideal way to capture it is to have a Window Capture for its lobby window and a Window (or Game) Capture for its match window and using Simple Scene Switcher (a plugin, have a look in the plugins section here on this forum) to switch automatically between the 2. Monitor Capture really performs far, far worse than either Window or Game Capture. If you were to go with that approach, make sure to Enable Aero, since Window Capture performs far better with Aero Enabled. As far as Game Capturing LoL is concerned, the last time I checked it was just fine. I am willing to try again though, maybe a recent LoL / OBS patch made it crash. Will have to get back to you on that though, don't have it installed at the moment.

As far as possible causes for dropped frames, the list is quite extensive:
  • Max Bitrate too high.
  • Custom Buffer Size misconfiguration.
  • Twitch being twitchy
  • ISP being iffy
  • A CDN in between you and Twitch having (temporary) issues
  • etc, etc, etc, etc.
 

TheAlexC

New Member
Thanks for all the info. I didn't realize League's borderless mode counted as a Window. Using that allows me to use window capture and fixes the extra issue I had with the strip on the side of my stream.

Unfortunately, after all of that, I still experience significant framerate drops in game whilst the Stream is going. As soon as I turn the stream off, I'm able to play fine. Like I said before, I've always been able to stream at the current resolution I'm at with literally no problems. The only thing that's changed is my switching apartments, and it's not like it's a bad quality internet connection, as my upload tests show.

Do you have any other advice for me?

EDIT: Also, here is the log from my latest session using Window capture :

Code:
10:25:01: Open Broadcaster Software v0.552b - 32bit (´・ω・`)
10:25:01: -------------------------------
10:25:01: CPU Name: Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz
10:25:01: CPU Speed: 2793MHz
10:25:01: Physical Memory:  4095MB Total, 4095MB Free
10:25:01: stepping id: 7, model 10, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 4, total cores 2
10:25:01: monitor 1: pos={0, 0}, size={1366, 768}
10:25:01: monitor 2: pos={1366, 0}, size={1360, 768}
10:25:01: Windows Version: 6.1 Build 7601 S
10:25:01: Aero is Disabled
10:25:01: -------------------------------
10:25:01: OBS Modules:
10:25:01: Base Address     Module
10:25:01: 01040000         OBS.exe
10:25:01: 60B80000         OBSApi.dll
10:25:01: 74270000         DShowPlugin.dll
10:25:01: 74250000         GraphicsCapture.dll
10:25:01: 6ED30000         NoiseGate.dll
10:25:01: 68790000         PSVPlugin.dll
10:25:01: ------------------------------------------
10:25:01: Adapter 1
10:25:01:   Video Adapter: Intel(R) HD Graphics Family
10:25:01:   Video Adapter Dedicated Video Memory: 67108864
10:25:01:   Video Adapter Shared System Memory: 1711276032
10:25:01: ------------------------------------------
10:25:01: Adapter 2
10:25:01:   Video Adapter: NVIDIA GeForce GT 520M
10:25:01:   Video Adapter Dedicated Video Memory: 1041825792
10:25:01:   Video Adapter Shared System Memory: 3221069824
10:25:01: =====Stream Start: 2013-08-23, 10:25:01===============================================
10:25:01:   Multithreaded optimizations: On
10:25:01:   Base resolution: 1366x778
10:25:01:   Output resolution: 1364x778
10:25:01: ------------------------------------------
10:25:01: Loading up D3D10 on Intel(R) HD Graphics Family...
10:25:01: Playback device Default
10:25:01: ------------------------------------------
10:25:01: Using desktop audio input: Speakers (Realtek High Definition Audio)
10:25:01: ------------------------------------------
10:25:01: Using auxilary audio input: Microphone (Realtek High Definition Audio)
10:25:01: ------------------------------------------
10:25:01: Audio Encoding: AAC
10:25:01:     bitrate: 128
10:25:01: ------------------------------------------
10:25:01:     device: Integrated Webcam,
10:25:01:     device id \\?\usb#vid_174f&pid_143f&mi_00#7&3688707d&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
10:25:01:     chosen type: YUY2, usingFourCC: false, res: 1280x720 - 1280x720, frameIntervals: 1000000-2000000, fourCC: 'YUY2'
10:25:01:     audio device: Disable,
10:25:01:     audio device id Disabled,
10:25:01: 
10:25:02: Using directshow input
10:25:02: Using Window Capture
10:25:02: Using custom x264 settings: "keyint=60"
10:25:02: ------------------------------------------
10:25:02: Video Encoding: x264
10:25:02:     fps: 30
10:25:02:     width: 1364, height: 778
10:25:02:     preset: veryfast
10:25:02:     CBR: yes
10:25:02:     CFR: no
10:25:02:     max bitrate: 3000
10:25:02: ------------------------------------------
10:25:02: MMDeviceAudioSource: Frequency for device 'Speakers (Realtek High Definition Audio)' is 384000, samples per sec is 48000
10:25:02: MMDeviceAudioSource: Frequency for device 'Microphone (Realtek High Definition Audio)' is 352800, samples per sec is 44100
10:25:03: Using RTMP service: Twitch / Justin.tv
10:25:03:   Server selection: rtmp://live-dfw-backup.justin.tv/app
10:25:03:   Interface: Atheros AR8151 PCI-E Gigabit Ethernet Controller (NDIS 6.20) (ethernet, 100 mbps)
10:25:05: SO_SNDBUF was at 8192
10:25:05: SO_SNDBUF is now 65536
10:25:06: RTMPPublisher::Socketloop: Increasing send buffer to ISB 262144 (buffer: 14439 / 400384)
10:25:08: RTMPPublisher::Socketloop: Increasing send buffer to ISB 524288 (buffer: 0 / 400384)
10:25:46: RTMPPublisher::Socketloop: Increasing send buffer to ISB 1048576 (buffer: 0 / 400384)
10:37:05: Total frames rendered: 19743, number of late frames: 1607 (8.14%) (it's okay for some frames to be late)
10:37:06: RTMPPublisher::SocketLoop: Graceful loop exit
10:37:06: Number of times waited to send: 0, Waited for a total of 0 bytes
10:37:06: Number of b-frames dropped: 20 (0.1%), Number of p-frames dropped: 21 (0.11%), Total 41 (0.21%)
10:37:06: 
10:37:06: Profiler results:
10:37:06: 
10:37:06: ==============================================================
10:37:06: frame - [100%] [avg time: 20.503 ms (cpu time: avg 8.951 ms, total 176734 ms)] [avg calls per frame: 1] [children: 99.9%] [unaccounted: 0.0927%]
10:37:06: | frame preprocessing and rendering - [70%] [avg time: 14.358 ms (cpu time: avg 5.652 ms, total 111603 ms)] [avg calls per frame: 1] [children: 63.8%] [unaccounted: 6.23%]
10:37:06: | | scene->Preprocess - [63.8%] [avg time: 13.081 ms (cpu time: avg 4.919 ms, total 97126.2 ms)] [avg calls per frame: 1]
10:37:06: | video encoding and uploading - [29.9%] [avg time: 6.126 ms (cpu time: avg 3.296 ms, total 65083.6 ms)] [avg calls per frame: 1] [children: 29.4%] [unaccounted: 0.512%]
10:37:06: | | flush - [1.28%] [avg time: 0.263 ms (cpu time: avg 0.148 ms, total 2932.82 ms)] [avg calls per frame: 1]
10:37:06: | | CopyResource - [1.29%] [avg time: 0.265 ms (cpu time: avg 0.105 ms, total 2074.81 ms)] [avg calls per frame: 0]
10:37:06: | | conversion to 4:2:0 - [0.795%] [avg time: 0.163 ms (cpu time: avg 0.009 ms, total 187.205 ms)] [avg calls per frame: 0]
10:37:06: | | call to encoder - [25.3%] [avg time: 5.181 ms (cpu time: avg 2.95 ms, total 58250.8 ms)] [avg calls per frame: 0]
10:37:06: | | sending stuff out - [0.727%] [avg time: 0.149 ms (cpu time: avg 0.049 ms, total 982.807 ms)] [avg calls per frame: 0]
10:37:06: | Convert444Threads - [179%] [avg time: 36.602 ms (cpu time: avg 2.134 ms, total 42135.9 ms)] [avg calls per frame: 0]
10:37:06: ==============================================================
10:37:06: 
10:37:06: =====Stream End: 2013-08-23, 10:37:06=================================================
 

Kharay

Member
You're dropping frames, which suggests your bitrate is too high. Not by a lot though. What you could consider is dropping down to, say, 2700 and then consider dropping the custom buffer size further down. Dropping custom buffer size to lower values than the max bitrate will make the bitrate more stable and help to counter lagspikes.

However, do not go as far as dropping the custom buffer size all the way down to 0, that will actually end up being extremely counter productive. Try the following: Max Bitrate: 2700, Custom Buffer Size: 810.
 

vaesauce

Member
framerate drops ingame? I know this probably wouldn't matter but double check to make sure in your video settings ingame also... but for the log itself, i'd try what Kharay stated and lower your Bitrate to see if it makes any differences.

the "Frame Rate Cap" is set to "Benchmark" and nothing else. All other settings will cap it even if it says "High FrameRate".
 

Krazy

Town drunk
You should enable Aero if you are using Window Capture, will be better performance. I also think you're just going to have to downscale, the GPU in that laptop isn't very strong, and you are lagging a good amount of frames.
 

alpinlol

Active Member
if you are only streaming LoL even a 1500-2000 bitrate would be enough also if im not mistaken you dont have to set an custom preset anymore for the keyint it should be enough to put a simple 2 in the keyframe section but i might be wrong there
 
Top