Question / Help Recording locally causing high CPU usage

Virus610

New Member
I come to the forums for help with this, since I just found out a friend of mine is having the same issue.

In the past, things have been just fine if I stream and record locally, OBS uses up about 20-30% of my i7 2700k's processing power.

Following what I assume is the update that added the replay buffer somewhere between 1 and 2 weeks ago (I think), I suddenly started having up to 50% of my CPU being used up, and OBS would report that my CPU can't keep up, suddenly started getting all sorts of inconsistent frame rates.

If I turn off the local recording, things go back to the way they were. Seems as if OBS is suddenly doing double the work to stream+record at the same time.

Is anybody else having this issue, and does anybody know how to resolve it?

Here's my OBS log: http://www.pastebin.com/mmRrK1n0

Edit: I should add that the frame rate grows inconsistent over time, after a few hours it becomes intolerably bad. A quick restart of the stream solves it, temporarily, but I'd rather this wasn't necessary.
 
Last edited:

alpinlol

Active Member
aero disabled and using window capture
  1. 00:07:25: Aero is Disabled
  2. 00:07:27: Using Window Capture
  3. 00:07:27: Using Window Capture
  4. 00:07:27: Using Window Capture
  5. 00:07:27: Using Window Capture
  6. 00:07:27: Using Window Capture
also scene buffering time of 60
  1. 00:07:27: Scene buffering time set to 60
quite a ton of duplicated frames
  1. 00:19:32: Total frames encoded: 43533, total frames duplicated: 8000 (18.38%)

tbh honest your settings are quite bad so its possible that there are performance issues or even warnings
 

Koola

New Member
I'm having the same issue lately. Ever since one of the more recent updates, OBS has been telling me that my CPU Usage is getting too high. I know it isn't my setup, cause I've been streaming using OBS for like a year now, and I've rarely if ever changed settings drastically enough to cause this.

The weird part is, this only happens after 2 and a half to 3 hours of streaming. For the first few hours, everything runs great and I can keep 60 FPS no problem with my Capture card (Aero off/Window Capture), but afterwards OBS tells me CPU Usage is too high and my FPS drops. Hell, I can even see the OBS preview slowing down. A quick stream refresh and it's back to normal for another 3-ish hours.
 

Virus610

New Member
I read that the no aero + window capture isn't a performance thing, but a windows overlaying other windows thing. Is this not the case?

