Question / Help Need advice for <1mb upload streaming

ShadowU

New Member
Hey,

As the title suggests, I would very much like some help trying to optimize my stream so that my viewers' eyes don't bleed every time the camera moves fast and the stream goes pixelated. My actual upload speed is 750 kbps so I would really like some advice on what I could cut down on or even entirely sacrifice so that I could stream reliably at a respectable 600-630 kbps, which my internet can handle for the biggest part.

I've tried a wide variety of options and while some of them have been somewhat satisfactory I'd like to make the best of my limited resources. Here are two test VoDs, at 1270x800 and 1096x684 respectively:

1280x800
http://www.twitch.tv/shadowtasos/b/398375434

Log:
Code:
------------------------------------------
Open Broadcaster Software v0.51b - 64bit ( ^ω^)
-------------------------------
CPU Name: Intel(R) Core(TM) i7 CPU         920  @ 2.67GHz
CPU Speed: 3440MHz
Physical Memory:  6134MB Total, 2658MB Free
stepping id: 4, model 10, family 6, type 0, extmodel 0, extfamily 0, HTT 1, logical cores 8, total cores 4
monitor 1: pos={0, 0}, size={1920, 1200}
monitor 2: pos={1920, 0}, size={1680, 1050}
Windows Version: 6.1 Build 7601 S
Aero is Enabled
------------------------------------------
Adapter 1
  Video Adapter: AMD Radeon HD 7900 Series
  Video Adapter Dedicated Video Memory: 3203592192
  Video Adapter Shared System Memory: 2947608576
Using fixed low latency mode, factor 20
=====Stream Start: 2013-05-02, 07:27:20===============================================
  Multithreaded optimizations: On
  Base resolution: 1920x1200
  Output resolution: 1280x800
------------------------------------------
Loading up D3D10...
Playback device {0.0.0.00000000}.{ba2cc817-38b0-4dd2-965c-56b9672b59cc}
------------------------------------------
Using desktop audio input: Speakers (3- Logitech G35 Headset)
Using 7.1 surround speaker setup (experimental)
------------------------------------------
Using auxilary audio input: Microphone (3- Logitech G35 Headset)
------------------------------------------
Audio Encoding: AAC
    bitrate: 48
Using bitmap image
------------------------------------------
    device: Microsoft LifeCam VX-1000,
    device id \\?\usb#vid_045e&pid_00f7&mi_00#6&2f87e621&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
    chosen type: RGB24, usingFourCC: false, res: 640x480 - 640x480, frameIntervals: 333333-666666, fourCC: 00000000
    audio device: Disable,
    audio device id Disabled,

Using directshow input
Using graphics capture
------------------------------------------
Video Encoding: x264
    fps: 25
    width: 1280, height: 800
    preset: veryfast
    CBR: no
    CFR: no
    max bitrate: 600
    buffer size: 600
    quality: 6
------------------------------------------
SharedTexCapture hooked
Using RTMP service: Twitch / Justin.tv
  Server selection: rtmp://live-ams.justin.tv/app
