Question / Help 30% CPU Usage when streaming....

MacAwesomeGuy

New Member
Hi,

I was recommended to try out OBS due to some issue XSplit is having with the video card I am using and so far I am loving the program aside from one issue. It uses 30% of my CPU when I play and can't quite figure out why.
I am using similar settings to what I am using in XSplit which stays at about 10% so was hoping someone who has been using the OBS software before could shed some light on the issue.

System setup
CPU: Intel i7 2600K
RAM: 8 GB 1600 MHz
MBD: Asus Sabertooth P67
Videocard: ATI Radeon HD 7850 2GB GDDR5 (2 monitors)
HDD: 120 GB Intel 330 SSD

OBS Settings
Quality Balance: 9
Max Bitrate: 5500
Buffer Size: 5500
Audio: AAC 128 - 44,1khz stereo
Resolution: 1920*1080
FPS: 60
Streaming to Twitch

Here's a vod of the stream - skip to about 8 minutes where I actually play: http://www.twitch.tv/macawesomeguy/b/356822708
Both the video and audio quality are good however, the high cpu usage affected my gameplay.

Thanks in advance

/ MacAwesomeGuy
 

MacAwesomeGuy

New Member
I know that streaming on my current settings would put some strain on the system -- perhaps 30% is expected, I don´t have much experience with streaming and only used XSplit so far so I'm automatically comparing it to that program which, like I said in OP, only uses about 10% using the exact same quality settings :/