As for the scene buffering, I quite literally cannot lower it below 60. If I try, it just resets to 60. So this one is kind of out of my hands. (Though I do think it's a recent development, I am fairly sure that number used to be 0.)

I'm unsure of what exactly is the cause of the duplicated frames, unless static scenes that go up temporarily have something to do with that. Streaming 60fps games at 60fps certainly doesn't seem unreasonable though.

Koola's situation is quite similar to mine, and that of my friend, with a detail I forgot to mention: The performance decreases gradually, and doing a quick restart of the stream seems to help, but this is definitely not an ideal solution.
 

FerretBomb

Active Member
No issue with this here, no increase noted. I stream+record and keep my utilization overall at 80-90% constant. If this spike happened to me, I'd be skipping/duping frames like crazy while constantly being pegged at 100%.

Aero + window capture both allows overlaid windows not to be captured, and is faster/more efficient.

Streaming at 60fps generally is just a waste of resources and bitrate outside of a few very specific applications. The default Scene Buffer is 700... you really don't want to push it low. Even older versions of OBS used 200. You need to bump it back up; it could potentially be one cause of your duped frames. Why did you drop this at all?
 

Virus610

New Member
Scene buffer was lower because it was a setting recommended to me a long time ago, never caused any issues until now having it at 0. I don't remember the details, but I was under the impression that higher = worse. I'll try modifying that and see if it helps tonight.
 

Koola

New Member
Aero + Window Capture may be the ideal setup, but I am literally unable to do this. For whatever reason, my Capture Card only displays when Aero is disabled when working with OBS, a problem that no other streaming program has. I was easily able to stream with Xsplit with Aero enabled with the same capture card, but OBS refuses to display anything.

As for Scene Buffer, mine is still 700, and I'd like to continue to stream at 60 fps, as viewers of my streams have told me they can see the difference between a 30 fps and 60 fps stream, and 60 looks better. I'm just trying to figure out why this is a problem at all when it never used to be in the older versions... Maybe I should downgrade until this gets sorted out.
 

FerretBomb

Active Member
Yeah, whoever told you that about scene buffer didn't know what they were talking about. Any gains will be minimal at best, especially when compared to the potential for a frame not being ready by the time the buffer expires. It's much the same as people advising a custom bitrate-buffer.
Don't change this stuff without knowing what it actually does, and why you're changing it. There's a LOT of bad information out there being parroted by people who don't.

The capture card sounds like a separate issue and should be looked into in its own thread.

60fps is mostly psychosomatic. It's something that 'competitive' gamers push. Yes, there's a massive difference in playing at 60fps vs 30fps. Not so much on streaming. You will get better image quality at 30fps at the same bitrate/res, where you get twice as much bpp (bits per pixel) density. You'll also be able to use a slower x264 encoder preset, as it only requires about half the workload to encode at 30fps, making it look even better.
I find it especially funny because I have listed a number of streams as '60fps' (actually 30fps with the Medium encoder), and got compliments on how much of an improvement it was over the previous night (actual 60fps at Veryfast).

Again. Don't stream at 60 unless you have one of the very few use-cases where it is a necessity. Otherwise it's just wasteful.
 

FerretBomb

Active Member
Nope, I use that too.

Though my 'replay buffer' is only one second. Still no idea what that actually does... didn't see any changelog information about it or anything. Possibly the ability to local-record something highlight-worthy in a rolling buffer, or something similar? Seems like it should be able to be disabled completely, if you're just recording outright.
 

Virus610

New Member
I've increased my scene buffering time to 700ms, following FerretBomb's recommendation, though all of my other settings remain the same (Since this was never a problem before), and still found that streaming+local recording would start to increase the CPU usage, slowly reducing the framerate on OBS after a few hours of streaming. Turning off the local recording still immediately resolved it, though.
 

Jack0r

The Helping Squad
Hmm, it sounds a bit like a slow harddisk problem, but I am not totally sure to be honest.
Its strange definitely, will link the thread to the other mods to have a look.
 

Virus610

New Member
The problem seems to have popped up around the same general time for a few people, so I don't know if hard disk is to blame, but I'll set my recording directory to my SSD before I stream tonight and report back with the results.

Thanks for passing on the message to other mods!
 

Virus610

New Member
Update: Recording to my SSD still causes increased CPU usage after the stream's run for 3-4 hours. Things go back to normal once I stop recording, even if I keep the stream going. I can start it right back up, and it'll be fine as long as it doesn't record for 3-4 hours again.

Mind you, I don't think this is a sudden transition, but rather a gradual effect that starts to become noticeable after that amount of time.
 

Jack0r

The Helping Squad
I am currently running a test with quicksync for 3-4hours and will then run one more with x264. Assuming I cannot reproduce it you might have to go through a bit of testing, for example create a new scene collection, just one scene and just add a game capture, nothing else, no global sources.
You can also check everything for the latest drivers, I noticed "High Definition Audio Device" in the log for your Speakers, which should be the Microsoft default drivers, you might be able to get better ones from your manufacturer. And last but not least you could maybe test without using the VB-Cable.
But let me first see if I can maybe reproduce the problem.
 

Virus610

New Member
If this helps any, I've done some testing on my end. Exact same configuration, but did a 6-hour stream+record using version 0.625b (Before the replay buffer update) - As suspected, OBS didn't end up streaming at an inconsistent framerate or hogging my CPU.

There's definitely a difference between 0.625b and recent versions that is affecting performance in some way. I don't know what it is, but there's something.
 

Jack0r

The Helping Squad
The replay buffer is only active if you use it. It's definitely strange, I will ink the topic to the other mods.
 

Virus610

New Member
Yeah, I don't actually know if it's related to the replay buffer, I just think that the update that introduced that (Among a bunch of other things) is the one that caused this new CPU usage.
 
Top