Question / Help Low Upload: hardware suggestions to help?

uhf

New Member
Long story short, my upload speed (0.85Mbps) is not ideal for streaming. However with the right settings and low movement games, I've been able to produce an 'ok' quality 720p stream. I've been looking to stream some faster scrolling games like Dota2 with custom x264 settings, but it really kills my stream framerate.

A better ISP would be ideal, but short of paying $160/month for 25gb data (amazing speeds) I don't really have any options. So, I'm looking at ways to offset my low upload speed by upgrading and maximising my hardware. Obviously any improvements I get will be very minor, but at this point I'm willing to take anything I can.

My current and quite dated PC (all stock):

CPU: AMD Phenom II - 955 BE (3.2Ghz)
RAM: Kingston 8GB DDR3 1333MHZ
GPU: Radeon 6850 1G

So, I guess my questions are:

1. What top range CPUs should I be looking at, assuming I'll be shifting as much load as I can onto it?
2. What other gear can I purchase that will help improve the quality of my stream? (ie. Capture card, more ram, graphics card, SSD, etc)

Thanks in advance!
 

FerretBomb

Active Member
You can look at a top-range Core i7 k-series, but even dropping from Veryfast through Faster to Fast will still not get you much of a quality/clarity increase, with a significantly higher load.

A capture card will do exactly two things for you: Jack, and squat. If you buy the Avermedia with hardware encoding onboard, you have to use their software to stream (not OBS) which supports... adding a microphone. And the quality looks like poop.

An SSD will help loading times, but isn't going to decrease the CPU load. RAM you look fine on for a midrange. Jumping to 16GB could ease other system slowdowns, but isn't going to do much for your stream.

Short version, you're looking for a miracle. Realistically, you may have to drop to a 480p stream (or lower), or cut your framerate to free up some throughput for greater image clarity at the cost of fluidity of motion. There's some custom x264 settings in a few of these other 'Help' threads that may improve things slightly, but the short version is, you *need* more throughput (and consistent throughput, not dead-file-transfer spiky throughput).

Three (realistic/non-miracle) options:
1) Lower your resolution/downscale further.
2) Cut your framerate from 30 to 25-20 (or lower).
3) Get a new ISP. This is the one you really need to do.
 

uhf

New Member
At this point in time, a new ISP is not possible. As I mentioned, the only alternative is both costly and limited. I've been tweaking my stream for a few weeks now, and here are my results:

- 600-800Kbps max bitrate before I drop frames (the slower the game, the higher i go)
- I can stream fine at 720p with 30 frame rate on default CPU and x264 settings.
- Dropping to 480p halves visual quality, while providing no noticeable benefit
- Dropping the frame rate provides no noticeable benefit

Visually, the stream looks better the slower the game. The problem arrives when I mess with CPU presets and custom x264 settings for faster games. I find huge gains in quality with custom x264 settings, but it absolutely kills my frame rate. I can only assume this is my older PC holding me back.

I'm particularly interested in CPU suggestions, especially if the new series are any good or if the i7 series is still the best option.
 

FerretBomb

Active Member
The newest (Haswell) C1 batch have a stepping issue. Wait for the C2, and see if Intel fixes it.

Frame drops are dependent on your network throughput, not on-screen action. If your system is overtaxed, you'll end up with lagged frames, not drops. If your network throughput fluctuates badly, you may need to back off your bitrate. Definitely should be using CBR (as it goes above the set bitrate less often).

Post a log from a live streaming session where you're on the edge of what you can achieve, and we can go through it and see what's up. They're in %appdata%\OBS\logs\ and timestamped with your streaming session. Text file, just copy/paste here in between 'code' tags.

