Bug Report OBS 0.638b framerate drops when OBS window is on-screen

Since updating to 0.638b I've noticed some major framerate problems when the OBS window is in view of the recording. If I'm just using one OBS instance, the framerate drops from 30fps to about 15fps. As soon as I move the OBS window off the monitor I'm recording on, it jumps back up to 30fps. That's fine for local recordings, but I also like to stream and I've been using this method for running two instances of OBS so one can stream while the other records a high quality version:

https://obsproject.com/forum/resour...-stream-and-record-at-different-qualities.74/

Now, with both OBS windows on the screen being recorded, the fps drops to 6-8. I currently have 2 monitors, so the way that I've been doing this was to have both OBS instances on Monitor 1, the first instance doing the high quality recording would project to Monitor 2, and the second instance that is doing the streaming would record Monitor 2. I have to keep them both on Monitor 1 since Monitor 2 gets overtaken with the projector and you can't see the OBS windows to switch scenes or adjust audio levels.

This has been working fine up until recently (I've only noticed in the past week or two, so I'm not 100% positive it's the update to 0.638b, or if it's some of the plugins/libraries that have recently gotten updated when OBS prompted me to update them a week or so ago). And it seems to be doing the same when capturing console footage with my elgato, though instance 1 holds pretty steady at 30fps, instance 2 only gets about 15fps for the streaming.

I'm attaching several logs for analysis. 2209-29 is when using only one instance, though there are several start and stop points while I was troubleshooting the framerate drops, the first few start/stops are with a second instance running, and the last start/stop that went for ~4 hours is just the single instance, and also when I discovered moving the OBS window off Monitor 1 bumped the framerate back up. You see with both instances on Monitor 1, I'm getting ~70% duplicated frames and ~80-90% late frames. But with only one instance there are 20% duplicated frames and 24% late frames and those are almost certainly prior to finally realizing moving the OBS window off screen bumps the fps back up. Normally those are almost 0%.

2209-31 is the second instance, and you can see it's having the same problem of duplicated and late frames.

1235-32 is instance one, recording from my elgato. Even though OBS says it held steady at 30fps, you can see the duplicated frames is ~50%, though the late frames are only 10%. When watching the video that was recorded, it looks like it's recorded at about 15-20fps. I do know the stream on instance 2 was only getting 15fps according to OBS.

As I said before, I'm only using the two physical monitors at this time, but I have a 3rd monitor that I will run some more 2 instance tests on. I just don't have room currently on my desk for a 3rd. New desk should be in after the new year. I want to see what happens when both OBS instances are on monitor 2, instance 1 recording monitor 1/game capture/etc, and projecting to monitor 3 while instance 2 streams monitor 3. I did notice an fps drop from 30 to 15 just turning on the projector to monitor 2, but that may just be because the OBS window was being recorded.

I also have the video recorded that I'll be uploading to YouTube of my streams from Friday (elgato), and Saturday (two with both instances/low fps, and the final one with 1 instance off-screen and full 30fps) I'll post links to them here once they've finished rendering and uploading.
 

Attachments

  • 2014-12-06-2209-29.log
    32.3 KB · Views: 42
  • 2014-12-06-2209-31.log
    17.5 KB · Views: 12
  • 2014-12-05-1235-32.log
    8.1 KB · Views: 18
Sorry to double post, but I wanted to post a couple of earlier 2 instance streams from 11/22/2014 that show almost no duplicated or late frames.

0031-42 is instance 1 with elgato capture, projecting to monitor 2
0031-46 is instance 2 streaming monitor 2

And another two instances from 11/26/2014

2236-27 is instance 1 capturing desktop and skyrim, projecting to monitor 2
2236-45 is instance 2 streaming monitor 2

I do notice higher than normal duplicated and late frames on 2236-27, but nowhere near the 70+% it's currently getting, and I suspect they're due to Skyrim apparently being very particular about having Aero disabled. It doesn't like it. I was getting a very stuttery ~15fps in-game with Aero turned off, but when I leave Aero on it stays pretty rock solid in game at 60fps, even with ENB. edit: I just noticed I was using NVENC on this one which definitely contributed to the choppy recording, but in the video linked below you can see both OBS windows showing 30 fps, not the 6-8 I was seeing yesterday and will have videos to show hopefully by tomorrow.

The next logs I have with game recording are from 12/05/2014 and it's added to the initial post. So whatever it was that changed, seems to have changed between 11/26 and 12/05. I had updated my Nvidia drivers, which may also be what's causing this, even though I'm using QuickSync instead of NVENC. But those were updated sometime prior to 11/20/2014 (not sure of the exact date, but that's the earliest OBS log I have with game recording using QSV instead of NVENC), and they haven't been updated since then, so I'm doubting that the driver is causing this since the problems didn't start until sometime in the past week, well after they were updated.

edit: Here's the first part of the video from that 11/26 stream, starts showing difference with Aero on and off, and then goes into the original stream where you can see how incredibly choppy it was: https://www.youtube.com/watch?v=sy_u8h12drw&list=UUg7lJ5KURwEMnQdbe-cMbAQ

edit 2: After getting on IRC I saw mention of using DWM as game capture so I thought I'd give that a shot instead of normal monitor capture. That took care of the framerate drop when OBS's window was on screen while being recorded, but the framerate drop while projecting and streaming with a second instance is still present. I recorded a quick screencast to demonstrate: https://www.youtube.com/watch?v=VjwTS8wzSBg
 

Attachments

  • 2014-11-22-0031-42.log
    14.3 KB · Views: 19
  • 2014-11-22-0031-46.log
    16.8 KB · Views: 18
  • 2014-11-26-2236-27.log
    8.1 KB · Views: 17
  • 2014-11-26-2236-45.log
    8.6 KB · Views: 16
Last edited:
Quick update: I've figured out a bit of a workaround, at least for the elgato recording/streaming:

Instead of having both instance 1 and 2 on monitor 1, with instance 1 projecting to monitor 2 and instance 2 capturing/streaming monitor 2 and suffering massive framerate drops, what I've now done is move both instances to monitor 2, have instance 1 project to monitor 1, and instead of using monitor capture on instance 2, I've set it up with the DWM capture.

The test high quality local recording and streaming that I just did was solid at 30fps on both instances.

So, again, at least for the elgato recording the problem is solved. Now I just need to figure out how to do this for games on my PC. I'm thinking a third monitor will be needed for actually playing a game, though I've never tried to launch a game on a non-primary monitor. But if that works, then instance 1 will capture the game and record in high bps, project to monitor 1/primary, and instance 2 will use DWM capture and be able to stream the gameplay from monitor 1 while monitor 3 is where I'm actually playing the game to ensure no projector lag from monitor 1/instance 1.

So complicated and convoluted :-/ Really going to be glad when/if OBS Studio includes the option to record at high bitrate while streaming at a lower bitrate. And also when/if it will be able to separate mic audio from the local recording.

Or maybe when Windows 10 is out it won't have a problem with the monitor recording, similar to Windows 8. I've been beta testing it and I think I will definitely be upgrading to it next year. Then I won't need the DWM capture and it's primary monitor limitation. I just can't bring myself to put Windows 8 on my desktop.
 
Top