Question / Help Optimized stream for my config

thejack

New Member
Hi mate, i have some problem when i stream, usually league of legends, video looks a bit pixled when move a lot or have teamfight scene.
how could i set up for have better stream and something like 80ping(i have ~100 statics and 150-200 in fight now).

my setup:
i7-3820 3.6-3.8ghz (can handle slower preset compression)
ati 5870
16gb ddr3 1600mhz kingstone ram
1920x1080

1Mb upload, reach 1.1Mb peaks.


usally stream with:
1280x720
quality: 7
maxbitrate: 770
buffer: 550
fps: 25
preset: slower
encoding profile: high
priority class: above normal
Use CFR: on

what could i do for a decent stream?
 

FerretBomb

Active Member
Unfortunately you will not be able to stream at 720p@25 with that upstream connection, with any kind of reasonable quality.
Consider downscaling to a 480 or 360p stream (depending on network overhead used by the game); I'd say that 1500kbps would be the sweet spot for a 720p@30 stream... 1.5Mb/s devoted *only* for the video upstream, with more on top for the game. You have about half that available overall. It's going to pixellate like mad with that little bandwidth available.

Run a 6MB test at http://www.testmy.net/upload as speedtest is worthless for livestreaming. I doubt there will be a huge difference, given the low upstream you have now, but it's best to make certain.

If you are streaming to Twitch, enable CBR and set your keyframe interval to 2 first-off. You'll want to downscale to 480p, and likely use a bitrate and buffer of about 700kbps. If you are using AAC audio, make sure it is set no higher than 96kbps (as that's on top of the video bitrate).


Short version... you need to either upgrade your network connection package to something with (significantly) more upstream available, or switch ISPs outright.
 

thejack

New Member
i found some setting to have a decent quality and low ping, just a question:
does Scene Buffering time change something in bandwidth usage?
 

Boildown

Active Member
Each time you tweak your settings, post a new log file or we won't be able to say a whole lot. Make sure you stream more than 2 minutes each time, so we have a statistically significant sample to look at.

does Scene Buffering time change something in bandwidth usage?

Not sure, wouldn't mind finding out what that means as well.
 

thejack

New Member
this is the log:

