Question / Help How powerful a PC is realistically needed for the streaming machine (2PC / console)

YouGotTheTouch

New Member
I have searched and searched but can't find an answer to this question. I apologise if I have missed something obvious.

So I'm looking into streaming, and have done some local testing but I'm finding that running OBS and a game on the same machine (i5 3570k @ 4.4 GHz) is just a little too demanding to generate a consistent smooth stream at the quality I'd like. I play in 1080p 60 fps and am encoding in 720p 60 fps using x264. My CPU usage caps out now and then, leading to choppy recordings and streams. If it makes any difference, I have been testing at a 2,500 kbps bitrate.

I have an old AMD Phenom II X4 machine that I could easily set up to be a dedicated streaming PC, which I would also use to stream PS4 games when I get one, but I have no idea if this is a viable solution. The machine would only run OBS and a browser window with stream chat in it. I know that OBS uses less than 30% of my current CPU, so I imagine that I wouldn't need a particularly good PC, but have no idea if an X4 is likely to be sufficient for streaming at this quality. If it isn't, what are the realistic minimum specs of a PC that would be good enough.

I would be buying a capture card (probably the Avermedia LG Portable), and don't want to make that investment without getting advice.
 

Boildown

Active Member
Chop usually results from duplicated or late frames, so you should post a log file.

x264 can be configured to not duplicate frames on a wide variety of different CPUs, from slow to fast. The difference is the quality of the encode. The stronger the CPU, the better preset you can use, and the higher quality the output. If you're seeing chop in the output, you haven't successfully done step one yet, which is eliminate duplicated frames (probably anyways, post a log file to find out for sure).

The AMD Phenom II X4 is not going to be very useful as a second PC when you have a 3570 available, IMO. Its pretty weak and you won't be able to use a good preset at 1080p or 720p.

The Avermedia LG Portable is only a USB 2.0 device, so it doesn't have the ability to do what you want. You should get either a USB 3.0 device or something that uses a PCIe 1x slot.
 

YouGotTheTouch

New Member
OK here's a log of a test run I just did. The footage wasn't as bad as it sometimes is, though there was still noticeable chop here and there. But my CPU was running at about 60-70% throughout, so it wasn't a CPU cap issue, at least not for this particular test.

Skipped frames are just over 5%. Is there any general advice for reducing them?