Bitrate is your 'currency'. You have to spend it in five areas:
-Game network communication (if it's online multiplayer)
-Sound (Use AAC. It still sounds great at low bitrates, unlike MP3; most streamers could get away with 96kbps without anyone noticing... you can go down further and it will only degrade quality slowly. Test and play with this until you get to an 'acceptable' level)
-Resolution (More resolution = more pixels = more bandwidth required.)
-Framerate (Your resolution, multiplied. 60fps takes about twice as much band to push a stream at the same image clarity as 30fps. Likewise, 15fps only takes half as much bandwidth)
-Clarity/picture quality (Whatever is left over improves this, up to the source image quality)

So you'll get a smaller, stutterier, but CLEARER picture (for the size) if you drop your resolution and framerate, as there is more bitrate available for image clarity. If resolution is more important with high quality, drop your framerate. If smooth motion is needed, but you don't need as high a resolution (after all, comparatively few people run streams fullscreened... so usually a 360p or 480p looks fine so long as it's still windowed), then drop to a lower res and keep the framerate where it was.

The reason low-motion games look better is because there is less needed to be updated on-screen, meaning the bandwidth used is only for a small portion of the screen (essentially). It's a subset/multiplier on the above split.
 

uhf

New Member
I did some more testing last night (will provide logs tonight). No matter what settings I use, 750Kbps is about the max bitrate I can get away with. I get the same performance whether I use 720p 30FPS or 480p 30FPS - they both stream fine.

I notice you suggested that dropping to 480p and lowering framerate will give me a clearer picture. However I've found the opposite at this bitrate: it becomes a visual mess and text becomes nearly unreadable. I guess I'm confused because I can stream 720p 30FPS fine, so dropping resolution and framerate seems silly if it actually looks visually worse.

The only way I've been able to scrape together visual improvements at this point is to use custom x264 settings. I've been using a mixture of settings found in the guide section, and it provides significant visual improvements when streaming games like Dota2. However, my framerate almost halves on stream (note: my PC doesn't lag and i don't drop any frames). This is why I was under the impression my PC isn't up to scratch!
 

jesyjames

New Member
It's pretty easy to tell if your computer is choking when you are streaming. I personally use this: http://www.hwinfo.com/ and monitor the cpu usage. If you start going above 90 percent, you will run into problems. I try to stay around no more than 70 percent usage for game + encoding.

Another option if you really want to maximize your ability to choke every last bit of quality out of your limited upload would be a dual pc setup with one pc playing, the other streaming. This seems like overkill based on your upload though.

Even if you could find a 2 mbps upload, I think you would get a much better looking stream. I can do BO2 @ 1500 constant bit rate with some custom presets and it looks totally watchable, not amazing, but good enough.

I think the main advantage of going to 480p vs 720p would be in motion. High motion scenes will look severely less pixel strained in 480p than 720p. Try some of the filter options on the down scaling to get clearer text. Another option would be a half resolution like 540p.
 

Geoning

Member
viewtopic.php?f=18&t=4617
You can stream 720p with bitrate 500kbps.
If you can stream 700-800, your stream will be really nice. :)

Code:
8x8dct=1 aq-mode=2 b-adapt=2 bframes=1 chroma-qp-offset=2 colormatrix=smpte170m deblock=0:0 direct=auto ipratio=1.41 keyint=240 level=3.1 me=umh merange=16 min-keyint=auto mixed-refs=1 no-mbtree=0 partitions=all profile=high psy-rd=0.5:0.0 qcomp=0.6 qpmax=51 qpmin=10 qpstep=4 ratetol=10 rc-lookahead=30 ref=1 scenecut=40 subme=7 threads=0 trellis=2 weightb=1 weightp=2
I guess it will nice commandline.
 

Gol D. Ace

Member
Geoning said:
https://obsproject.com/forum/viewtopic.php?f=18&t=4617
You can stream 720p with bitrate 500kbps.
If you can stream 700-800, your stream will be really nice. :)

Code:
8x8dct=1 aq-mode=2 b-adapt=2 bframes=1 chroma-qp-offset=2 colormatrix=smpte170m deblock=0:0 direct=auto ipratio=1.41 keyint=240 level=3.1 me=umh merange=16 min-keyint=auto mixed-refs=1 no-mbtree=0 partitions=all profile=high psy-rd=0.5:0.0 qcomp=0.6 qpmax=51 qpmin=10 qpstep=4 ratetol=10 rc-lookahead=30 ref=1 scenecut=40 subme=7 threads=0 trellis=2 weightb=1 weightp=2
I guess it will nice commandline.

AMD CPU's aren't the best for video encoding let alone live video.

Pretty much overkill. I tried this with an i5 760 at stock speed.

I only used a webcam so no pc load and fast movement.

3gsnI.png


Yeah overkill...
 
Top