Question / Help Extreme stuttering of Stream, 2mb upload / Good PC / WoW

kraa

New Member
Hi,

Been trying to stream World of Warcraft on Twitch.tv with OBS for the first time with my new PC and have to say I am a bit surprised by the result (which I guess should not be given my slow upload bandwith).

Specs:
i7 4770
8 GB Kingston 1600 MHZ RAM
MSI GTX 660 TI Power Edition
Asus Z87-A
SSD (game, windows and OBS installed here)

But currently I'm stuck with this bottleneck of an internet: 12/2 (Speedtest 1.7 mb Upload and testmy.net/upload 1.6 mb)

Now I appreciate the fact that 1.6 MB Upload is not the ideal, but as far as I have understood it should be enough to stream "medium quality" (I was expecting to stream at 616/540). The issue is, I can't even seem to stream at the lowest resolution/quality balance without extreme stuttering/pixelating of the stream. The stream looks good at any resolution/quality while standing still in game, but when moving the stream becomes an unwatchable mess.

I've tried different settings, tried several how-to's/guides on how to use the settings but nothing seems to do it. Is my connection simply too unstable to do it or what?

One thing I noticed while streaming, OBS almost always shows me a 1000 kb/s + bit rate no matter what settings I am on. 540 with low quality is around 1500 kbs? I have usually set the bitrate to around 70% of my total (so about 1100-1200) but this seems too low even for 360.

Any advice really appreciated. And thanks for providing such a cool program.

Here's my log from a very brief session at low settings where stuttering/pixelating was very present:

EDIT: For this session, I changed WoW settings to LOW just in case that had anything to do with the stuttering.

