Question / Help Poor performance in game while streaming.

MilkMan71

New Member
Hello!

I'm trying to use OBS to stream minecraft on twitch.tv. While OBS seems to be keeping up at 30 fps, my game is closer to 15 most of the time, making it unplayable. I think that with my computer I should really be able to stream and play the game just fine. I can stream SC2 at 720p with 60fps, but minecraft is being stubborn. Please let me know if I messed up any settings, or if you need any more info.

Here is a log of an example stream:

Code:
12:43:37: Open Broadcaster Software v0.592b - 64bit ( ^ω^)
12:43:37: -------------------------------
12:43:37: CPU Name: Intel(R) Core(TM) i5-4670K CPU @ 3.40GHz
12:43:37: CPU Speed: 3405MHz
12:43:37: Physical Memory:  8130MB Total, 2803MB Free
12:43:37: stepping id: 3, model 60, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 4, total cores 4
12:43:37: monitor 1: pos={1920, 0}, size={1920, 1080}
12:43:37: monitor 2: pos={0, 0}, size={1920, 1080}
12:43:37: Windows Version: 6.1 Build 7601 S
12:43:37: Aero is Enabled
12:43:37: -------------------------------
12:43:37: OBS Modules:
12:43:37: Base Address     Module
12:43:37: 000000003F300000 OBS.exe
12:43:37: 00000000EE750000 OBSApi.dll
12:43:37: 00000000F7E60000 DShowPlugin.dll
12:43:37: 00000000F7EF0000 GraphicsCapture.dll
12:43:37: 00000000F7ED0000 NoiseGate.dll
12:43:37: 00000000F7EB0000 PSVPlugin.dll
12:43:37: ------------------------------------------
12:43:37: Adapter 1
12:43:37:   Video Adapter: NVIDIA GeForce GTX 285
12:43:37:   Video Adapter Dedicated Video Memory: 1046151168
12:43:37:   Video Adapter Shared System Memory: 3220779008
12:43:37:   Video Adapter Output 1: pos={0, 0}, size={1920, 1080}, attached=true
12:43:37:   Video Adapter Output 2: pos={1920, 0}, size={1920, 1080}, attached=true
12:43:37: =====Stream Start: 2014-01-23, 12:43:37===============================================
12:43:37:   Multithreaded optimizations: On
12:43:37:   Base resolution: 1920x1080
12:43:37:   Output resolution: 1096x616
12:43:37: ------------------------------------------
12:43:37: Loading up D3D10 on NVIDIA GeForce GTX 285 (Adapter 1)...
12:43:37: ------------------------------------------
12:43:37: Audio Format: 48000hz
12:43:37: Playback device Default
12:43:37: ------------------------------------------
12:43:37: Using desktop audio input: Speakers (2- High Definition Audio Device)
12:43:37: ------------------------------------------
12:43:37: Using auxilary audio input: Microphone (2- High Definition Audio Device)
12:43:37: ------------------------------------------
12:43:37: Audio Encoding: AAC
12:43:37:     bitrate: 256
12:43:37: Using text output
12:43:37: Using graphics capture
12:43:37: Scene buffering time set to 700
12:43:37: ------------------------------------------
12:43:37: Video Encoding: x264
12:43:37:     fps: 30
12:43:37:     width: 1096, height: 616
12:43:37:     preset: veryfast
12:43:37:     profile: main
12:43:37:     keyint: 60
12:43:37:     CBR: yes
12:43:37:     CFR: no
12:43:37:     max bitrate: 3500
12:43:37:     buffer size: 3500
12:43:37: ------------------------------------------
12:43:37: MMDeviceAudioSource: Frequency for device 'Speakers (2- High Definition Audio Device)' is 352800, samples per sec is 44100
12:43:37: MMDeviceAudioSource: Frequency for device 'Microphone (2- High Definition Audio Device)' is 352800, samples per sec is 44100
12:43:37: using memory capture
12:43:39: Using RTMP service: Twitch / Justin.tv
12:43:39:   Server selection: rtmp://live-jfk.justin.tv/app
12:43:39:   Interface: Realtek PCIe GBE Family Controller (ethernet, 1000 mbps)
12:43:40: Completed handshake with rtmp://live-jfk.justin.tv/app in 197 ms.
12:43:40: SO_SNDBUF was at 8192
12:43:40: SO_SNDBUF is now 65536
12:43:42: RTMPPublisher::SocketLoop: Increasing send buffer to ISB 131072 (buffer: 7330 / 480256)
12:43:44: RTMPPublisher::SocketLoop: Increasing send buffer to ISB 262144 (buffer: 0 / 480256)
12:48:34: Total frames encoded: 8869, total frames duplicated: 1108 (12.49%)
12:48:34: Total frames rendered: 8858, number of late frames: 16 (0.18%) (it's okay for some frames to be late)
12:48:34: RTMPPublisher::SocketLoop: Aborting due to WSAEnumNetworkEvents failure, 10038
12:48:34: Average send payload: 9525 bytes, average send interval: 20 ms
12:48:34: Number of times waited to send: 0, Waited for a total of 0 bytes
12:48:34: Number of b-frames dropped: 0 (0%), Number of p-frames dropped: 0 (0%), Total 0 (0%)
12:48:34: Number of bytes sent: 136278767
12:48:34: 
12:48:34: Profiler time results:
12:48:34: 
12:48:34: ==============================================================
12:48:34: video thread frame - [100%] [avg time: 23.135 ms] [children: 93.8%] [unaccounted: 6.24%]
12:48:34: | scene->Preprocess - [0.00864%] [avg time: 0.002 ms]
12:48:34: | GPU download and conversion - [93.8%] [avg time: 21.69 ms] [children: 93.9%] [unaccounted: -0.16%]
12:48:34: | | flush - [0.104%] [avg time: 0.024 ms]
12:48:34: | | CopyResource - [93.8%] [avg time: 21.698 ms]
12:48:34: | | conversion to 4:2:0 - [0.0216%] [avg time: 0.005 ms]
12:48:34: Convert444Threads - [100%] [avg time: 0.281 ms] [children: 99.3%] [unaccounted: 0.712%]
12:48:34: | Convert444toNV12 - [99.3%] [avg time: 0.279 ms]
12:48:34: encoder thread frame - [100%] [avg time: 0.519 ms]
12:48:34: ==============================================================
12:48:34: 
12:48:34: 
12:48:34: Profiler CPU results:
12:48:34: 
12:48:34: ==============================================================
12:48:34: video thread frame - [cpu time: avg 3.45 ms, total 30560.6 ms] [avg calls per frame: 1]
12:48:34: | scene->Preprocess - [cpu time: avg 0.001 ms, total 15.6 ms] [avg calls per frame: 1]
12:48:34: | GPU download and conversion - [cpu time: avg 2.326 ms, total 20607.7 ms] [avg calls per frame: 1]
12:48:34: | | flush - [cpu time: avg 0.014 ms, total 124.8 ms] [avg calls per frame: 1]
12:48:34: | | CopyResource - [cpu time: avg 2.313 ms, total 20436.1 ms] [avg calls per frame: 1]
12:48:34: | | conversion to 4:2:0 - [cpu time: avg 0.001 ms, total 15.6 ms] [avg calls per frame: 1]
12:48:34: Convert444Threads - [cpu time: avg 0.256 ms, total 4539.63 ms] [avg calls per frame: 2]
12:48:34: | Convert444toNV12 - [cpu time: avg 0.256 ms, total 4539.63 ms] [avg calls per frame: 2]
12:48:34: encoder thread frame - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
12:48:34: ==============================================================
12:48:34: 
12:48:34: =====Stream End: 2014-01-23, 12:48:34=================================================
 

Sapiens

Forum Moderator
Does downscaling to a lower stream resolution like 960x540 or 852x480 help at all? You might also look at limiting the frame rate in Minecraft to 60 FPS. Despite the graphical simplicity, it can be very demanding on a CPU.
 

MilkMan71

New Member
Downscaling the resolution does help a bit, but it really destroys the quality because I'm coming from 1920x1080. Vsync is on, so the game is stuck at 60fps when it can go that high.
 

Lain

Forum Admin
Lain
Forum Moderator
Developer
You have an good system that's severely limited by your video card. You should really consider upgrading it.
 

MilkMan71

New Member
I get around 80-150 fps when not streaming. Would a new video card really help when I am streaming? I feel like this is something I should be able to get around with settings. I won't be able to buy a new video card for a couple months anyway because I just upgraded the cpu and motherboard.
 

Lain

Forum Admin
Lain
Forum Moderator
Developer
Because OBS uses the GPU for accelerated compositing and capturing. I know this very well because it causes your exact slowdown, here:
12:48:34: | | CopyResource - [93.8%] [avg time: 21.698 ms]

On a more recent video card, this would be < 1ms. Yours is 21 milliseconds. Your graphics card is stalling. This happens with all the 2xx series.

It may run fine when OBS isn't active, but that's just because OBS is also using your GPU. I built OBS with hardware-acceleration in mind to take advantage of newer hardware features. It scales up incredibly well. You really should have upgraded your video card as well.
 

alpinlol

Active Member
just buy a gtx 760 instead shoudnt be that much of a price difference since the 600 series is out of lifespan
 

FerretBomb

Active Member
Eh, even a budget-range card is probably going to outperform that 285 at this point, and definitely should under OBS.
Also, there's something to be said for buying last-generation... the prices usually do drop significantly on all but the enthusiast/top-end cards. I wouldn't pop for a current-gen card myself if I was keeping my budget in mind, especially with the next gen already directly on the horizon.
 
Top