Code:
Open Broadcaster Software v0.466a - 32bit (´・ω・`)
-------------------------------
CPU Name: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
CPU Speed: 3411MHz
Physical Memory:  4095MB Total, 3231MB Free
stepping id: 7, model 10, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 8, total cores 4
Windows Version: 6.1 Build 7601 S
Aero is Disabled
------------------------------------------
Adapter 1
  Video Adapter: AMD Radeon HD 7800 Series
  Video Adapter Dedicated Video Memory: 2123567104
  Video Adapter Shared System Memory: 4014395392
=====Stream Start=====================================================================
  Multithreaded optimizations: On
  Base resolution: 1920x1080
  Output resolution: 1920x1080
------------------------------------------
Loading up D3D10...
------------------------------------------
Using auxilary audio input: Microphone (SB Audigy)
------------------------------------------
Audio Encoding: AAC
    bitrate: 128
Using Monitor Capture
------------------------------------------
Video Encoding: x264
    fps: 60
    width: 1920, height: 1080
    preset: veryfast
    CBR: no
    max bitrate: 5500
    buffer size: 5500
    quality: 9
------------------------------------------
Using RTMP service: Twitch / Justin.tv
  Server selection: rtmp://live-ams.justin.tv/app
bufferTime: 1883, outputRateWindowTime: 1000, dropThreshold: 2383
++++++++++++++++++++++++++++++++++++++++++++++++++++++
  New Scene
Using graphics capture
Warning -- GraphicsCaptureSource::BeginScene: Failed to inject library, GetLastError = 2
++++++++++++++++++++++++++++++++++++++++++++++++++++++
  New Scene
++++++++++++++++++++++++++++++++++++++++++++++++++++++
  New Scene
Using graphics capture
SharedTexCapture hooked
Total frames rendered: 40612, number of frames that lagged: 13705 (33.75%) (it's okay for some frames to lag)
RTMPPublisher::SocketLoop: Aborting due to bStopping
Number of b-frames dropped: 0 (0%), Number of p-frames dropped: 0 (0%), Total 0 (0%)
=====Stream End=======================================================================

Profiler results:

==============================================================
frame - [100%] [avg time: 16.977 ms] [avg calls per frame: 1] [children: 92.1%] [unaccounted: 7.92%]
| scene->Preprocess - [42.4%] [avg time: 7.2 ms] [avg calls per frame: 1]
| video encoding and uploading - [49.7%] [avg time: 8.433 ms] [avg calls per frame: 1] [children: 28.8%] [unaccounted: 20.9%]
| | CopyResource - [1.02%] [avg time: 0.174 ms] [avg calls per frame: 0]
| | conversion to 4:2:0 - [0.0295%] [avg time: 0.005 ms] [avg calls per frame: 0]
| | call to encoder - [27.7%] [avg time: 4.698 ms] [avg calls per frame: 0]
| | sending stuff out - [0.0707%] [avg time: 0.012 ms] [avg calls per frame: 0]
==============================================================
 

hilalpro

Member
overclocking your cpu would be your best bet.

you shouldn't really bother comparing obs with Xsplit.. analyzing your VOD's from 3 days ago they're definitely not on the same hidden x264 parameters and the real average achieved fps is about double on the newer VOD. it appears that OBS uses that much CPU time to encode more frames a second at a higher quality.
 

dodgepong

Administrator
Community Helper
MacAwesomeGuy said:
Warchamp7 said:
I refuse to believe for even a second that Xsplit can do 1080p 60fps and only have 10% cpu usage.

Perhaps the most helpful post I've ever seen ;)
He's right, though...given your rig specs, I find it incredibly hard to believe you were streaming 1080p60 with Xsplit at 10% CPU usage. Are you certain you were measuring correctly at the time? Or that the thing you were streaming was not a static screen?

Honestly, 30% usage sounds superb to me. I used to have a i5 2500k @ 3.8ghz and got 90-95% usage with Xsplit, then switched to OBS and got 70%. Now I have a i7 3770k @ 4.1ghz and I'm around 40%. (I stream Tribes: Ascend, which is a very resource-intensive game.)
 

Bensam123

Member
Xsplit doesn't encode when it's open. Xsplit only uses a lot of CPU while you stream. OBS is always encoding, just by being open if you have preview going. Xsplit is also split up into two processes... The xsplit process and then the vmhencoder or something like that which is also found in task manager, but it's a separate process from xsplit.

When I switched from Xsplit to OBS i didn't actually notice a change in CPU usage, but OBS definitely seemed lightweight and seemed to impact my FPS less (at the same settings as Xsplit). I didn't say anything because I didn't think it was worth mentioning. Last time I used Xsplit was close to three months ago though.
 

MacAwesomeGuy

New Member
you shouldn't really bother comparing obs with Xsplit.. analyzing your VOD's from 3 days ago they're definitely not on the same hidden x264 parameters and the real average achieved fps is about double on the newer VOD. it appears that OBS uses that much CPU time to encode more frame a second at a higher quality.

That sounds like a possible reason for the high cpu load, thank you very much :)
I'll fiddle around a little with the settings, could try a lower bitrate and lower fps output and see if it has less impact on the game itself, I streamed DDO in the VoD where less resources to the game itself doesn't matter much but in more competative games I might have to lower the quality settings a little bit.

Xsplit doesn't encode when it's open. Xsplit only uses a lot of CPU while you stream. OBS is always encoding, just by being open if you have preview going. Xsplit is also split up into two processes... The xsplit process and then the vmhencoder or something like that which is also found in task manager, but it's a separate process from xsplit.

And that would probably explain the difference in cpu usage between the two processes. Didn
t know about the vmhencoder process, thank you very much :)
 

Haliinen

Member
May I guess, the encode preset is set to ultrafast? For me, just having XSplit opened with some sources added takes up like 2-4% of my CPU usage (with the RAM usage of the software being at 80 to 100 MB), and I'm on the 2600K as well but overclocked to 4.5 GHz. Like some other people stated, there is no way that the CPU usage was at 10% when encoding your stream in 1080p @ 60 fps. I believe that my CPU usage is around 20-25%, perhaps 30%, not sure, when I encode my stream in 720p @ 60 fps in the veryfast preset, and when a lot is going on in the scene which is a very acceptable result.
 

MacAwesomeGuy

New Member
I finally found some spare time to look into this further.
First thing I tried was to just lower the fps output from 60 FPS to 30 FPS - I left all other settings the same way as they were before, launched the game and ran the exact same dungeon, with the same game settings and the cpu load of OBS was below 10% during the entire session.
 

Bensam123

Member
It's not called vhencoder, I think it's actually closer to vhwriter... I don't remember the exact name since I haven't used Xsplit in ages, but it's the encoder for Xsplit.
 
Top