Question / Help Should I be getting better performance from my two pc setup?

Ickz

New Member
Hi, I just finished building a second computer for streaming - i7 3770k @ 4.2ghz, 8gb ram, corsair force gt ssd, avermedia extremecap u3 usb capture card. I'm using all the recommended settings for twitch, but I can only use the medium encoding preset. Slow or slower just lags/freezes the stream. This is streaming at 1080p @ 30fps. Is this what I should expect? I figured I would be able to use the slowest preset for the best quality on a dedicated stream pc. Is there a difference between the pci live gamer hd card and my usb extreme cap u3 that just came out a lil while ago? Would a pci card have better results or anything?
 

Floatingthru

Community Helper
Re: Should I be getting better performance from my two pc se

Anything past Medium gets really really CPU intensive unless you get 6/8 core CPU's or dual Xeons. 1080p30/720p60 on Medium sounds about right for your setup. I always would go for non USB devices as they are much less troublesome in general compared to USB ones. The new U3 seems great, though as it can capture 1080p60 and it is USB 3.0 so I want to say its pretty good.
 

Ickz

New Member
Re: Should I be getting better performance from my two pc se

I just read that the Extremecap U3 doesn't have an encoding chip and uses your CPU's power. I'm assuming that would make a pretty big difference in performance, no? If so, I'll probably return it and get the Liver Gamer HD which does have an onboard encoding chip.
 

alpinlol

Active Member
Re: Should I be getting better performance from my two pc se

whats the reason for buying a streaming machine when you are planning on using the hardware encoder on the capture card?
 

Boildown

Active Member
Re: Should I be getting better performance from my two pc se

Ickz said:
I just read that the Extremecap U3 doesn't have an encoding chip and uses your CPU's power. I'm assuming that would make a pretty big difference in performance, no? If so, I'll probably return it and get the Liver Gamer HD which does have an onboard encoding chip.

This is the complete opposite of what you should do.

The encoding chip on the Live Gamer HD: 1) Sucks at its job. 2) Isn't supported by OBS because the API isn't available for OBS to use (or something like that).

The x264 software encoder is the best in the world in quality per bitrate, but it does use a lot of CPU. Medium preset is where you should expect to be at 1080p30, and since you're using a 2nd PC, it doesn't really matter if you max out your CPU anyways.
 

Ickz

New Member
Re: Should I be getting better performance from my two pc se

Ok, I understand that. Does having a better gpu on the stream pc help at all? I have a gtx 460 in it now. I get some stuttering using the medium preset and am wondering what I can do to squeeze out just a lil bit more performance. I feel like other people's streams that use a similar setup just look way better than mine and I don't get it. Here's some quick examples of my stream quality:

medium preset - some stuttering: http://www.twitch.tv/ickztv/b/509794716
fast preset - smooth, but lower quality: http://www.twitch.tv/ickztv/b/509804432

Here is an example of someone else's stream that also uses a two pc setup as well as a 3770k in the stream pc: http://www.twitch.tv/lirik/b/509867238

His stream quality just looks so much better imo. I'm really bummed out right now because I feel like I wasted a good amount of money building this second pc for very little gain.
 

Floatingthru

Community Helper
Re: Should I be getting better performance from my two pc se

Feel free to copy Lirik's stream settings if you wish. Hes only using faster you know ;p 720p48; 3500 bitrate, 4000 buffer, 160kbps aac.

Code:
Video
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L3.2
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 4 frames
Format settings, GOP                     : M=4, N=48
Codec ID                                 : 7
Duration                                 : 30mn 0s
Bit rate mode                            : Constant
Bit rate                                 : 3 500 Kbps / 3 500 Kbps
Width                                    : 1 280 pixels
Height                                   : 720 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 48.000 fps
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.079
Stream size                              : 753 MiB (95%)
Writing library                          : x264 core 136 r2350 dba1934
Encoding settings                        : cabac=1 / ref=2 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=4 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=12 / lookahead_threads=3 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=1 / keyint=48 / keyint_min=4 / scenecut=40 / intra_refresh=0 / rc_lookahead=20 / rc=cbr / mbtree=1 / bitrate=3500 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=3500 / vbv_bufsize=4000 / nal_hrd=cbr / ip_ratio=1.40 / aq=1:1.00

Audio
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : LC
Codec ID                                 : 10
Duration                                 : 30mn 0s
Bit rate                                 : 157 Kbps
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 44.1 KHz
Compression mode                         : Lossy
Stream size                              : 35.3 MiB (4%)
 

