Question / Help Stream setting help

Hi all, I just downloaded OBS and I've been trying to get my stream to run smoothly.

I've got 1mbps upload speed, AMD Phenon II and 8Gb ddr3 RAM and a Radeon 6900 graphic card.

I'm trying to stream League of Legends, but my dropped frames seems to set between 70-98% even when the quality balance is set to 1 and resolution downscale is 2.50 (768x432)

I'd love to hear any suggestion on how to get it to be more smooth, thanks in advance and thanks for making this awesome bit of software :)
 

FerretBomb

Active Member
1) Run a 6MB test at http://testmy.net/upload to determine how much actual throughput you have (some will need to be reserved for the game's communications too)

2) Post a logfile of a live streaming session. These are in %appdata%\OBS\logs and are time/datestamped.

Dropped frames = bitrate set too high or other network problems.
 
Thanks FerretBomb for pushing me in the right direction, I've done both of those results below.

The results of the upload test:
Code:
:::.. Upload Speed Test Result Details ..:::
Upload Connection Speed:: 1108 Kbps or 1.1 Mbps 
Upload Speed Test Size:: 6 MB or 6144 kB or 6291456 bytes
Upload Binary File Transfer Speed:: 139 kB/s
Tested At:: http://TestMy.net Version 13
Validation:: http://testmy.net/db/H2Xn4V3
More Stats:: http://testmy.net/compID/1954281919518 
Test Time:: 2013-07-05 10:23:25 Local Time 
Location:: Bromley, GB GB >> Destination:: Amsterdam, NL / Europe
1MB Upload in 7.37 Seconds - 1GB Upload in ~2 Hours - 20X faster than 56K
This test of exactly 6144 kB took 45.42 seconds to complete
Running at 70% of hosts average (Virgin Media http://testmy.net/hoststats/virgin_media) 
User Agent:: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.0 Safari/537.36 [!]

Just did a quick custom game to generate a log file, here it is.
Code:
10:02:17: Open Broadcaster Software v0.522b - 64bit ( ^ω^)
10:02:17: -------------------------------
10:02:17: CPU Name: AMD Phenom(tm) II X4 955 Processor
10:02:17: CPU Speed: 3210MHz
10:02:17: Physical Memory:  8190MB Total, 4274MB Free
10:02:17: stepping id: 3, model 4, family 15, type 0, extmodel 8, extfamily 0, HTT 1, logical cores 4, total cores 4
10:02:17: monitor 1: pos={0, 0}, size={1920, 1080}
10:02:17: monitor 2: pos={-1280, 56}, size={1280, 1024}
10:02:17: Windows Version: 6.1 Build 7601 S
10:02:17: Aero is Disabled
10:02:17: -------------------------------
10:02:17: OBS Modules:
10:02:17: Base Address     Module
10:02:17: 000000003F070000 OBS.exe
10:02:17: 00000000D33B0000 OBSApi.dll
10:02:17: 00000000E8140000 DShowPlugin.dll
10:02:17: 00000000E80A0000 GraphicsCapture.dll
10:02:17: 00000000E8080000 NoiseGate.dll
10:02:17: ------------------------------------------
10:02:17: Adapter 1
10:02:17:   Video Adapter: AMD Radeon HD 6900 Series
10:02:17:   Video Adapter Dedicated Video Memory: 2133544960
10:02:17:   Video Adapter Shared System Memory: 4025577472
10:02:17: Using automatic low latency mode
10:02:17: =====Stream Start: 2013-07-05, 10:02:17===============================================
10:02:17:   Multithreaded optimizations: On
10:02:17:   Base resolution: 1920x1080
10:02:17:   Output resolution: 768x432
10:02:17: ------------------------------------------
10:02:17: Loading up D3D10...
10:02:17: Playback device {0.0.0.00000000}.{edef40c5-2685-429b-8564-55977194e69f}
10:02:17: ------------------------------------------
10:02:17: Using desktop audio input: Speakers (High Definition Audio Device)
10:02:17: ------------------------------------------
10:02:17: Using auxilary audio input: Microphone (High Definition Audio Device)
10:02:17: ------------------------------------------
10:02:17: Audio Encoding: MP3
10:02:17:     bitrate: 128
10:02:17: Using graphics capture
10:02:17: x264: VBV maxrate specified, but no bufsize, ignored
10:02:17: ------------------------------------------
10:02:17: Video Encoding: x264
10:02:17:     fps: 25
10:02:17:     width: 768, height: 432
10:02:17:     preset: veryfast
10:02:17:     CBR: no
10:02:17:     CFR: no
10:02:17:     max bitrate: 100
10:02:17:     buffer size: 0
10:02:17:     quality: 2
10:02:17: ------------------------------------------
10:02:19: Using RTMP service: Twitch / Justin.tv
10:02:19:   Server selection: rtmp://live-lhr.justin.tv/app
10:02:20: SO_SNDBUF was at 8192
10:02:20: SO_SNDBUF is now 65536
10:02:53: SharedTexCapture hooked
10:04:36: GraphicsCaptureSource::NewCapture:  eliminating old capture
10:04:36: SharedTexCapture hooked
10:15:56: GraphicsCaptureSource::NewCapture:  eliminating old capture
10:15:56: SharedTexCapture hooked
10:19:41: Exit signal received, terminating capture
10:19:44: Total frames rendered: 26136, number of frames that lagged: 18 (0.07%) (it's okay for some frames to lag)
10:19:44: okay, this is strange
10:19:44: RTMPPublisher::SocketLoop: Aborting due to loop exit
10:19:44: Number of times waited to send: 20550, Waited for a total of 43137937 bytes
10:19:44: Number of b-frames dropped: 10985 (42%), Number of p-frames dropped: 13143 (51%), Total 24128 (93%)
10:19:44: =====Stream End: 2013-07-05, 10:19:44=================================================
10:22:05: 
10:22:05: Profiler results:
10:22:05: 
10:22:05: ==============================================================
10:22:05: frame - [100%] [avg time: 1.718 ms] [avg calls per frame: 1] [children: 56.1%] [unaccounted: 43.9%]
10:22:05: | scene->Preprocess - [0.116%] [avg time: 0.002 ms] [avg calls per frame: 1]
10:22:05: | video encoding and uploading - [56%] [avg time: 0.962 ms] [avg calls per frame: 1] [children: 49.8%] [unaccounted: 6.23%]
10:22:05: | | CopyResource - [0.815%] [avg time: 0.014 ms] [avg calls per frame: 0]
10:22:05: | | conversion to 4:2:0 - [0.582%] [avg time: 0.01 ms] [avg calls per frame: 0]
10:22:05: | | call to encoder - [47.4%] [avg time: 0.815 ms] [avg calls per frame: 0]
10:22:05: | | sending stuff out - [0.931%] [avg time: 0.016 ms] [avg calls per frame: 0]
10:22:05: ==============================================================
10:22:05:
 

Kharay

Member
FerretBomb said:
1) Run a 6MB test at http://testmy.net/upload to determine how much actual throughput you have (some will need to be reserved for the game's communications too)
I find it exceedingly ironic how there's a message on that website that says Flash tests are notoriously inaccurate when that test itself is ridiculously inaccurate. The results aren't even in the same order of magnitude of my actual real-world tested upload speeds. Like, not even close.

On-topic:

Encoding: VBR, quality-0, max bit-rate 1000. Video: downscale to 1.50 for now. 1Mbit up is a bit on the low side, mind you. But try it with quality-0. Just to see if we can get that frameloss down a bit. If you want to consider it, you could also consider grabbing the test build of OBS and enabling OpenCL. Just to help your CPU and rule out the possibility that is causing the frameloss.
 
Kharay said:
FerretBomb said:
1) Run a 6MB test at http://testmy.net/upload to determine how much actual throughput you have (some will need to be reserved for the game's communications too)
I find it exceedingly ironic how there's a message on that website that says Flash tests are notoriously inaccurate when that test itself is ridiculously inaccurate. The results aren't even in the same order of magnitude of my actual real-world tested upload speeds. Like, not even close.