Code:
14:03:22: =====Stream Start: 2013-10-17, 14:03:22===============================================
14:03:22:   Multithreaded optimizations: On
14:03:22:   Base resolution: 1920x1080
14:03:22:   Output resolution: 1280x720
14:03:22: ------------------------------------------
14:03:22: Loading up D3D10 on AMD Radeon HD 5800 Series...
14:03:22: ------------------------------------------
14:03:22: Audio Format: 44100hz
14:03:22: Playback device {0.0.0.00000000}.{4fcf56a1-5aa4-49e4-882e-b0a5fd0fd82a}
14:03:22: ------------------------------------------
14:03:22: Using desktop audio input: Speakers (Realtek High Definition Audio)
14:03:22: ------------------------------------------
14:03:22: Using auxilary audio input: Microphone (Realtek High Definition Audio)
14:03:22: ------------------------------------------
14:03:22: Audio Encoding: AAC
14:03:22:     bitrate: 48
14:03:22: ------------------------------------------
14:03:22:     device: USB Video Device,
14:03:22:     device id \\?\usb#vid_046d&pid_0819&mi_00#7&35e7581b&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
14:03:22:     chosen type: YUY2, usingFourCC: false, res: 640x480 - 640x480, frameIntervals: 333333-2000000, fourCC: 'YUY2'
14:03:22:     audio device: Disabilita,
14:03:22:     audio device id Disabled,
14:03:22: 
14:03:22: Using directshow input
14:03:22: Using graphics capture
14:03:22: Using bitmap image
14:03:22: Using bitmap image
14:03:22: Using custom x264 settings: "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=10 threads=0 trellis=2 weightb=1 weightp=2"
14:03:22: The custom x264 command 'min-keyint=auto' failed
14:03:22: ------------------------------------------
14:03:22: Video Encoding: x264
14:03:22:     fps: 24
14:03:22:     width: 1280, height: 720
14:03:22:     preset: slower
14:03:22:     profile: high
14:03:22:     keyint: 240
14:03:22:     CBR: no
14:03:22:     CFR: no
14:03:22:     max bitrate: 500
14:03:22:     buffer size: 350
14:03:22:     quality: 6
14:03:22: ------------------------------------------
14:03:22: MMDeviceAudioSource: Frequency for device 'Speakers (Realtek High Definition Audio)' is 384000, samples per sec is 48000
14:03:22: MMDeviceAudioSource: Frequency for device 'Microphone (Realtek High Definition Audio)' is 384000, samples per sec is 48000
14:03:22: SharedTexCapture hooked
14:03:26: Using RTMP service: Twitch / Justin.tv
14:03:26:   Server selection: rtmp://live-fra.justin.tv/app
14:03:26:   Interface: Intel(R) 82579LM Gigabit Network Connection (ethernet, 100 mbps)
14:03:26: Completed handshake with rtmp://live-fra.justin.tv/app in 438 ms.
14:03:27: SO_SNDBUF was at 8192
14:03:27: SO_SNDBUF is now 65536
14:08:26: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
14:08:26:   New Scene
14:08:26: ------------------------------------------
14:08:26:     device: USB Video Device,
14:08:26:     device id \\?\usb#vid_046d&pid_0819&mi_00#7&35e7581b&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
14:08:26:     chosen type: YUY2, usingFourCC: false, res: 640x480 - 640x480, frameIntervals: 333333-2000000, fourCC: 'YUY2'
14:08:26:     audio device: Disabilita,
14:08:26:     audio device id Disabled,
14:08:26: 
14:08:26: Using directshow input
14:08:26: Using bitmap image
14:08:26: Using graphics capture
14:08:26: SharedTexCapture hooked
14:08:28: GraphicsCaptureSource::NewCapture:  eliminating old capture
14:08:28: SharedTexCapture hooked
14:08:40: GraphicsCaptureSource::NewCapture:  eliminating old capture
14:08:40: SharedTexCapture hooked
14:08:48: GraphicsCaptureSource::NewCapture:  eliminating old capture
14:08:48: SharedTexCapture hooked
14:11:40: GraphicsCaptureSource::NewCapture:  eliminating old capture
14:11:40: SharedTexCapture hooked
14:19:30: GraphicsCaptureSource::NewCapture:  eliminating old capture
14:19:30: SharedTexCapture hooked
14:25:11: GraphicsCaptureSource::NewCapture:  eliminating old capture
14:25:11: SharedTexCapture hooked
14:31:22: GraphicsCaptureSource::NewCapture:  eliminating old capture
14:31:22: SharedTexCapture hooked
14:31:29: GraphicsCaptureSource::NewCapture:  eliminating old capture
14:31:29: SharedTexCapture hooked
14:33:03: Exit signal received, terminating capture
14:33:07: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
14:33:07:   New Scene
14:33:07: ------------------------------------------
14:33:07:     device: USB Video Device,
14:33:07:     device id \\?\usb#vid_046d&pid_0819&mi_00#7&35e7581b&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
14:33:07:     chosen type: YUY2, usingFourCC: false, res: 640x480 - 640x480, frameIntervals: 333333-2000000, fourCC: 'YUY2'
14:33:07:     audio device: Disabilita,
14:33:07:     audio device id Disabled,
14:33:07: 
14:33:07: Using directshow input
14:33:07: Using graphics capture
14:33:07: Using bitmap image
14:33:07: Using bitmap image
14:33:07: SharedTexCapture hooked
14:37:41: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
14:37:41:   New Scene
14:37:41: Using text output
14:37:56: Using text output
14:39:40: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
14:39:40:   New Scene
14:39:40: ------------------------------------------
14:39:40:     device: USB Video Device,
14:39:40:     device id \\?\usb#vid_046d&pid_0819&mi_00#7&35e7581b&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
14:39:40:     chosen type: YUY2, usingFourCC: false, res: 640x480 - 640x480, frameIntervals: 333333-2000000, fourCC: 'YUY2'
14:39:40:     audio device: Disabilita,
14:39:40:     audio device id Disabled,
14:39:40: 
14:39:40: Using directshow input
14:39:40: Using graphics capture
14:39:40: Using bitmap image
14:39:40: Using bitmap image
14:39:40: SharedTexCapture hooked
14:39:42: x264: VBV underflow (frame 52260, -948 bits)
14:42:30: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
14:42:30:   New Scene
14:42:30: ------------------------------------------
14:42:30:     device: USB Video Device,
14:42:30:     device id \\?\usb#vid_046d&pid_0819&mi_00#7&35e7581b&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
14:42:30:     chosen type: YUY2, usingFourCC: false, res: 640x480 - 640x480, frameIntervals: 333333-2000000, fourCC: 'YUY2'
14:42:30:     audio device: Disabilita,
14:42:30:     audio device id Disabled,
14:42:30: 
14:42:31: Using directshow input
14:42:31: Using bitmap image
14:42:31: Using graphics capture
14:42:31: SharedTexCapture hooked
14:42:33: GraphicsCaptureSource::NewCapture:  eliminating old capture
14:42:33: SharedTexCapture hooked
14:43:20: GraphicsCaptureSource::NewCapture:  eliminating old capture
14:43:20: SharedTexCapture hooked
14:43:31: GraphicsCaptureSource::NewCapture:  eliminating old capture
14:43:31: SharedTexCapture hooked
14:44:13: GraphicsCaptureSource::NewCapture:  eliminating old capture
14:44:13: SharedTexCapture hooked
14:58:14: GraphicsCaptureSource::NewCapture:  eliminating old capture
14:58:14: SharedTexCapture hooked
15:01:24: GraphicsCaptureSource::NewCapture:  eliminating old capture
15:01:24: SharedTexCapture hooked
15:02:30: GraphicsCaptureSource::NewCapture:  eliminating old capture
15:02:30: SharedTexCapture hooked
15:02:36: GraphicsCaptureSource::NewCapture:  eliminating old capture
15:02:36: SharedTexCapture hooked
15:08:03: GraphicsCaptureSource::NewCapture:  eliminating old capture
15:08:03: SharedTexCapture hooked
15:08:17: Exit signal received, terminating capture
15:08:30: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
15:08:30:   New Scene
15:08:30: ------------------------------------------
15:08:30:     device: USB Video Device,
15:08:30:     device id \\?\usb#vid_046d&pid_0819&mi_00#7&35e7581b&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
15:08:30:     chosen type: YUY2, usingFourCC: false, res: 640x480 - 640x480, frameIntervals: 333333-2000000, fourCC: 'YUY2'
15:08:30:     audio device: Disabilita,
15:08:30:     audio device id Disabled,
15:08:30: 
15:08:31: Using directshow input
15:08:31: Using graphics capture
15:08:31: Using bitmap image
15:08:31: Using bitmap image
15:08:31: SharedTexCapture hooked
15:19:11: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
15:19:11:   New Scene
15:19:11: ------------------------------------------
15:19:11:     device: USB Video Device,
15:19:11:     device id \\?\usb#vid_046d&pid_0819&mi_00#7&35e7581b&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
15:19:11:     chosen type: YUY2, usingFourCC: false, res: 640x480 - 640x480, frameIntervals: 333333-2000000, fourCC: 'YUY2'
15:19:11:     audio device: Disabilita,
15:19:11:     audio device id Disabled,
15:19:11: 
15:19:11: Using directshow input
15:19:11: Using bitmap image
15:19:11: Using graphics capture
15:19:12: SharedTexCapture hooked
15:19:13: GraphicsCaptureSource::NewCapture:  eliminating old capture
15:19:13: SharedTexCapture hooked
15:40:18: GraphicsCaptureSource::NewCapture:  eliminating old capture
15:40:18: SharedTexCapture hooked
15:43:09: GraphicsCaptureSource::NewCapture:  eliminating old capture
15:43:09: SharedTexCapture hooked
15:48:30: GraphicsCaptureSource::NewCapture:  eliminating old capture
15:48:30: SharedTexCapture hooked
15:49:49: GraphicsCaptureSource::NewCapture:  eliminating old capture
15:49:49: SharedTexCapture hooked
15:55:37: GraphicsCaptureSource::NewCapture:  eliminating old capture
15:55:37: SharedTexCapture hooked
15:56:07: Exit signal received, terminating capture
15:56:42: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
15:56:42:   New Scene
15:56:42: ------------------------------------------
15:56:42:     device: USB Video Device,
15:56:42:     device id \\?\usb#vid_046d&pid_0819&mi_00#7&35e7581b&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
15:56:42:     chosen type: YUY2, usingFourCC: false, res: 640x480 - 640x480, frameIntervals: 333333-2000000, fourCC: 'YUY2'
15:56:42:     audio device: Disabilita,
15:56:42:     audio device id Disabled,
15:56:42: 
15:56:42: Using directshow input
15:56:42: Using graphics capture
15:56:42: Using bitmap image
15:56:42: Using bitmap image
15:56:42: SharedTexCapture hooked
15:56:48: Total frames encoded: 163309, total frames duplicated: 461 (0.28%)
15:56:48: Total frames rendered: 163057, number of late frames: 63 (0.04%) (it's okay for some frames to be late)
15:56:48: RTMPPublisher::SocketLoop: Graceful loop exit
15:56:48: Average send payload: 1147 bytes, average send interval: 18 ms
15:56:48: Number of times waited to send: 0, Waited for a total of 0 bytes
15:56:48: Number of b-frames dropped: 0 (0%), Number of p-frames dropped: 0 (0%), Total 0 (0%)
15:56:48: Number of bytes sent: 414299640
15:56:48: 
15:56:48: Profiler time results:
15:56:48: 
15:56:48: ==============================================================
15:56:48: video thread frame - [100%] [avg time: 0.921 ms] [children: 40.7%] [unaccounted: 59.3%]
15:56:48: | scene->Preprocess - [40.7%] [avg time: 0.375 ms]
15:56:48: GPU download and conversion - [100%] [avg time: 0.206 ms] [children: 80.6%] [unaccounted: 19.4%]
15:56:48: | flush - [76.2%] [avg time: 0.157 ms]
15:56:48: | CopyResource - [2.91%] [avg time: 0.006 ms]
15:56:48: | conversion to 4:2:0 - [1.46%] [avg time: 0.003 ms]
15:56:48: Convert444Threads - [100%] [avg time: 0.339 ms] [children: 99.1%] [unaccounted: 0.885%]
15:56:48: | Convert444toNV12 - [99.1%] [avg time: 0.336 ms]
15:56:48: encoder thread frame - [100%] [avg time: 1.125 ms]
15:56:48: ==============================================================
15:56:48: 
15:56:48: 
15:56:48: Profiler CPU results:
15:56:48: 
15:56:48: ==============================================================
15:56:48: video thread frame - [cpu time: avg 0.089 ms, total 14554.9 ms] [avg calls per frame: 1]
15:56:48: | scene->Preprocess - [cpu time: avg 0.017 ms, total 2870.42 ms] [avg calls per frame: 1]
15:56:48: GPU download and conversion - [cpu time: avg 0.031 ms, total 5148.03 ms] [avg calls per frame: 1]
15:56:48: | flush - [cpu time: avg 0.023 ms, total 3853.23 ms] [avg calls per frame: 1]
15:56:48: | CopyResource - [cpu time: avg 0.003 ms, total 546.003 ms] [avg calls per frame: 1]
15:56:48: | conversion to 4:2:0 - [cpu time: avg 0 ms, total 156.002 ms] [avg calls per frame: 1]
15:56:48: Convert444Threads - [cpu time: avg 0.483 ms, total 157577 ms] [avg calls per frame: 2]
15:56:48: | Convert444toNV12 - [cpu time: avg 0.48 ms, total 156812 ms] [avg calls per frame: 2]
15:56:48: encoder thread frame - [cpu time: avg 0.928 ms, total 151680 ms] [avg calls per frame: 1]
15:56:48: ==============================================================
15:56:48: 
15:56:48: =====Stream End: 2013-10-17, 15:56:48=================================================
 

Boildown

Active Member
14:03:22: Audio Encoding: AAC
14:03:22: bitrate: 48

14:03:22: Using custom x264 settings: "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=10 threads=0 trellis=2 weightb=1 weightp=2"
14:03:22: The custom x264 command 'min-keyint=auto' failed

14:03:22: Video Encoding: x264
14:03:22: fps: 24
14:03:22: width: 1280, height: 720
14:03:22: preset: slower
14:03:22: profile: high
14:03:22: keyint: 240
14:03:22: CBR: no
14:03:22: CFR: no
14:03:22: max bitrate: 500
14:03:22: buffer size: 350
14:03:22: quality: 6

14:03:22: MMDeviceAudioSource: Frequency for device 'Speakers (Realtek High Definition Audio)' is 384000, samples per sec is 48000
14:03:22: MMDeviceAudioSource: Frequency for device 'Microphone (Realtek High Definition Audio)' is 384000, samples per sec is 48000

14:03:26: Using RTMP service: Twitch / Justin.tv
14:03:26: Server selection: rtmp://live-fra.justin.tv/app

1) I know you're bandwidth starved, but 48kb is a really low bitrate for audio. I would increase it a little for better quality if it doesn't sound ok.