Ickz

New Member
Re: Should I be getting better performance from my two pc se

Huh, interesting, thanks. How do you go about obtaining a stream's settings like that?
 

Floatingthru

Community Helper
Re: Should I be getting better performance from my two pc se

Download the first chunk of the vod and use media info.
 

Boildown

Active Member
Re: Should I be getting better performance from my two pc se

You shouldn't just copy someone else's settings, instead tweak your own settings, because you've got different computers that perform differently.

What you need to do is look at your log file (actually you haven't posted your log file for us yet) and look at Duplicated Frames. You want them to be below 1%. I prefer them to be around 0.30%, but different people have different sensitivity to duplicated frames.

The other factor is that Twitch's flash player is kinda bad and you're never going to have consistent framerates, especially anyone who's watching in fullscreen mode. To see evidence of this, just load FRAPS' framerate monitor (pretty sure even the trial version does this) and watch any video at all on Twitch.

Since you have an Ivy Bridge i7, you can do one tweak to perhaps squeeze out a bit more performance: set "threads=10" in your Custom x264 Encoder Settings. This is because you've got a hyperthreading CPU, and by default x264 opens too many threads, because it thinks you have an 8-core instead of a 4-core with hyperthreading. So by setting this, we limit the number of threads x264 opens, and everything performs a bit better. Oh and make sure you have hyperthreading enabled, encoders perform a lot better with hyperthreading than without.

As for your GTX460, its getting old, but it might be ok. OBS needs a graphics card, a half-way decent one, but having a kickass GPU gives no additional benefit for OBS purposes. Without seeing your log file, it'd be hard to say whether its holding you back or not, but its possible. I had a GTX560Ti and it was more than good enough, and before that I was using a GTX 260 in my 2nd PC and it was garbage for OBS, but I'm not sure about a GTX460. My instinct is that you're probably fine with it. If not, get one of the new GTX 750s, they cost about USD $120, which isn't bad at all for what you get.
 

FerretBomb

Active Member
Re: Should I be getting better performance from my two pc se

Problem with the GTX2** series was apparently more that they had ridiculously slow VRAM; a 4** series should work fine.

But yeah, we'll need to see a full log file from a live streaming session longer than 5 minutes to really be able to provide useful feedback.
 

Ickz

New Member
Re: Should I be getting better performance from my two pc se

When I get home I'll post up a log. I tried the threads=10 and opencl=true commands and it seemed to help. There's still some slight stuttering though. Another question for you all, do you think a 4770k would be better for me? According to benchmarks, it's x264 encoding performance is a little better. Also, what about the amd fx 9370/9590. Even though they're 8 cores, benchmarks still show the i7 outperforming/equaling it in x264 encoding. Would this really be the case in real world obs usage as well? Sorry for all the questions, guys. Trying to wrap my head around all of this.
 

Boildown

Active Member
Re: Should I be getting better performance from my two pc se

The 4770k is barely better than the 3770k, not worth it unless you're selling your old system for a decent sum and rebuilding. Remember that the Haswells use the 1150 pin motherboards, the Sandys and Ivys use 1155 pin, so you're going to need to upgrade your motherboard if you do this upgrade. I definitely recommend not doing it unless you can find a buyer for your old system at a good price (for you).

The AMDs aren't as good as what you already have. They aren't really 8 core CPUs, they're really just 4 cores with AMD's version of hyperthreading (a bit better than hyperthreading as I recall, but the original cores are worse, and it averages out to be worse than the Intel equivalents). Plus no Quicksync possibilities. Ordinarily I'd say AMD is good for its price, but Quicksync makes the Intel CPUs a better deal.

If you really have an itch to spend a lot of money upgrading, get the Ivy-E Extreme 6-core CPU, that will let you move down a preset or two. I don't think its worth the money though.
 

bezerker

New Member
Re: Should I be getting better performance from my two pc se

Boildown said:
The 4770k is barely better than the 3770k, not worth it unless you're selling your old system for a decent sum and rebuilding. Remember that the Haswells use the 1150 pin motherboards, the Sandys and Ivys use 1155 pin, so you're going to need to upgrade your motherboard if you do this upgrade. I definitely recommend not doing it unless you can find a buyer for your old system at a good price (for you).

The AMDs aren't as good as what you already have. They aren't really 8 core CPUs, they're really just 4 cores with AMD's version of hyperthreading (a bit better than hyperthreading as I recall, but the original cores are worse, and it averages out to be worse than the Intel equivalents). Plus no Quicksync possibilities. Ordinarily I'd say AMD is good for its price, but Quicksync makes the Intel CPUs a better deal.

If you really have an itch to spend a lot of money upgrading, get the Ivy-E Extreme 6-core CPU, that will let you move down a preset or two. I don't think its worth the money though.

If you actually do comparisons of the 8 core amd series vs their "equal" intel with hyperthreading (4 core + ht) models, the amd comes ahead in multithreaded processing. (Of which x264 is included.) Sure, no qsync, but for a stream machine you'd want to leverage raw cpu x264 anyway. Granted, the difference is relatively minor, but under full load the amd's multithread better.

The 6 core intels will come out ahead since they have 6 cores + ht for each core.

That said, even an 8350 is enough for me to encode 720p30 on medium without difficulty and slow is doable.
 

Ickz

New Member
Re: Should I be getting better performance from my two pc se

Here's a log from a 27m session tonight. Was pretty smooth, but still noticed some stuttering on the vod.

http://www.twitch.tv/ickztv/b/510276256

Can anyone else confirm/deny that an amd cpu would be better than a 3770k/4770k for a dedicated stream pc? Links to some benchmarks/anything backing it up would be appreciated, thanks guys.

I feel like even a small increase in performance over my 3770k would be all that it would take to maybe get rid of the slight stutters.

Code:
20:24:34: =====Stream Start: 2014-03-11, 20:24:34===============================================
20:24:34:   Multithreaded optimizations: On
20:24:34:   Base resolution: 1920x1080
20:24:34:   Output resolution: 1920x1080
20:24:34: ------------------------------------------
20:24:34: Loading up D3D10 on NVIDIA GeForce GTX 460 (Adapter 1)...
20:24:34: ------------------------------------------
20:24:34: Audio Format: 48000 Hz
20:24:34: ------------------------------------------
20:24:34: Audio Channels: 2 Ch
20:24:34: Playback device Default
20:24:34: ------------------------------------------
20:24:34: Using desktop audio input: Speakers (Realtek High Definition Audio)
20:24:34: ------------------------------------------
20:24:34: Audio Encoding: AAC
20:24:34:     bitrate: 160
20:24:34: ------------------------------------------
20:24:34:     device: AVerMedia HD Capture C985 Bus 2,
20:24:34:     device id \\?\pci#ven_1af2&dev_a001&subsys_a0011af2&rev_00#4&10c350e0&0&00e0#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{957bd672-7934-4b55-b81a-3e22b14c679a},
20:24:34:     chosen type: YV12, usingFourCC: true, res: 1920x1080 - 1920x1080, frameIntervals: 333333-666666
20:24:34:     use buffering: false - 0, fourCC: 'YV12'
20:24:34: 
20:24:34:     device audio info - bits per sample: 16, channels: 2, samples per sec: 48000, block size: 4
20:24:34: Using directshow input
20:24:34: Scene buffering time set to 700
20:24:34: Using custom x264 settings: "opencl=true threads=10"
20:24:34: ------------------------------------------
20:24:34: Video Encoding: x264
20:24:34:     fps: 30
20:24:34:     width: 1920, height: 1080
20:24:34:     preset: medium
20:24:34:     profile: main
20:24:34:     keyint: 60
20:24:34:     CBR: yes
20:24:34:     CFR: yes
20:24:34:     max bitrate: 3500
20:24:34:     buffer size: 3500
20:24:34: ------------------------------------------
20:24:35: Audio timestamp for device 'AVerMedia HD Capture C985 Bus 2' was behind target timestamp by 4532752
20:24:38: Using RTMP service: Twitch / Justin.tv
20:24:38:   Server selection: rtmp://live-ord.justin.tv/app
20:24:38:   Interface: Broadcom NetLink (TM) Gigabit Ethernet (ethernet, 1000 mbps)
20:24:38: Completed handshake with rtmp://live-ord.justin.tv/app in 168 ms.
20:24:39: SO_SNDBUF was at 8192
20:24:39: SO_SNDBUF is now 65536
20:24:40: RTMPPublisher::SocketLoop: Increasing send buffer to ISB 131072 (buffer: 3700 / 467968)
20:24:41: RTMPPublisher::SocketLoop: Increasing send buffer to ISB 262144 (buffer: 149782 / 467968)
20:51:47: Total frames encoded: 48940, total frames duplicated: 210 (0.43%)
20:51:47: Total frames rendered: 48940, number of late frames: 3 (0.01%) (it's okay for some frames to be late)
20:51:47: RTMPPublisher::SocketLoop: Graceful loop exit
20:51:47: Average send payload: 10144 bytes, average send interval: 22 ms
20:51:47: Number of times waited to send: 0, Waited for a total of 0 bytes
20:51:47: Number of b-frames dropped: 0 (0%), Number of p-frames dropped: 0 (0%), Total 0 (0%)
20:51:47: Number of bytes sent: 745790776
20:51:47: 
20:51:47: Profiler time results:
20:51:47: 
20:51:47: ==============================================================
20:51:47: video thread frame - [100%] [avg time: 2.255 ms] [children: 68%] [unaccounted: 32%]
20:51:47: | scene->Preprocess - [59.5%] [avg time: 1.341 ms]
20:51:47: | GPU download and conversion - [8.51%] [avg time: 0.192 ms] [children: 5.28%] [unaccounted: 3.24%]
20:51:47: | | flush - [4.08%] [avg time: 0.092 ms]
20:51:47: | | CopyResource - [1.02%] [avg time: 0.023 ms]
20:51:47: | | conversion to 4:2:0 - [0.177%] [avg time: 0.004 ms]
20:51:47: Convert444Threads - [100%] [avg time: 2.071 ms] [children: 99.7%] [unaccounted: 0.338%]
20:51:47: | Convert444toNV12 - [99.7%] [avg time: 2.064 ms]
20:51:47: encoder thread frame - [100%] [avg time: 1.965 ms] [children: 1.73%] [unaccounted: 98.3%]
20:51:47: | sending stuff out - [1.73%] [avg time: 0.034 ms]
20:51:47: ==============================================================
20:51:47: 
20:51:47: 
20:51:47: Profiler CPU results:
20:51:47: 
20:51:47: ==============================================================
20:51:47: video thread frame - [cpu time: avg 1.604 ms, total 78546.5 ms] [avg calls per frame: 1]
20:51:47: | scene->Preprocess - [cpu time: avg 0.98 ms, total 47970.3 ms] [avg calls per frame: 1]
20:51:47: | GPU download and conversion - [cpu time: avg 0.141 ms, total 6942.05 ms] [avg calls per frame: 1]
20:51:47: | | flush - [cpu time: avg 0.088 ms, total 4321.23 ms] [avg calls per frame: 1]
20:51:47: | | CopyResource - [cpu time: avg 0.025 ms, total 1263.61 ms] [avg calls per frame: 1]
20:51:47: | | conversion to 4:2:0 - [cpu time: avg 0.003 ms, total 187.201 ms] [avg calls per frame: 1]
20:51:47: Convert444Threads - [cpu time: avg 2.092 ms, total 204689 ms] [avg calls per frame: 2]
20:51:47: | Convert444toNV12 - [cpu time: avg 2.087 ms, total 204237 ms] [avg calls per frame: 2]
20:51:47: encoder thread frame - [cpu time: avg 1.161 ms, total 56831.2 ms] [avg calls per frame: 1]
20:51:47: | sending stuff out - [cpu time: avg 0.029 ms, total 1419.61 ms] [avg calls per frame: 1]
20:51:47: ==============================================================
20:51:47: 
20:51:47: =====Stream End: 2014-03-11, 20:51:47=================================================
 

FerretBomb

Active Member
Re: Should I be getting better performance from my two pc se

I'd recommend switching off OpenCL; it can cause odd behaviors to crop up... last I knew it was a beta 'use at your own risk' feature.

Core i7 systems are the de-facto streaming standard for a reason. AMD is cheaper, but tend to have weird issues crop up and less than reliable/consistent performance. Generally you tend to only go with AMD if you're on a budget when system-building.
 

Boildown

Active Member
Re: Should I be getting better performance from my two pc se

Your log file looks fine to me. To check that the stutters are performance related, encode on Fast instead of Medium and see if they go away. If they do, you're right, if they don't, its being caused by something else.

The benchmarks may be a wash between the 8350 and the 3770k (I haven't checked, but it seems plausible), but I do know that I see far more performance-related issues with the AMD 8320 and 8350 on these forums than I do with the Ivy, Sandy, and Haswell i7s. Add in Quicksync and faster single-core performance in case you want to do anything else besides encode, and I think the choice is clear: the i7s are worth the extra money.

In any case, you're throwing money away upgrading from a 3770k to anything short of one of the Intel 6-cores. Don't do it.
 
Top