OBS on Apple Silicon

Oops, failed to sign. I can't open it at this point.
If you are in a hurry, you can recreate the dmg with the following command.

Code:
split -b 80m obs-studio-27.2.0-beta2-ae4797f8c-macOS.dmg obs-studio-27.2.0.
cat obs-studio-27.2.0.* > obs-studio-27.2.0-beta2.dmg
 

StrayTexel

New Member

This one seems bad too.

1641824759416.png
 

StrayTexel

New Member
@callimeron: can you please share or point to the procedure and/or scripts you're utilizing to compile these packages?

I was able to combine an older OBS studio one with your recent NDI one and it worked well (clean, smooth video), except this version of NDI has the right-channel audio crackling bug. Was hoping to try an older version of the source.
 
@callimeron: can you please share or point to the procedure and/or scripts you're utilizing to compile these packages?
edited "full-build-macos.sh".

change line 219.
${CURLCMD} --progress-bar -L -C - -O https://cdn-fastly.obsproject.com/downloads/cef_binary_${1}_macos_x86_64.tar.xz

${CURLCMD} --progress-bar -L -C - -O https://cdn-fastly.obsproject.com/downloads/cef_binary_${1}_macos_${CURRENT_ARCH}.tar.xz

change line 221.
/usr/bin/tar -xf ./cef_binary_${1}_macos_x86_64.tar.xz
cd ./cef_binary_${1}_macos_x86_64

/usr/bin/tar -xf ./cef_binary_${1}_macos_${CURRENT_ARCH}.tar.xz
cd ./cef_binary_${1}_macos_${CURRENT_ARCH}

change line 277.
cmake -DENABLE_SPARKLE_UPDATER=ON \

cmake -DENABLE_SPARKLE_UPDATER=OFF \

change line 286.
-DCEF_ROOT_DIR="${DEPS_BUILD_DIR}/cef_binary_${MACOS_CEF_BUILD_VERSION:-${CI_MACOS_CEF_VERSION}}_macos_x86_64" \

-DCEF_ROOT_DIR="${DEPS_BUILD_DIR}/cef_binary_${MACOS_CEF_BUILD_VERSION:-${CI_MACOS_CEF_VERSION}}_macos_${CURRENT_ARCH}" \

change line 385.
/bin/cp -R "${DEPS_BUILD_DIR}/cef_binary_${MACOS_CEF_BUILD_VERSION:-${CI_MACOS_CEF_VERSION}}_macos_x86_64/Release/Chromium Embedded Framework.framework" ./OBS.app/Contents/Frameworks/

/bin/cp -R "${DEPS_BUILD_DIR}/cef_binary_${MACOS_CEF_BUILD_VERSION:-${CI_MACOS_CEF_VERSION}}_macos_${CURRENT_ARCH}/Release/Chromium Embedded Framework.framework" ./OBS.app/Contents/Frameworks/

insert line 232.
-DPROJECT_ARCH="arm64" \
 

Heals

New Member
Hi, great job on providing these - would some of the builds from yesterday still be available?

I don't care if they're not signed as everyone can literally resign them on their macs using
codesign -s - -f --deep OBS.app but currently the filestorage links return a "file has been deleted" ^^'
 

Heals

New Member
Thank you working just fine - is there any hardware encoder support for M1 so far? (found it, just had to toggle Output Mode to Advanced)

And for anyone that keeps seeing "This application is damaged" or "This application can't be opened because Apple cannot scan it for malicious software" - right click OBS.app and select "Open" from the context menu. It will once again warn you but this time you can chose to open the app anyway.

Should it still give you "This application is damaged" try to re-sign it (this will require you to download XCode from the appstore):

Code:
sudo codesign -s - -f --deep /Applications/OBS.app

If you get the same warning for any plugins you downloaded from here you can fix it by opening a terminal and executing:
Code:
sudo xattr -r -d com.apple.quarantine "/Library/Application Support/obs-studio"

That last step will probably be required for any manual updates you install too.
 
Last edited:

StrayTexel

New Member
To those who have successfully implemented NDI compiled for M1: I'm hitting a snag, where my M1-compiled obs-ndi.so is causing my M1-compiled OBS to crash at startup:

15:19:44.205: [obs-ndi] hello ! (version 4.9.1)
15:19:44.205: [obs-ndi] Trying ''
15:19:44.205: [obs-ndi] Trying '/usr/lib'
15:19:44.205: [obs-ndi] Trying '/usr/local/lib'
15:19:44.205: [obs-ndi] Found NDI library at '/usr/local/lib/libndi.4.dylib'
15:19:44.205: [obs-ndi] Can't find the NDI library