08:16:51: Open Broadcaster Software v0.542b - 32bit (´・ω・`)
08:16:51: -------------------------------
08:16:51: CPU Name: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
08:16:51: CPU Speed: 3398MHz
08:16:51: Physical Memory: 4095MB Total, 4095MB Free
08:16:51: stepping id: 3, model 12, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 8, total cores 4
08:16:51: monitor 1: pos={-1920, 0}, size={1920, 1080}
08:16:51: monitor 2: pos={0, 0}, size={1920, 1080}
08:16:51: Windows Version: 6.1 Build 7600
08:16:51: Aero is Enabled
08:16:51: -------------------------------
08:16:51: OBS Modules:
08:16:51: Base Address Module
08:16:51: 00330000 OBS.exe
08:16:51: 73F50000 OBSApi.dll
08:16:51: 73D10000 DShowPlugin.dll
08:16:51: 73CF0000 GraphicsCapture.dll
08:16:51: 73CD0000 NoiseGate.dll
08:16:51: 73CB0000 PSVPlugin.dll
08:16:51: ------------------------------------------
08:16:51: Adapter 1
08:16:51: Video Adapter: NVIDIA GeForce GTX 660 Ti
08:16:51: Video Adapter Dedicated Video Memory: 2091319296
08:16:51: Video Adapter Shared System Memory: 2147479552
08:16:51: =====Stream Start: 2013-07-30, 08:16:51===============================================
08:16:51: Multithreaded optimizations: On
08:16:51: Base resolution: 1920x1080
08:16:51: Output resolution: 852x480
08:16:51: ------------------------------------------
08:16:51: Loading up D3D10...
08:16:51: Playback device {0.0.0.00000000}.{3c07a1f1-7026-452c-a7e7-e603249f1830}
08:16:51: ------------------------------------------
08:16:51: Using desktop audio input: Speakers (2- Logitech USB Headset)
08:16:51: ------------------------------------------
08:16:51: Audio Encoding: AAC
08:16:51: bitrate: 96
08:16:51: Using graphics capture
08:16:51: ------------------------------------------
08:16:51: Video Encoding: x264
08:16:51: fps: 30
08:16:51: width: 852, height: 480
08:16:51: preset: veryfast
08:16:51: CBR: yes
08:16:51: CFR: no
08:16:51: max bitrate: 800
08:16:51: ------------------------------------------
08:16:51: SharedTexCapture hooked
08:16:53: Using RTMP service: Twitch / Justin.tv
08:16:53: Server selection: rtmp://live-fra.justin.tv/app
08:16:55: SO_SNDBUF was at 8192
08:16:55: SO_SNDBUF is now 65536
08:18:38: Total frames rendered: 3202, number of frames that lagged: 0 (0.00%) (it's okay for some frames to lag)
08:18:38: RTMPPublisher::SocketLoop: Aborting due to bStopping
08:18:38: Number of times waited to send: 0, Waited for a total of 0 bytes
08:18:38: Number of b-frames dropped: 0 (0%), Number of p-frames dropped: 0 (0%), Total 0 (0%)
08:18:38: =====Stream End: 2013-07-30, 08:18:38=================================================
08:19:03:
08:19:03: Profiler results:
08:19:03:
08:19:03: ==============================================================
08:19:03: frame - [100%] [avg time: 1.438 ms (cpu time: avg 1.096 ms, total 3510.02 ms)] [avg calls per frame: 1] [children: 99.7%] [unaccounted: 0.278%]
08:19:03: | frame preprocessing and rendering - [42.8%] [avg time: 0.615 ms (cpu time: avg 0.526 ms, total 1684.81 ms)] [avg calls per frame: 1] [children: 0.0695%] [unaccounted: 42.7%]
08:19:03: | | scene->Preprocess - [0.0695%] [avg time: 0.001 ms (cpu time: avg 0 ms, total 0 ms)] [avg calls per frame: 1]
08:19:03: | video encoding and uploading - [57%] [avg time: 0.819 ms (cpu time: avg 0.57 ms, total 1825.21 ms)] [avg calls per frame: 1] [children: 55.6%] [unaccounted: 1.39%]
08:19:03: | | flush - [15.2%] [avg time: 0.218 ms (cpu time: avg 0.038 ms, total 124.801 ms)] [avg calls per frame: 1]
08:19:03: | | CopyResource - [1.46%] [avg time: 0.021 ms (cpu time: avg 0.024 ms, total 78 ms)] [avg calls per frame: 0]
08:19:03: | | conversion to 4:2:0 - [0.556%] [avg time: 0.008 ms (cpu time: avg 0.009 ms, total 31.2 ms)] [avg calls per frame: 0]
08:19:03: | | call to encoder - [36.9%] [avg time: 0.53 ms (cpu time: avg 0.467 ms, total 1497.61 ms)] [avg calls per frame: 0]
08:19:03: | | sending stuff out - [1.53%] [avg time: 0.022 ms (cpu time: avg 0.009 ms, total 31.201 ms)] [avg calls per frame: 0]
08:19:03: | Convert444Threads - [4.61e+003%] [avg time: 66.31 ms (cpu time: avg 0.565 ms, total 1809.61 ms)] [avg calls per frame: 1]
08:19:03: ==============================================================
08:19:03:
 

Kharay

Member
First of all, you're downscaling it way too hard. That won't look good either way, no matter what you do.

Could you run an upload test and post the results? And make sure to pick a server near the one you've been streaming to; ideally both servers should be as near to you as is possible.
 

kraa

New Member
Kharay said:
First of all, you're downscaling it way too hard. That won't look good either way, no matter what you do.

Could you run an upload test and post the results? And make sure to pick a server near the one you've been streaming to; ideally both servers should be as near to you as is possible.


Thanks for reply, Kharay.

The reason why I tried downscaling it because of the pixelating at any other resolution (and at lowest too).

Thought I included the testmy.net/upload results? In any case it shows 1.6 mb upload (and 12 mb download if that holds any value). Both the stream server and testmy.net/upload were for the Netherlands and I am from Finland.

I tried setting the preset to slow this morning and it looked a bit better but still pixelating/stuttering when turning around in the game. I can take a longer session this evening and a log of that, let's say 480 or 540p.

Ideally I would like to stream @ 720p but I understand that this is not possible with my mere 1.6mb upload. I would even be quite happy (for the time being stuck with this overpriced slow internet) with 540/616p if they didn't pixelate.
 

Kharay

Member
The reason I mentioned the downscaling being too much; you're going from 1080p all the way down to 480p. No matter how good the filter (Lanczos is a pretty decent filter), quality loss will be incurred when downscaling that much. Have you ever considered playing WoW in a 1600x900 window and downscaling that to 720p with Lanczos? Looks just fine really.

Regarding x264 CPU Presets: Veryfast is just fine for typical use and in fact, WoW can be made to look just fine on Veryfast.

Regarding the pixelation -- the log showed you having a bitrate of 800. Not to put too fine a point on it but 800 Kbps will not sing, will not dance and will not make a game like WoW look any good. Given your 1.6 Mbps upload I would suggest the following:
  • WoW in a 1600x900 window
  • Enable Aero
  • OBS
    • Encoding: CBR 1250 Kbps (no custom buffer size)
    • Video: Base Resolution: 1600x900 // Resolution Downscale: 720p (Lanczos filter) // FPS: 48 FPS (sadly enough, an MMO needs at least some FPS, 30 just won't look any good in active scenes/battles)
    • Audio: AAC 128 Kbps
    • Advanced: Process Priority Class: Above Normal // x264 CPU Preset: Veryfast // x264 Custom Settings: opencl=true
 

kraa

New Member
Kharay said:
The reason I mentioned the downscaling being too much; you're going from 1080p all the way down to 480p. No matter how good the filter (Lanczos is a pretty decent filter), quality loss will be incurred when downscaling that much. Have you ever considered playing WoW in a 1600x900 window and downscaling that to 720p with Lanczos? Looks just fine really.

Regarding x264 CPU Presets: Veryfast is just fine for typical use and in fact, WoW can be made to look just fine on Veryfast.

Regarding the pixelation -- the log showed you having a bitrate of 800. Not to put too fine a point on it but 800 Kbps will not sing, will not dance and will not make a game like WoW look any good. Given your 1.6 Mbps upload I would suggest the following:
  • WoW in a 1600x900 window
  • Enable Aero
  • OBS
    • Encoding: CBR 1250 Kbps (no custom buffer size)
    • Video: Base Resolution: 1600x900 // Resolution Downscale: 720p (Lanczos filter) // FPS: 48 FPS (sadly enough, an MMO needs at least some FPS, 30 just won't look any good in active scenes/battles)
    • Audio: AAC 128 Kbps
    • Advanced: Process Priority Class: Above Normal // x264 CPU Preset: Veryfast // x264 Custom Settings: opencl=true

Thanks a lot.

I'll re-test tonightwith your advised settings.
 

WayZHC

Member
And make sure you use Amsterdam server. Frankfurt is overloaded... A lot. It has a huge affect to the stream stability.

joo eli turha siis valkata Frankfurtia ;) tosin sulla tais ollaki amsterdam jo valittuna
 
Top