Question / Help Trying to find optimal settings for streaming my gameplay.

opjohnny

New Member
I'm trying to stream my gameplay to my twitch.tv account and I have everything set up and working but now I'm at the point where I'd like to fine tune my settings to get the best possible quality. I'm using the OBS estimate web app as a base to work with.

My primary screen is 22" 1680x1050 and I run all of my games in 1440x900 windowed mode for two reasons...I multi-task(yes I have dual screens as well), and I often have to re-arrange desktop icons and my rainmeter theme whenever something runs in full screen.

The main games I've been playing lately and will likely be streaming are League of Legends, DayZ, APB, ArmA2, Planetside2.

Here are all the relevant specs I'm working with...

CPU - AMD PhenomII x6 1100t Black Edition @ 4.0GHz
GPU - XFX Radeon HD6970 @ 900/1425MHz
DL - 10.86 Mb/s(speedof.me)
UL - 810 Kb/s(speedof.me)

Here are the OBS settings I'm currently running...

CBR = Off
QB - 6
Bitrate - 600
Buffer - 400
Audio - 96
Minimize Impact - Enabled
Resolution - 1680x1050
Downscale - 2.00 840x524
FPS - 25
Priority - Above Normal

I'm told by my viewers that my stream is a bit pixelated and things like summoner names in LoL are hard to read. With higher bitrate/buffer/FPS(close to default settings) whenever the stream started seeing more in-game action everything would pixelate pretty hard and even become choppy/stutter.

I know I'm being heavily limited here by my DSL connection's terrible upload rate but I'm sure I can squeeze a bit more quality out of these settings. Any tips?

ETA: Looks like you guys like seeing the OBS logs so here ya go. This is the latest one produced.