This libndi.4.dylib is coming from the original packaged runtime (ndi-runtime-4.5.1-macOS.pkg), which I suspect is the issue. What libndi.4.dylibs have been successful for you guys?
 

StrayTexel

New Member
To those who have successfully implemented NDI compiled for M1: I'm hitting a snag, where my M1-compiled obs-ndi.so is causing my M1-compiled OBS to crash at startup:

15:19:44.205: [obs-ndi] hello ! (version 4.9.1)
15:19:44.205: [obs-ndi] Trying ''
15:19:44.205: [obs-ndi] Trying '/usr/lib'
15:19:44.205: [obs-ndi] Trying '/usr/local/lib'
15:19:44.205: [obs-ndi] Found NDI library at '/usr/local/lib/libndi.4.dylib'
15:19:44.205: [obs-ndi] Can't find the NDI library

This libndi.4.dylib is coming from the original packaged runtime (ndi-runtime-4.5.1-macOS.pkg), which I suspect is the issue. What libndi.4.dylibs have been successful for you guys?
UPDATE: I tried swapping-in (and renaming) the dylib from the NDI 5 package, and that changed the log to this:


15:43:06.339: [obs-ndi] hello ! (version 4.9.1)
15:43:06.339: [obs-ndi] Trying ''
15:43:06.339: [obs-ndi] Trying '/usr/lib'
15:43:06.339: [obs-ndi] Trying '/usr/local/lib'
15:43:06.339: [obs-ndi] Found NDI library at '/usr/local/lib/libndi.4.dylib'
15:43:06.341: [obs-ndi] NDI runtime loaded successfully
15:43:06.341: [obs-ndi] NDI library initialized successfully (NDI SDK APPLE 12:24:55 Nov 2 2021 5.0.10)

However, OBS is still crashing with the obs-ndi.so plugin present. Any ideas?
 

StrayTexel

New Member
edited "full-build-macos.sh".

change line 219.
${CURLCMD} --progress-bar -L -C - -O https://cdn-fastly.obsproject.com/downloads/cef_binary_${1}_macos_x86_64.tar.xz

${CURLCMD} --progress-bar -L -C - -O https://cdn-fastly.obsproject.com/downloads/cef_binary_${1}_macos_${CURRENT_ARCH}.tar.xz

change line 221.
/usr/bin/tar -xf ./cef_binary_${1}_macos_x86_64.tar.xz
cd ./cef_binary_${1}_macos_x86_64

/usr/bin/tar -xf ./cef_binary_${1}_macos_${CURRENT_ARCH}.tar.xz
cd ./cef_binary_${1}_macos_${CURRENT_ARCH}

change line 277.
cmake -DENABLE_SPARKLE_UPDATER=ON \

cmake -DENABLE_SPARKLE_UPDATER=OFF \

change line 286.
-DCEF_ROOT_DIR="${DEPS_BUILD_DIR}/cef_binary_${MACOS_CEF_BUILD_VERSION:-${CI_MACOS_CEF_VERSION}}_macos_x86_64" \

-DCEF_ROOT_DIR="${DEPS_BUILD_DIR}/cef_binary_${MACOS_CEF_BUILD_VERSION:-${CI_MACOS_CEF_VERSION}}_macos_${CURRENT_ARCH}" \

change line 385.
/bin/cp -R "${DEPS_BUILD_DIR}/cef_binary_${MACOS_CEF_BUILD_VERSION:-${CI_MACOS_CEF_VERSION}}_macos_x86_64/Release/Chromium Embedded Framework.framework" ./OBS.app/Contents/Frameworks/

/bin/cp -R "${DEPS_BUILD_DIR}/cef_binary_${MACOS_CEF_BUILD_VERSION:-${CI_MACOS_CEF_VERSION}}_macos_${CURRENT_ARCH}/Release/Chromium Embedded Framework.framework" ./OBS.app/Contents/Frameworks/

insert line 232.
-DPROJECT_ARCH="arm64" \

This worked well, thanks! When you compiled NDI, did you have to make any similar modifications or tweaks?
 
This installed cleanly and doesn't appear to have that right-channel audio bug that I mentioned previously (which is suprising, as I thought both were 4.9.1). Thank you! Can you please share your recipe for this one? Your recipe for obs-studio worked well for me.
I built it like this.
Code:
git clone https://github.com/Palakis/obs-ndi.git
cd obs-ndi
git checkout "4.9.1"
cmake -DLIBOBS_INCLUDE_DIR=../obs-studio/libobs \
 -DLIBOBS_LIB=../obs-studio/libobs \
 -DOBS_FRONTEND_LIB=/Applications/OBS.app/Contents/Frameworks/libobs-frontend-api.dylib \
 -DQTDIR=/tmp/obsdeps \
 -DCMAKE_OSX_ARCHITECTURES=arm64 \
 -B build .
