Question / Help My new Mac can't handle animated overlays..

hoffsiderunner

New Member
I just bought a new iMac. (21,5 inch 4k Retina, 3 Ghz 6-core intel Core i5, 8GB 2667 MHz DDR4, Radeon Pro 560x 4GB)
But its a lot of lag when im using animated alerts and the cpu is around 25-35% when im using animated overlays. I also using a stinger transition. its working okey if im using PNG overlays but sometimes the stinger transition doesn't finish and just cuts.

Cant my Mac handle the animated stuff or am I doing something wrong?
or do u guys know any instructions video how to? I want it to be easy that's why im using a Mac.
 

Narcogen

Active Member
Using a Mac will make most tasks easier, but working with OBS harder, unfortunately. OBS on MacOS is comparatively less performant, less reliable, and has fewer features (on balance) than running in Windows, even on the same hardware.

Given announced changes to the OS by Apple I expect this may get worse before it gets better.
 

hoffsiderunner

New Member
Using a Mac will make most tasks easier, but working with OBS harder, unfortunately. OBS on MacOS is comparatively less performant, less reliable, and has fewer features (on balance) than running in Windows, even on the same hardware.

Given announced changes to the OS by Apple I expect this may get worse before it gets better.


Oh my.. thanks for the answer bud.
 

MoveGraph

New Member
Hi, what kind of format file are you using for the transitions?

I just bought a new iMac. (21,5 inch 4k Retina, 3 Ghz 6-core intel Core i5, 8GB 2667 MHz DDR4, Radeon Pro 560x 4GB)
But its a lot of lag when im using animated alerts and the cpu is around 25-35% when im using animated overlays. I also using a stinger transition. its working okey if im using PNG overlays but sometimes the stinger transition doesn't finish and just cuts.

Cant my Mac handle the animated stuff or am I doing something wrong?
or do u guys know any instructions video how to? I want it to be easy that's why im using a Mac.
 
D

Deleted member 166350

Maybe we need an updated PSA around here or something, because many issues are either unsolvable (because Apple denies access to APIs necessary) or require big rewrites that hinge on 1-2 people on the team that are willing to do macOS support (and bear the brunt of Apple's "let's deprecate something every year" pacing).

This includes but is not limited to:
  • VERY IMPORTANT: OBS is a multi platform app. Once an application uses non-Apple frameworks (e.g. Qt), you are fully dependent on that third party keeping up with all of Apple's changes and breakages.

    Apple is also not entirely transparent about what is broken in macOS and might be fixed.

    As such application developers that don't limit themselves to a "native" macOS app usually have to play catch-up with all those deprecations, breaking changes, etc.

    So if something doesn't work right in the macOS version of OBS, it's usually down to:
    • Apple either having removed an API for such functionality or never having developed such an API in the first place
    • Apple deprecated healthy platform-independent frameworks in favor of their own (see "Metal" below)
    • Apple not considering OBS' use case (capturing output of an application) as desirable, probably even considering its functionality a security risk
  • Apple VT H264 being limited to ABR (average bit rate) encoding, because that's the only thing Apple allows you to do with a VTCompressionSession (or, more precisely, there is no kVTCompressionPropertyKey_ConstantBitRate compression property that would expose this.
    • There's also no way to select which hardware encoding VideoToolbox will use (probably QuickSync on most modern Intel CPUs)
    • Also "Limit Bitrate" sets an upper limit, but there is no way to set a lower limit to "fake" CBR
    • As such the VT encoder is pretty decent for high-bitrate recording (e.g. at 30mbit) and _maybe_ YouTube streaming (I had weird frame flickering every 2 seconds and encoder issues with it though) and a source of endless frustration for Twitch streaming
  • There is no hardware acceleration for browser sources right now (IIRC even CEF struggles with that one), so animated overlays will eat quite a lot of CPU, even when using super-efficient frameworks such as Velocity.js.
  • There is no way to record system-audio out-of-the-box, because macOS doesn't allow this. System extensions such as iShowU audio capture are needed that route system output into a "fake" input device.
  • Apple deprecated OpenGL some macOS version ago, no updates to the drivers are available and macOS developers are encouraged to use Metal. This means that OBS will need to implement a Metal rendering path before Apple drops OpenGL-support entirely (but might yield better app-performance). A branch including Metal-support is in the works, but judging by the last commits (or code comments in those commits), it's not an enjoyable experience.. ;)
  • With the introduction of system integrity protection (SIP) injecting Syphon into applications doesn't work anymore, so Syphon can't be used to capture the frames of an application. An application using Metal also can't be captured even with SIP off, as Syphon hasn't officially implemented Metal-support yet (there are forks that do, but none of that work has been integrated for over a year)
    • Since Catalina there is a dedicated permission for screen recording, but this represents "display capture" and no way to capture specific applications frames.
  • OBS supports VSTs but not Apple's "Audio Units" (AUs), so many built-in Quartz plugins are not available as VSTs, but will show up in other video or audio applications
  • Plugins using shared Qt plugins need to be built against the same versions, otherwise they won't load. Before updating OBS, check if there are updates for your needed plugins as well (the NDI and websocket plugins suffer from this sometimes, but Palakis fixes this often within the same 1-2 days).
  • In general OBS eats more CPU on macOS than on Windows, so there might be less headroom for more demanding x264 settings. The "veryfast" preset is a good compromise for streaming when limiting canvas and output to 720p (as this will reduce encoder load _and_ rendering load for the final scene).
Anything I forgot or misrepresented? I love working on macOS and I love my Apple devices, but when it comes to OBS, it's "death by a thousand deprecations".
 

Narcogen

Active Member
No support for NVENC.

This is an obvious one but there are always new people finding out about OBS and assuming the Mac version can do everything the Windows version can.
 
D

Deleted member 166350

No support for NVENC.

This is an obvious one but there are always new people finding out about OBS and assuming the Mac version can do everything the Windows version can.
True, I _kinda_ hoped that this could be included via "macOS abstracts all this behind Videotoolbox", but you're right, it warrants mention specifically.
 
Top