Question / Help Slightly slow framerate on stream/record

AAWW

New Member
Hi all,

I'm moving from Wirecast to OBS because the CPU usage is so much better on OBS. However it took me a while with customer support to get up and running with Wirecast, and I'm having a small issue with OBS but I hope it's an easy fix.

I'm doing a two camera stream that goes as follows:
(2 of each of these) Vixia Handicam -- HDMI Cable --> HDMI to SDI Converter -- SDI Cable --> SDI to Thunderbolt Ultrastudio Mini Recorder -- Thunderbolt Cable --> MacBook Pro

Here's my log for my last stream: https://obsproject.com/logs/l_FrZrh5mgM_WErt

I'm trying to stream to Facebook Live at 1080p and do a recording at 1080p. I'd like it to run a smooth 30 fps but it seems like it's running around 20 fps and things are a little bit choppy.

I feel like I'm so close in setting this up! Please help me figure out the choppy-ness. Thank you so much. Let me know if there's other information you need.

- R
 

Narcogen

Active Member
No output session in the log.

Performance data in OBS logs is only generated when an output session finishes. So you need to run OBS, start a recording or streaming session, observe your issue, stop the session, then upload the log.

I also have to ask... do you have a possibility to use HDMI capture hardware?

I mean... it's not at all uncommon to need SDI capture gear to accommodate SDI cameras. Or to use SDI cameras to accommodate a setup that includes a lot of SDI ingests.

But... you're converting FROM HDMI to SDI, and then SDI to Thunderbolt... is something else cascading off that in your setup that needs to be SDI?
 

AAWW

New Member
Hmm so I thought I did that for the output session, here is me trying again: I attached two different log files that appeared today. It's almost good but fast movement seems to be a little bit blurry/jittery.

I use ultrastudio mini recorders, are those not HDMI capture hardware? I only use the SDI conversion because the distance from the cameras to the computer is approx 30 ft because it is an event space, and I read HDMI doesn't do well long distances and should be converted and re-converted back. I don't claim it's the most elegant solution but it worked fine for two years perfectly with this set up on Wirecast, so I assume it should be able to get along with OBS?

Thank you for your reply!
 

Attachments

  • 2019-11-13 15-40-30.txt
    9.2 KB · Views: 12
  • 2019-11-13 15-34-55.txt
    9.6 KB · Views: 4

Narcogen

Active Member
30 feet is not a problem for decent quality HDMI cables.

If you don't have them, and have SDI cables available, and no problems with the setup, then by all means, keep what you've got. Was just curious if there was a reason.

15:51:32.622: Output 'adv_stream': Number of lagged frames due to rendering lag/stalls: 229 (45.9%)
15:53:21.285: Output 'adv_stream': Number of lagged frames due to rendering lag/stalls: 850 (29.9%)
15:53:29.507: Output 'adv_file_output': Number of lagged frames due to rendering lag/stalls: 860 (43.1%)


Your GPU is significantly overloaded. 1080p30 on this hardware in OBS with only an Intel GPU may be a stretch.

https://obsproject.com/wiki/GPU-overload-issues
 

AAWW

New Member
So I tried a new test where I didn't stream, I just recorded, and I changed the Output Recording setting to 720p; I still get a similar choppy frame rate. I attached the new log and a screenshot of my settings. Does this make any sense?

Also let me know if this is useful info-- On Wirecast I would stream 720p to Facebook and a record a larger 720p version to an external drive for uploading on YouTube, and would do this no problem at about 70% CPU usage.

Thank you again for your help.
 

Attachments

  • 2019-11-19 15-28-23.txt
    7 KB · Views: 9
  • Screen Shot 2019-11-19 at 4.20.43 PM.png
    Screen Shot 2019-11-19 at 4.20.43 PM.png
    295 KB · Views: 33

Narcogen

Active Member
Changing the output resolution reduces encoding lag but not rendering lag, since the renderer uses the canvas resolution setting for rendering. Your GPU is still just as overloaded. This is not related to CPU utilization at all.

15:33:06.007: Output 'adv_file_output': Number of lagged frames due to rendering lag/stalls: 632 (36.5%)
16:14:48.382: Output 'adv_ffmpeg_output': Number of lagged frames due to rendering lag/stalls: 605 (39.3%)
16:17:02.998: Output 'adv_ffmpeg_output': Number of lagged frames due to rendering lag/stalls: 420 (39.1%)
 

AAWW

New Member
Okay so what should I try? In Wirecast everything worked okay, so I'm assuming this means that there's some configuration in OBS where I can stream smoothly with the hardware I have.

From your response I read "Your GPU is significantly overloaded. 1080p30 on this hardware in OBS with only an Intel GPU may be a stretch." So I tried to change the output resolution, which I now understand doesn't affect render lag which uses the canvas resolution setting. Is the next step changing the canvas resolution setting? Is there a way of encoding the video so that it uses more CPU and less GPU?
 

Narcogen

Active Member
Wirecast and OBS work differently.

Yes, the next step is dropping your canvas resolution to the same as your output resolution.

Rendering is a GPU function. It cannot be offloaded to the CPU.
 

AAWW

New Member
Hi,

Sorry I'm still having this same issue. I switched the canvas to 720 and I'm still having the same framerate dropping. I attached the log again, the one that I switched the canvas is at the very end of the log.

Is it possible to encode in prores well in obs? In wirecast I recorded in ProRes 422 LT and it was very smooth. I'm open to any suggestions to fix this, I feel like my computer specs should be good enough to get a decent clean recording in OBS. It's a Macbook Pro 3.1 GHz Intel Core i7 with
16 GB 1867 MHz DDR3 and Graphics Intel Iris Graphics 6100 1536 MB.

Thank you for your help.


Screen Shot 2019-12-02 at 12.27.01 PM.png
 

Attachments

  • 2019-12-02 12-19-10.txt
    5.5 KB · Views: 4

Narcogen

Active Member
12:27:15.760: Output 'adv_ffmpeg_output': Number of lagged frames due to rendering lag/stalls: 405 (32.0%)

You are right, you are still getting significant rendering lag.

Switching your codec will not alleviate this. Rendering is performed before encoding. It is possible to have OBS record with ProRes by using custom FFMpeg output, but the rendering lag will still be present.

The bottom line is, no-- the specs of this machine are not particularly good for using OBS. The GPU is not particularly strong and does not have much memory. Because of the way OBS works, you may very well get acceptable performance in Wirecast but not in OBS. OBS is a video switcher and compositor, not primarily a screen recorder and is not designed to perform that singular task with maximum efficiency.
 

Narcogen

Active Member
For just screen recording, ScreenFlow, SnagIt or Camtasia. QuickTime Player can also do it.

However for this task, the limitation of your GPU isn't something that can be worked around. But a straight recorder like those above may likely perform better than a compositor like OBS, all other things being equal.
 

AAWW

New Member
Wait I'm trying to live stream with multiple cameras and also record the stream on a drive, I'm not trying to screen record anything. I'm not sure if we're talking about the same thing on this thread?
 
Top