On-topic:

Encoding: VBR, quality-0, max bit-rate 1000. Video: downscale to 1.50 for now. 1Mbit up is a bit on the low side, mind you. But try it with quality-0. Just to see if we can get that frameloss down a bit. If you want to consider it, you could also consider grabbing the test build of OBS and enabling OpenCL. Just to help your CPU and rule out the possibility that is causing the frameloss.


It is a little low, considering the DL is 20mbps it's not great.

I've tried those setting and that fixed the frame drop completely, I may also try a test build as well see if that improves performance at all but I will have to get back to you on that in a week as im going away.

Thanks so much for you advice.
 

FerretBomb

Active Member
Kharay said:
FerretBomb said:
1) Run a 6MB test at http://testmy.net/upload to determine how much actual throughput you have (some will need to be reserved for the game's communications too)
I find it exceedingly ironic how there's a message on that website that says Flash tests are notoriously inaccurate when that test itself is ridiculously inaccurate. The results aren't even in the same order of magnitude of my actual real-world tested upload speeds. Like, not even close.

There's a difference between constant throughput (livestreaming, game network communication) and dead-file transfers which can run for the majority of their duration WELL below the 'rated' speed, and spike far above, averaging the speed out over the course of the file.

For transferring files, a bursty transfer is fine. Speedtest.net, your ISP, and dead-file transfers will show your 'rated' speed. Testmy actually shows constant baseline throughput. Which is all that matters when you're streaming. I've found it to be quite accurate in determining the latter.

It's most likely that your ISP just relies heavily on bursting, rather than maintaining a constant quality of service.


iceheartedkiller said:
Kharay said:
Encoding: VBR, quality-0, max bit-rate 1000. Video: downscale to 1.50 for now. 1Mbit up is a bit on the low side, mind you. But try it with quality-0. Just to see if we can get that frameloss down a bit. If you want to consider it, you could also consider grabbing the test build of OBS and enabling OpenCL. Just to help your CPU and rule out the possibility that is causing the frameloss.


It is a little low, considering the DL is 20mbps it's not great.