cmake --build build --config Release
packagesbuild ./installer/obs-ndi.pkgproj
 

Classicmac

New Member
Yes, I was able to get that working by just dropping the "audio-monitor.plugin" file directly in the plugins folder mentioned previously. Seems to work no problem.

Unfortunately, I don't know why the streamdeck plugin isn't working the same way.

I copied the plugin in to /Library/Application Support/obs-studio/plugins/. Then I launched OBS and got the security error. I then ran 'xattr -d com.apple.quarantine /Library/Application\ Support/obs-studio/plugins/StreamDeckPlugin/bin/StreamDeckPlugin.so' and restarted OBS. Then the Stream Deck started working.
 

StrayTexel

New Member
I copied the plugin in to /Library/Application Support/obs-studio/plugins/. Then I launched OBS and got the security error. I then ran 'xattr -d com.apple.quarantine /Library/Application\ Support/obs-studio/plugins/StreamDeckPlugin/bin/StreamDeckPlugin.so' and restarted OBS. Then the Stream Deck started working.

I was able to do the same, except I just opened the binary with VsCode (didn't display anything of course) via right click -> open. That cleared the file.
 

StrayTexel

New Member
A new problem that I discovered is that Bar Raider's famous "Obs Tools" plugin for StreamDeck is only compiled for Windows (he doesn't own a Mac). Since StreamDeck is still running on rosetta (and it actually seems to run fine, which is not true for Obs), I assume we'd want to compile it for MacOS but x86_64?

Anyone know how to do this? The repo is here: https://github.com/BarRaider/streamdeck-obstools
 

anderkh

New Member
Hello all! I have successfully compiled the obs-websocket plugin, but can't figure out where to put it. The CI scripts in the project use packagesbuild that I can't seem to find. I've tried putting the .so in a few places in OBS, but the Tools menu never shows the configuration page. Any ideas? Thank you!
 

StrayTexel

New Member
So apparently BarRaider's Streamdeck Websocket tool doesn't work with websocket 5.0 and above. Has anyone had success with callimeron's build of obs-websocket 4.9.1? I can install it fine, but his M1 compile of OBS can't see it for some reason. Conversely, his obs-websocket 5.0 build works just fine. Looks like 4.9.1 is missing something (libobs)?

5.0:


15:37:20.854: [obs-websocket] [obs_module_load] you can haz websockets (Version: 5.0.0 | RPC Version: 1)
15:37:20.854: [obs-websocket] [obs_module_load] Qt version (compile-time): 5.15.2 | Qt version (run-time): 5.15.2
15:37:20.854: [obs-websocket] [obs_module_load] Linked ASIO Version: 101201
15:37:20.859: [obs-websocket] [obs_module_load] Module loaded.


4.9.1:

15:34:18.559: os_dlopen(/Library/Application Support/obs-studio/plugins/obs-websocket/bin/obs-websocket.so->/Library/Application Support/obs-studio/plugins/obs-websocket/bin/obs-websocket.so): dlopen(/Library/Application Support/obs-studio/plugins/obs-websocket/bin/obs-websocket.so, 0x0101): Library not loaded: @rpath/libobs.framework/Versions/A/libobs
15:34:18.559: Referenced from: /Library/Application Support/obs-studio/plugins/obs-websocket/bin/obs-websocket.so
15:34:18.559: Reason: tried: '/Applications/OBS.app/Contents/MacOS/../Frameworks/libobs.framework/Versions/A/libobs' (no such file), '/Applications/OBS.app/Contents/MacOS/../Frameworks/libobs.framework/Versions/A/libobs' (no such file), '/Applications/OBS.app/Contents/MacOS/../Frameworks/libobs.framework/Versions/A/libobs' (no such file), '/Applications/OBS.app/Contents/MacOS/../Frameworks/libobs.framework/Versions/A/libobs' (no such file), '/Library/Frameworks/libobs.framework/Versions/A/libobs' (no such file), '/System/Library/Frameworks/libobs.framework/Versions/A/libobs' (no such file)
15:34:18.559:
15:34:18.559: Module '/Library/Application Support/obs-studio/plugins/obs-websocket/bin/obs-websocket.so' not loaded
 
Top