SO_SNDBUF was at 8192
SO_SNDBUF is now 65536
Total frames rendered: 2153, number of frames that lagged: 0 (0.00%) (it's okay for some frames to lag)
RTMPPublisher::SocketLoop: Aborting due to bStopping
Number of times waited to send: 0, Waited for a total of 0 bytes
Number of b-frames dropped: 0 (0%), Number of p-frames dropped: 0 (0%), Total 0 (0%)
=====Stream End: 2013-05-02, 07:28:49=================================================

Profiler results:

==============================================================
frame - [100%] [avg time: 1.55 ms] [avg calls per frame: 1] [children: 81.9%] [unaccounted: 18.1%]
| scene->Preprocess - [0.0645%] [avg time: 0.001 ms] [avg calls per frame: 1]
| video encoding and uploading - [81.8%] [avg time: 1.268 ms] [avg calls per frame: 1] [children: 73.9%] [unaccounted: 7.87%]
| | CopyResource - [0.387%] [avg time: 0.006 ms] [avg calls per frame: 0]
| | conversion to 4:2:0 - [0.129%] [avg time: 0.002 ms] [avg calls per frame: 0]
| | call to encoder - [70.9%] [avg time: 1.099 ms] [avg calls per frame: 0]
| | sending stuff out - [2.52%] [avg time: 0.039 ms] [avg calls per frame: 0]
==============================================================

1096x684
http://www.twitch.tv/shadowtasos/b/398377661

Log:
Code:
------------------------------------------
Open Broadcaster Software v0.51b - 64bit ( ^ω^)
-------------------------------
CPU Name: Intel(R) Core(TM) i7 CPU         920  @ 2.67GHz
CPU Speed: 3440MHz
Physical Memory:  6134MB Total, 2548MB Free
stepping id: 4, model 10, family 6, type 0, extmodel 0, extfamily 0, HTT 1, logical cores 8, total cores 4
monitor 1: pos={0, 0}, size={1920, 1200}
monitor 2: pos={1920, 0}, size={1680, 1050}
Windows Version: 6.1 Build 7601 S
Aero is Enabled
------------------------------------------
Adapter 1
  Video Adapter: AMD Radeon HD 7900 Series
  Video Adapter Dedicated Video Memory: 3203592192
  Video Adapter Shared System Memory: 2947608576
Using fixed low latency mode, factor 20
=====Stream Start: 2013-05-02, 07:35:22===============================================
  Multithreaded optimizations: On
  Base resolution: 1920x1200
  Output resolution: 1096x684
------------------------------------------
Loading up D3D10...
Playback device {0.0.0.00000000}.{ba2cc817-38b0-4dd2-965c-56b9672b59cc}
------------------------------------------
Using desktop audio input: Speakers (3- Logitech G35 Headset)
Using 7.1 surround speaker setup (experimental)
------------------------------------------
Using auxilary audio input: Microphone (3- Logitech G35 Headset)
------------------------------------------
Audio Encoding: AAC
    bitrate: 48
Using bitmap image
------------------------------------------
    device: Microsoft LifeCam VX-1000,
    device id \\?\usb#vid_045e&pid_00f7&mi_00#6&2f87e621&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
    chosen type: RGB24, usingFourCC: false, res: 640x480 - 640x480, frameIntervals: 333333-666666, fourCC: 00000000
    audio device: Disable,
    audio device id Disabled,

Using directshow input
Using graphics capture
------------------------------------------
Video Encoding: x264
    fps: 25
    width: 1096, height: 684
    preset: veryfast
    CBR: no
    CFR: no
    max bitrate: 600
    buffer size: 600
    quality: 6
------------------------------------------
SharedTexCapture hooked
Using RTMP service: Twitch / Justin.tv
  Server selection: rtmp://live-ams.justin.tv/app
SO_SNDBUF was at 8192
SO_SNDBUF is now 65536
Total frames rendered: 2364, number of frames that lagged: 0 (0.00%) (it's okay for some frames to lag)
RTMPPublisher::SocketLoop: Aborting due to bStopping
Number of times waited to send: 0, Waited for a total of 0 bytes
Number of b-frames dropped: 0 (0%), Number of p-frames dropped: 0 (0%), Total 0 (0%)
=====Stream End: 2013-05-02, 07:36:59=================================================
------------------------------------------

Profiler results:

==============================================================
frame - [100%] [avg time: 1.235 ms] [avg calls per frame: 1] [children: 77.2%] [unaccounted: 22.8%]
| scene->Preprocess - [0%] [avg time: 0 ms] [avg calls per frame: 1]
| video encoding and uploading - [77.2%] [avg time: 0.953 ms] [avg calls per frame: 1] [children: 71.7%] [unaccounted: 5.51%]
| | CopyResource - [0.486%] [avg time: 0.006 ms] [avg calls per frame: 0]
| | conversion to 4:2:0 - [0.081%] [avg time: 0.001 ms] [avg calls per frame: 0]
| | call to encoder - [68.1%] [avg time: 0.841 ms] [avg calls per frame: 0]
| | sending stuff out - [3%] [avg time: 0.037 ms] [avg calls per frame: 0]
==============================================================

I think the 1280x800 is a bit more watchable overall but in high motion scenes it becomes a bit too blocky. 1096x684 is a bit more consistent, but people really do have to strain their eyes to make out what's happening sometimes.

Some things I've noticed is that regardless of what I set my audio bitrate to, it doesn't seem to stay there. In both of these test streams my video bitrate is 600 and audio bitrate is 48, yet sometimes my overall bitrate would spike to ~750, which is when my connection starts to act up. This seems to become a bit worse when there's multiple sources of audio at once - i.e. game sound + music + Skype conversation - is there any way around this? Also, is there any way to force audio to be mono? The only option I found was limited to microphone only.

I've been told to play around with the CPU preset option but I didn't want to experiment until somebody here could give me a better opinion.

Any tips on what I could reduce/change so that my streaming experience is a bit better would be very welcome. I know that my upload speed is really poor and as such I can't expect to have a perfect HD stream, but I'd really like to make it look as good as I can with what I have.

My specs are:

i7 920 OC @ 3.6GHz
AMD HD7970 OC
6GB RAM
2x monitors

Thanks in advance.
 

ShadowU

New Member
Hey, thanks a lot for the response. That's the settings I used before but it still didn't look all that good for me, do you have any VoDs I could see maybe?
 

ShadowU

New Member
Alright, thanks a lot. It looks decent, I'll give those settings a try at some point. :)

Any other advice is welcome!
 
Top