I've tried those setting and that fixed the frame drop completely, I may also try a test build as well see if that improves performance at all but I will have to get back to you on that in a week as im going away.

Thanks so much for you advice.
It's most likely that the alteration of the bitrate to 1000 caused most of this, given that testmy showed you only have about 1100 total. I'd also warn about leaving a bit more if you play any online multiplayer games and to allow more margin for error/network congestion. I'd also disregard the bit about VBR 0; you can go to whatever level you like, it will simply alter the encoding aim.
Honestly, with only 1000 (I'd probably back to 900 or 800 myself to allow more margin) I'd more advise enabling CBR instead. 432p is fine as far as resolution goes, however; you really don't have the bitrate to go to a 1.5 (720p) downscale with decent quality.

Cheers!
 

Kharay

Member
FerretBomb said:
It's most likely that your ISP just relies heavily on bursting, rather than maintaining a constant quality of service.
I did say real-world, did I not? I can easily maintain a Torrent UPLOAD speed of 5Mbyte/sec or more. For hours on end. Yet, that site rated my connection at 300Kbyte/sec. It's a 150Mbit symmetrical fiber connection. 300Kbyte? No... :P
FerretBomb said:
It's most likely that the alteration of the bitrate to 1000 caused most of this
Actually, it most likely is the Q-0. There is a vast difference between Q-0 and all other qualities, as far as bandwidth goes. Tested and tried extensively here.
 

R1CH

Forum Admin
Developer
A torrent isn't a single connection (in fact it's not even TCP these days). Streaming relies on a single TCP connection. You will rarely reach your rated connection bandwidth over a single TCP connection due to many factors.
 

FerretBomb

Active Member
Also, a torrent is a dead file transfer. As noted, it can take advantage of throughput peaks. It's sent in sub-chunks instead of a contiguous single file. It sounds like your stable QoS is low, even if your overall throughput is high.
Did you try one of the larger test blocks? The 6MB test is sufficient for most streaming connections, but you might get a more granular sample with the larger set.

Also, it really doesn't matter if it's fiber, copper, microwave, satellite, or strings on tin cans. It can still have poor steady throughput 'compensated for' by significantly larger peak rates and return good results on dead files, while giving crap performance on constant throughput connections. I suppose using a significantly larger buffer could help with poor constant-throughput.

And yes, setting the quality to 'worst' will certainly assist with bandwidth a bit. I'd rather just use an appropriately-tuned bandwidth value and get a good-looking stream though, myself.
 

Kharay

Member
Q-0 doesn't look all that awful.

Edit: Q-0, 1000 Kbps vs Q-7, 3000 Kbps. Yes, obviously the Q-7 looks far, far better but can you honestly say the Q-0 is completely unwatchable? No, it is actually quite watchable. Remember, we have to make do with what is available to us and Q-0 1000 Kbps is available to the OP and is watchable at least.

And yes, I did try one of the larger tests and it came back just as weird. Anyhow, we can test the single TCP connection upload for me. Anyone have an FTP server I could upload something big to?

I know this ISP, I know my connection and I know its stability and performance. I trust those far more than I trust some random bizarre result from some random test site, sorry. I have been using this ISP for years now and whereas their customer service may fall short at times, the quality of their service rarely does. I know what this connection can do and I am going to assume that testmy.net simply is producing weird results. For example, it could be a browser related issue. Has anyone considered that option yet?

... *comes back after a minute of trying something*

Ah, figured out the issue. Switched to a local server on testmy.net and it came back with a mostly acceptable result now. 80.1Mbps. Apparently the route from the default server (Texas) to NL is a long one. ;)
 

FerretBomb

Active Member
And again. An FTP transfer is a dead-file upload.
Yes, going across transoceanic lines (or an upstream satellite link) could indeed induce some severe packet loss and burst rate. You'd normally want to test to a server close to the one you stream to, to get an accurate rating.

The Q7 in that case would look 'far better' more due to having three times the bitrate available (and really would be able to run a 1080p@30 at Q10 without issue, or 720p@60). The quality rating is an encoding target balancing heavily on the side of fast-motion rather than still image fidelity. Again, in this case (given a bitrate generally restricted to 480p@30 and below) enabling CBR would be the better option, and help to reduce encoding peaks that would likely cause frame drops and in-game lag for multiplayer.
 

Kharay

Member
FerretBomb said:
And again. An FTP transfer is a dead-file upload.
Yes, going across transoceanic lines (or an upstream satellite link) could indeed induce some severe packet loss and burst rate. You'd normally want to test to a server close to the one you stream to, to get an accurate rating.
For the record, I would like to note that my first suggestion about a possible browser issue is in fact partially accurate. While using Google Chrome, Testmy.net will rate my upload at 80 - 85 Mbps. While using Mozilla Firefox, Testmy.net will rate it at 109 - 115 Mbps. Consistently. Oddly enough some 30 - 35 Mbps higher than my download. Obviously this is not the reality of the matter. The reality is that Testmy.net cannot factor in my own hardware, installed software and how those might affect the results.

Which is basically my point and has been from the start -- All such tests are artificial and unreliable to a certain extent. Too many variables determine the actual real world performance of an Internet connection.
 
Top