Code:
00:36:06: Open Broadcaster Software v0.522b - 32bit (´・ω・`)
00:36:06: -------------------------------
00:36:06: CPU Name: AMD Phenom(tm) II X6 1100T Processor
00:36:06: CPU Speed: 4013MHz
00:36:06: Physical Memory:  4095MB Total, 4095MB Free
00:36:06: stepping id: 0, model 10, family 15, type 0, extmodel 8, extfamily 0, HTT 1, logical cores 6, total cores 6
00:36:06: monitor 1: pos={0, 0}, size={1680, 1050}
00:36:06: monitor 2: pos={1680, 3}, size={1280, 1024}
00:36:06: Windows Version: 6.1 Build 7601 S
00:36:06: Aero is Enabled
00:36:06: -------------------------------
00:36:06: OBS Modules:
00:36:06: Base Address     Module
00:36:06: 013D0000         OBS.exe
00:36:06: 62410000         OBSApi.dll
00:36:06: 6B490000         DShowPlugin.dll
00:36:06: 6B470000         GraphicsCapture.dll
00:36:06: 6B450000         NoiseGate.dll
00:36:06: ------------------------------------------
00:36:06: Adapter 1
00:36:06:   Video Adapter: AMD Radeon HD 6900 Series
00:36:06:   Video Adapter Dedicated Video Memory: 2133544960
00:36:06:   Video Adapter Shared System Memory: 2161356800
00:36:06: Using fixed low latency mode, factor 20
00:36:06: =====Stream Start: 2013-06-21, 00:36:06===============================================
00:36:06:   Multithreaded optimizations: On
00:36:06:   Base resolution: 1680x1050
00:36:06:   Output resolution: 840x524
00:36:06: ------------------------------------------
00:36:06: Loading up D3D10...
00:36:06: Playback device Default
00:36:06: ------------------------------------------
00:36:06: Using desktop audio input: Speakers (VIA High Definition Audio)
00:36:06: ------------------------------------------
00:36:06: Using auxilary audio input: Microphone (VIA High Definition Audio)
00:36:06: ------------------------------------------
00:36:06: Audio Encoding: AAC
00:36:06:     bitrate: 96
00:36:06: Using Monitor Capture
00:36:06: ------------------------------------------
00:36:06: Video Encoding: x264
00:36:06:     fps: 25
00:36:06:     width: 840, height: 524
00:36:06:     preset: veryfast
00:36:06:     CBR: no
00:36:06:     CFR: no
00:36:06:     max bitrate: 600
00:36:06:     buffer size: 400
00:36:06:     quality: 6
00:36:06: ------------------------------------------
00:36:08: Using RTMP service: Twitch / Justin.tv
00:36:08:   Server selection: rtmp://live-ord.justin.tv/app
00:36:09: SO_SNDBUF was at 8192
00:36:09: SO_SNDBUF is now 65536
00:37:38: Total frames rendered: 1839, number of frames that lagged: 1823 (99.13%) (it's okay for some frames to lag)
00:37:38: RTMPPublisher::SocketLoop: Aborting due to loop exit
00:37:38: Number of times waited to send: 0, Waited for a total of 0 bytes
00:37:38: Number of b-frames dropped: 0 (0%), Number of p-frames dropped: 0 (0%), Total 0 (0%)
00:37:38: =====Stream End: 2013-06-21, 00:37:38=================================================
00:38:33: Using fixed low latency mode, factor 20
00:38:33: =====Stream Start: 2013-06-21, 00:38:33===============================================
00:38:33:   Multithreaded optimizations: On
00:38:33:   Base resolution: 1680x1050
00:38:33:   Output resolution: 840x524
00:38:33: ------------------------------------------
00:38:33: Loading up D3D10...
00:38:33: Playback device Default
00:38:33: ------------------------------------------
00:38:33: Using desktop audio input: Speakers (VIA High Definition Audio)
00:38:33: ------------------------------------------
00:38:33: Using auxilary audio input: Microphone (VIA High Definition Audio)
00:38:33: ------------------------------------------
00:38:33: Audio Encoding: AAC
00:38:33:     bitrate: 96
00:38:33: Using Monitor Capture
00:38:33: ------------------------------------------
00:38:33: Video Encoding: x264
00:38:33:     fps: 25
00:38:33:     width: 840, height: 524
00:38:33:     preset: veryfast
00:38:33:     CBR: no
00:38:33:     CFR: no
00:38:33:     max bitrate: 600
00:38:33:     buffer size: 400
00:38:33:     quality: 6
00:38:33: ------------------------------------------
00:38:35: Using RTMP service: Twitch / Justin.tv
00:38:35:   Server selection: rtmp://live-ord.justin.tv/app
00:38:35: SO_SNDBUF was at 8192
00:38:35: SO_SNDBUF is now 65536
00:40:37: Total frames rendered: 2445, number of frames that lagged: 2071 (84.70%) (it's okay for some frames to lag)
00:40:37: RTMPPublisher::SocketLoop: Aborting due to bStopping
00:40:37: Number of times waited to send: 0, Waited for a total of 0 bytes
00:40:37: Number of b-frames dropped: 0 (0%), Number of p-frames dropped: 0 (0%), Total 0 (0%)
00:40:37: =====Stream End: 2013-06-21, 00:40:37=================================================
00:41:13: 
00:41:13: Profiler results:
00:41:13: 
00:41:13: ==============================================================
00:41:13: frame - [100%] [avg time: 49.963 ms] [avg calls per frame: 1] [children: 99.2%] [unaccounted: 0.783%]
00:41:13: | scene->Preprocess - [97.2%] [avg time: 48.543 ms] [avg calls per frame: 1]
00:41:13: | video encoding and uploading - [2.06%] [avg time: 1.029 ms] [avg calls per frame: 1] [children: 1.97%] [unaccounted: 0.0941%]
00:41:13: | | CopyResource - [0.02%] [avg time: 0.01 ms] [avg calls per frame: 0]
00:41:13: | | conversion to 4:2:0 - [0.014%] [avg time: 0.007 ms] [avg calls per frame: 0]
00:41:13: | | call to encoder - [1.89%] [avg time: 0.944 ms] [avg calls per frame: 0]
00:41:13: | | sending stuff out - [0.042%] [avg time: 0.021 ms] [avg calls per frame: 0]
00:41:13: ==============================================================
00:41:13:
 

dodgepong

Administrator
Community Helper
Re: Trying to find optimal settings for streaming my gamepla

You need to disable Aero if you are going to use Monitor capture, or else your performance will be horrible. If you want to keep Aero enabled, use Window capture instead.

Also, if you have the CPU to spare, you can try running the faster x264 preset, which will improve picture quality slightly. But you are definitely limited byt your upload speed, here.

I also recommend enabling CBR, which should help prevent you (a little bit) from spiking over your max upload speed, which would cause dropped frames.
 

opjohnny

New Member
Re: Trying to find optimal settings for streaming my gamepla

Thanks for the info. I went ahead and enabled CBR and bumped the x264 speed up a notch. Will report back later on how that works out.

As much as I'd like to stream the game client or the window, league of legends kinda makes that a PITA as I'm sure you know already.

Is there anything I could do with my bitrate/buffer or am I good with my current settings? Latest reports from my viewers(before the above adjustments) is that the stream is definitely watchable and only has some minor pixeling which shows up mostly when there is a lot of action going on.

ETA: With these settings my ping bounces between 100-200 in game. Otherwise I'm pretty sure the stream is plenty watchable.
 

dodgepong

Administrator
Community Helper
Re: Trying to find optimal settings for streaming my gamepla

The best way to stream LoL is to set up 2 scenes. In the first scene, have a Window Capture of the LoL client, and in the second scene, have a Game Capture of the actual LoL game. Then use the Simple Scene Switcher to automatically swap between them: viewtopic.php?f=11&t=1785

Just for the love of god don't use Monitor capture, it is awful awful awful awful on Windows 7 and lower.

Your bit rate settings are fine. There's not going to be much you can do with that upload speed, so it will always be pixelated.
 

opjohnny

New Member
Re: Trying to find optimal settings for streaming my gamepla

Would there happen to be a guide on how to set up streaming for league using scene switch? I'm browsing through the thread right now and only found one reply so far that explains it but I'm pretty sure english isn't that guys first language.

Also is there anything I can do about the high ping when streaming? I'm guessing I'd have to drop bitrate and buffer for that.
 

opjohnny

New Member
Re: Trying to find optimal settings for streaming my gamepla

Ok I have this scene switch set up but I ran in to a weird issue.

Scene 1 - Window Capture for PVP Client(lol main screen)
Scene 2 - Game Capture for the League process(lol loading screen and actual game screen)

This setup works flawlessly but I want to run Scene 1 as Game Capture for PVP Client. It let's me but the capture is black. I need to figure out how to fix this because using Window Capture for Scene 1 just shows whatever window is active(Fixed by re-enabling aero, but switching from scene 1 to scene 2 is not automatic. I must click the window for it to trigger).

Also dropped bitrate/buffer to 500/350 in an attempt to reduce ping in game. Haven't tested yet.
 

dodgepong

Administrator
Community Helper
Re: Trying to find optimal settings for streaming my gamepla

I don't know that you can Game Capture the PVP.net client. Just enable Aero and it should be fine.
 

opjohnny

New Member
Re: Trying to find optimal settings for streaming my gamepla

Yeah there was no way to game capture the pvp.net client so I enabled aero and have it on window capture which works fine.

I was suffering some high ping issues in game so I dropped the downscale once more and set bitrate/buffer to 400. That seems to be the best balance of performance/quality. Really wish my DSL company would give me some more upload bandwidth. :\
 

opjohnny

New Member
Re: Trying to find optimal settings for streaming my gamepla

What kind of stream quality would I be looking at with a 30/2 cable connection? I have the cable company coming out Friday to set me up with the new connection so I can drop my 10/0.8 DSL connection. Will save me like $15-20+/- a month after the switch. ;)
 

dodgepong

Administrator
Community Helper
Re: Trying to find optimal settings for streaming my gamepla

For LoL, a ~1500kbps bit rate is actually not too bad. You might be able to get away with a low-quality 720p stream with that.
 
Top