2) Get rid of ALL of those custom x264 settings. Set your preset to Very Fast and get rid of all of that crap. I can't tell what's going on with your stream while those custom settings are there, because in no way am I going to take the time to decipher them.

3) Set your key interval to 2 seconds. Right now its at 10 seconds, because of a custom setting. Clear all custom settings and set it in OBS to 2. Turn on Constant Bit Rate and Constant Frame Rate. These are requirements for streaming to Twitch.

4) Try to set your audio devices to work at 44100Hz instead of 48000Hz, so OBS has to do less work. This is a setting in your audio devices, not OBS.

5) You haven't heeded our advice to lower your stream resolution. Increase the downscale, because you're not going to get a good stream with your low upload at 720p. Make your stream resolution something along the lines of 480p.

6) Once you've done all this, stream for at least two minutes and post a new log file from that stream.
 

thejack

New Member
Boildown said:
1) I know you're bandwidth starved, but 48kb is a really low bitrate for audio. I would increase it a little for better quality if it doesn't sound ok.

2) Get rid of ALL of those custom x264 settings. Set your preset to Very Fast and get rid of all of that crap. I can't tell what's going on with your stream while those custom settings are there, because in no way am I going to take the time to decipher them.

3) Set your key interval to 2 seconds. Right now its at 10 seconds, because of a custom setting. Clear all custom settings and set it in OBS to 2. Turn on Constant Bit Rate and Constant Frame Rate. These are requirements for streaming to Twitch.

4) Try to set your audio devices to work at 44100Hz instead of 48000Hz, so OBS has to do less work. This is a setting in your audio devices, not OBS.

5) You haven't heeded our advice to lower your stream resolution. Increase the downscale, because you're not going to get a good stream with your low upload at 720p. Make your stream resolution something along the lines of 480p.

6) Once you've done all this, stream for at least two minutes and post a new log file from that stream.

1) i tryed audio with this bitrate and its ok also with music!

2) tried with veryfast and use lot of bandwidth, i tried all preset and i can handle slow set, then less lag and better quality

3) i know twitch ask for key interval of 2 but is very much weight on the bandwidth, with 10key interval twitch refer me as acceptable, i know it cannot be see by mobile but until i have better connection i prefer it whatchable at better quality on desktop.
CFR - i will active it, but what is it?
CBR - twitch dont give me the advise to change to CBR with this setting also if im on VBR, and with this i can use less bandwidth

4) just did.

5) tried at low resolution and better quality and it give me less quality and more lag :S better find is 720p with this setting i have 50ping static!


tnx for all i think untill i will not have a better connection this is the better things i can do to offer a good quality with low ping!
 
Top