Code:
19:18:21: CUDA loaded successfully
19:18:21: 1 CUDA capable devices found
19:18:21: [ GPU #0 - < GeForce GTX 660 > has Compute SM 3.0, NVENC Available ]
19:19:30: Open Broadcaster Software v0.625b - 64bit ( ^ω^)
19:19:30: -------------------------------
19:19:30: CPU Name: Intel(R) Core(TM) i5-3570K CPU @ 3.40GHz
19:19:30: CPU Speed: 3400MHz
19:19:30: Physical Memory:  8077MB Total, 4131MB Free
19:19:30: stepping id: 9, model 58, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 4, total cores 4
19:19:30: monitor 1: pos={0, 0}, size={1920, 1080}
19:19:30: monitor 2: pos={0, -1200}, size={1920, 1200}
19:19:30: Windows Version: 6.1 Build 7601 S
19:19:30: Aero is Enabled
19:19:30: -------------------------------
19:19:30: OBS Modules:
19:19:30: Base Address  Module
19:19:30: 000000003F4C0000 OBS.exe
19:19:30: 00000000E9170000 OBSApi.dll
19:19:30: 00000000ED840000 DShowPlugin.dll
19:19:30: 00000000ED810000 GraphicsCapture.dll
19:19:30: 00000000ED7E0000 NoiseGate.dll
19:19:30: 00000000ED7B0000 PSVPlugin.dll
19:19:30: ------------------------------------------
19:19:30: Adapter 1
19:19:30:  Video Adapter: NVIDIA GeForce GTX 660  
19:19:30:  Video Adapter Dedicated Video Memory: 2086469632
19:19:30:  Video Adapter Shared System Memory: 2147807232
19:19:30:  Video Adapter Output 1: pos={0, 0}, size={1920, 1080}, attached=true
19:19:30:  Video Adapter Output 2: pos={0, -1200}, size={1920, 1200}, attached=true
19:19:30: ------------------------------------------
19:19:30: Adapter 2
19:19:30:  Video Adapter: Intel(R) HD Graphics 4000
19:19:30:  Video Adapter Dedicated Video Memory: 67108864
19:19:30:  Video Adapter Shared System Memory: 1711276032
19:19:30: =====Stream Start: 2014-07-07, 19:19:30===============================================
19:19:30:  Multithreaded optimizations: On
19:19:30:  Base resolution: 1920x1080
19:19:30:  Output resolution: 1280x720
19:19:30: ------------------------------------------
19:19:30: Loading up D3D10 on NVIDIA GeForce GTX 660 (Adapter 1)...
19:19:30: ------------------------------------------
19:19:30: Audio Format: 48000 Hz
19:19:30: ------------------------------------------
19:19:30: Audio Channels: 2 Ch
19:19:30: Playback device Default
19:19:30: ------------------------------------------
19:19:30: Using desktop audio input: Speakers (Realtek High Definition Audio)
19:19:30: Global Audio time adjust: 0
19:19:30: Using 5.1 speaker setup
19:19:30: ------------------------------------------
19:19:30: Audio Encoding: AAC
19:19:30:  bitrate: 160
19:19:30: Using graphics capture
19:19:30: Scene buffering time set to 700
19:19:30: ------------------------------------------
19:19:30: Video Encoding: x264
19:19:30:  fps: 60
19:19:30:  width: 1280, height: 720
19:19:30:  preset: veryfast
19:19:30:  profile: main
19:19:30:  keyint: 120
19:19:30:  CBR: yes
19:19:30:  CFR: yes
19:19:30:  max bitrate: 2500
19:19:30:  buffer size: 2500
19:19:30: ------------------------------------------
19:19:31: Trying to hook process: DarksidersPC.exe
19:19:32: SharedTexCapture hooked
19:19:39: GraphicsCaptureSource::NewCapture:  eliminating old capture
19:19:39: SharedTexCapture hooked
19:22:41: Total frames encoded: 11428, total frames duplicated: 576 (5.04%)
19:22:41: Total frames rendered: 11411, number of late frames: 27 (0.24%) (it's okay for some frames to be late)
19:22:41:
19:22:41: Profiler time results:
19:22:41:
19:22:41: ==============================================================
19:22:41: video thread frame - [100%] [avg time: 1.339 ms] [children: 15.2%] [unaccounted: 84.8%]
19:22:41: | scene->Preprocess - [0.0747%] [avg time: 0.001 ms]
19:22:41: | GPU download and conversion - [15.1%] [avg time: 0.202 ms] [children: 6.95%] [unaccounted: 8.14%]
19:22:41: | | flush - [3.58%] [avg time: 0.048 ms]
19:22:41: | | CopyResource - [3.29%] [avg time: 0.044 ms]
19:22:41: | | conversion to 4:2:0 - [0.0747%] [avg time: 0.001 ms]
19:22:41: Convert444Threads - [100%] [avg time: 0.333 ms] [children: 99.4%] [unaccounted: 0.601%]
19:22:41: | Convert444toNV12 - [99.4%] [avg time: 0.331 ms]
19:22:41: encoder thread frame - [100%] [avg time: 0.761 ms] [children: 1.45%] [unaccounted: 98.6%]
19:22:41: | sending stuff out - [1.45%] [avg time: 0.011 ms]
19:22:41: ==============================================================
19:22:41:
19:22:41:
19:22:41: Profiler CPU results:
19:22:41:
19:22:41: ==============================================================
19:22:41: video thread frame - [cpu time: avg 0.028 ms, total 327.602 ms] [avg calls per frame: 1]
19:22:41: | scene->Preprocess - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
19:22:41: | GPU download and conversion - [cpu time: avg 0.004 ms, total 46.801 ms] [avg calls per frame: 1]
19:22:41: | | flush - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
19:22:41: | | CopyResource - [cpu time: avg 0.001 ms, total 15.6 ms] [avg calls per frame: 1]
19:22:41: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
19:22:41: Convert444Threads - [cpu time: avg 0.135 ms, total 3073.22 ms] [avg calls per frame: 2]
19:22:41: | Convert444toNV12 - [cpu time: avg 0.135 ms, total 3073.22 ms] [avg calls per frame: 2]
19:22:41: encoder thread frame - [cpu time: avg 0.114 ms, total 1310.41 ms] [avg calls per frame: 1]
19:22:41: | sending stuff out - [cpu time: avg 0.001 ms, total 15.6 ms] [avg calls per frame: 1]
19:22:41: ==============================================================
19:22:41:
19:22:41: =====Stream End: 2014-07-07, 19:22:41=================================================
 

YouGotTheTouch

New Member
And just for good measure, I also tried a run using high bitrate NVENC. Obviously it would be bad for streaming, but it puts even less stress on the CPU but I still had 7% duplicated frames.

Code:
19:37:14: Settings::Video: Enabling Aero
19:37:17: =====Stream Start: 2014-07-07, 19:37:17===============================================
19:37:17:  Multithreaded optimizations: On
19:37:17:  Base resolution: 1920x1080
19:37:17:  Output resolution: 1280x720
19:37:17: ------------------------------------------
19:37:17: Loading up D3D10 on NVIDIA GeForce GTX 660 (Adapter 1)...
19:37:17: ------------------------------------------
19:37:17: Audio Format: 48000 Hz
19:37:17: ------------------------------------------
19:37:17: Audio Channels: 2 Ch
19:37:17: Playback device Default
19:37:17: ------------------------------------------
19:37:17: Using desktop audio input: Speakers (Realtek High Definition Audio)
19:37:17: Global Audio time adjust: 0
19:37:17: Using 5.1 speaker setup
19:37:17: ------------------------------------------
19:37:17: Audio Encoding: AAC
19:37:17:  bitrate: 160
19:37:17: Using graphics capture
19:37:17: Scene buffering time set to 700
19:37:17: 1 CUDA capable devices found
19:37:17: [ GPU #0 - < GeForce GTX 660 > has Compute SM 3.0, NVENC Available ]
19:37:17: NVENC internal init finished successfully
19:37:17: NVENC supports 8 h264 presets
19:37:17: ------------------------------------------
19:37:17: Video Encoding: NVENC
19:37:17:  fps: 60
19:37:17:  width: 1280, height: 720
19:37:17:  preset: llhq
19:37:17:  profile: high
19:37:17:  level: autoselect
19:37:17:  keyint: 120
19:37:17:  CBR: yes
19:37:17:  CFR: yes
19:37:17:  max bitrate: 42000
19:37:17:  avg bitrate: 42000
19:37:17:  buffer size: 42000
19:37:17: ------------------------------------------
19:37:17: Trying to hook process: DarksidersPC.exe
19:37:17: SharedTexCapture hooked
19:44:53: Total frames encoded: 27288, total frames duplicated: 1923 (7.05%)
19:44:53: Number of frames skipped due to encoder lag: 54 (0.20%)
19:44:53: Total frames rendered: 26304, number of late frames: 634 (2.41%) (it's okay for some frames to be late)
19:44:53: Encoder closed
19:44:53: NVENC deinitialized
19:44:53:
19:44:53: Profiler time results:
19:44:53:
19:44:53: ==============================================================
19:44:53: video thread frame - [100%] [avg time: 2.17 ms] [children: 53.9%] [unaccounted: 46.1%]
19:44:53: | scene->Preprocess - [0.0922%] [avg time: 0.002 ms]
19:44:53: | GPU download and conversion - [53.8%] [avg time: 1.168 ms] [children: 48.9%] [unaccounted: 4.88%]
19:44:53: | | flush - [13.2%] [avg time: 0.286 ms]
19:44:53: | | CopyResource - [4.42%] [avg time: 0.096 ms]
19:44:53: | | conversion to 4:2:0 - [31.3%] [avg time: 0.68 ms]
19:44:53: Convert444Threads - [100%] [avg time: 0.461 ms] [children: 98.9%] [unaccounted: 1.08%]
19:44:53: | Convert444toNV12 - [98.9%] [avg time: 0.456 ms]
19:44:53: encoder thread frame - [100%] [avg time: 11.64 ms] [children: 0.481%] [unaccounted: 99.5%]
19:44:53: | sending stuff out - [0.481%] [avg time: 0.056 ms]
19:44:53: ==============================================================
19:44:53:
19:44:53:
19:44:53: Profiler CPU results:
19:44:53:
19:44:53: ==============================================================
19:44:53: video thread frame - [cpu time: avg 0.346 ms, total 9126.06 ms] [avg calls per frame: 1]
19:44:53: | scene->Preprocess - [cpu time: avg 0 ms, total 15.601 ms] [avg calls per frame: 1]
19:44:53: | GPU download and conversion - [cpu time: avg 0.086 ms, total 2277.61 ms] [avg calls per frame: 1]
19:44:53: | | flush - [cpu time: avg 0.048 ms, total 1263.61 ms] [avg calls per frame: 1]
19:44:53: | | CopyResource - [cpu time: avg 0.014 ms, total 390.002 ms] [avg calls per frame: 1]
19:44:53: | | conversion to 4:2:0 - [cpu time: avg 0.006 ms, total 171.602 ms] [avg calls per frame: 1]
19:44:53: Convert444Threads - [cpu time: avg 0.381 ms, total 20014.9 ms] [avg calls per frame: 2]
19:44:53: | Convert444toNV12 - [cpu time: avg 0.38 ms, total 19983.7 ms] [avg calls per frame: 2]
19:44:53: encoder thread frame - [cpu time: avg 0.964 ms, total 26286.2 ms] [avg calls per frame: 1]
19:44:53: | sending stuff out - [cpu time: avg 0.039 ms, total 1076.4 ms] [avg calls per frame: 1]
19:44:53: ==============================================================
19:44:53:
19:44:53: =====Stream End: 2014-07-07, 19:44:53=================================================
 
Top