Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apple M1 CPU #590

Closed
ReallyBigEthan opened this issue Nov 19, 2020 · 100 comments
Closed

Apple M1 CPU #590

ReallyBigEthan opened this issue Nov 19, 2020 · 100 comments

Comments

@ReallyBigEthan
Copy link

Hello,

I have been using NDI for Windows for a while. I decided to get the new MacBook with M1 since it seems to be a really powerful computer. However, I cannot get the NDI runtime/plugin to work with OBS. OBS works perfectly fine, but it cannot detect the NDI plugin/runtime. I suspect this is because of Rosetta, but I am not experience with this at all. Is there anything I can do to make this work, or is there plans to support the Apple Silicon?

Thanks!

Edit: Dug into it a little further. It appears the only issue may be that the CPU is "unsupported". So I don't know if there is anything I can do to bypass that, or if we can include the Apple M1 CPU in the next version.

@ReallyBigEthan
Copy link
Author

22:06:04.066: CPU Name: VirtualApple @ 2.50GHz processor
22:06:04.066: CPU Speed: 2400MHz
22:06:04.066: Physical Cores: 8, Logical Cores: 8
22:06:04.066: Physical Memory: 8192MB Total
22:06:04.067: OS Name: Mac OS X (NSMACHOperatingSystem)
22:06:04.067: OS Version: Version 10.16 (Build 20B29)
22:06:04.067: Kernel Version: 20.1.0
22:06:04.097: hotkeys-cocoa: Using layout 'com.apple.keylayout.US'
22:06:04.098: Portable mode: false
22:06:04.322: OBS 26.0.2 (mac)
22:06:04.322: ---------------------------------
22:06:04.324: ---------------------------------
22:06:04.324: audio settings reset:
22:06:04.324: samples per sec: 48000
22:06:04.324: speakers: 2
22:06:04.377: ---------------------------------
22:06:04.377: Initializing OpenGL...
22:06:05.045: Loading up OpenGL on adapter Apple Apple M1
22:06:05.045: OpenGL loaded successfully, version 4.1 Metal - 70.12.7, shading language 4.10
22:06:05.126: ---------------------------------
22:06:05.126: video settings reset:
22:06:05.126: base resolution: 1920x1080
22:06:05.126: output resolution: 1280x720
22:06:05.126: downscale filter: Bicubic
22:06:05.126: fps: 60/1
22:06:05.126: format: NV12
22:06:05.126: YUV mode: 709/Partial
22:06:05.126: NV12 texture support not available
22:06:05.140: Audio monitoring device:
22:06:05.140: name: Default
22:06:05.140: id: default
22:06:05.140: ---------------------------------
22:06:05.186: Failed to load 'en-US' text for module: 'decklink-ouput-ui.so'
22:06:06.959: A DeckLink iterator could not be created. The DeckLink drivers may not be installed
22:06:06.959: No blackmagic support
22:06:07.148: [VideoToolbox encoder]: Adding VideoToolbox H264 encoders
22:06:08.400: [obs-browser]: Version 2.8.7
22:06:08.637: Failed to load 'en-US' text for module: 'obs-ndi.so'
22:06:08.638: [obs-ndi] hello ! (version 4.9.0)
22:06:08.638: [obs-ndi] Trying ''
22:06:08.638: [obs-ndi] Trying '/usr/lib'
22:06:08.638: [obs-ndi] Trying '/usr/local/lib'
22:06:08.638: [obs-ndi] Found NDI library at '/usr/local/lib/libndi.4.dylib'
22:06:08.700: [obs-ndi] NDI runtime loaded successfully
22:06:08.700: [obs-ndi] CPU unsupported by NDI library. Module won't load.
22:06:08.700: Failed to initialize module 'obs-ndi.so'
22:06:08.892: os_dlopen(/Applications/VLC.app/Contents/MacOS/lib/libvlccore.dylib->/Applications/VLC.app/Contents/MacOS/lib/libvlccore.dylib): dlopen(/Applications/VLC.app/Contents/MacOS/lib/libvlccore.dylib, 257): image not found
22:06:08.892:
22:06:08.892: Couldn't find VLC installation, VLC video source disabled
22:06:08.914: [obs-ndi] hello ! (version 4.9.0)
22:06:08.914: [obs-ndi] Trying ''
22:06:08.914: [obs-ndi] Trying '/usr/lib'
22:06:08.914: [obs-ndi] Trying '/usr/local/lib'
22:06:08.914: [obs-ndi] Found NDI library at '/usr/local/lib/libndi.4.dylib'
22:06:08.914: [obs-ndi] NDI runtime loaded successfully
22:06:08.914: [obs-ndi] CPU unsupported by NDI library. Module won't load.
22:06:08.914: Failed to initialize module 'obs-ndi.so'

@seanswee
Copy link

seanswee commented Nov 23, 2020

Had this same issue. OBS seems to work just fine but while the NDI plugin and runtime will install successfully NDI sources will not show up as a selectable item. Looking forward to an update for M1 processors!

@mdg4486
Copy link

mdg4486 commented Nov 25, 2020

I am having the same issue. I can't even get the plugin to show up in OBS.

@Trouffman
Copy link
Collaborator

Apple M1 CPU seems not comaptible with required instruction to have a workin NDI function.

This might work at some point as there are content for ARM instruction set in the SDK. and some folks managed to get decoding working on RaspberryPi.

This is an excerpt of the NDI SDK Documentation :
"11 CPU REQUIREMENTS
NDI Lib is heavily optimized (much of it is written in assembly). While it detects available architecture and uses the best path it can, the minimum required SIMD level is SSSE3 (introduced by Intel in 2005). Hardware acceleration of streams uses GPU-based fixed function pipelines for decompression to the degree possible; however this is not required, and we will always fall back to software-based compression and decompression.
Current codecs detect the CPU type at run-time and select the best codec implementation based on the system’s capabilities. Current software paths include SSSE3, SSE4, AVX and AVX2 (with and without VEX instructions). Hardware acceleration for certain codecs is now present on Windows and Mac OS, and is supported on Intel, AMD and nVidia based systems."

Apple M1 is not x86 and does NOT carry SSE3 natively (IIRC)

Another discussion about this on Reddit : https://www.reddit.com/r/VIDEOENGINEERING/comments/k0exne/ndi_support_for_m1_chip/

@mdg4486
Copy link

mdg4486 commented Nov 29, 2020

According to Newtek, Rosetta allows full functionality with NDI minus one little bug in their Scan Converter tool.

Source: https://forums.newtek.com/showthread.php/163559-Apple-M1-Chip-Compatability

I've also experienced other platforms and software providers still functioning properly even with the M1 Chip.

It seems as if the plugin should be debugged first to sort out why OBS cannot even see the plugin after installation before determining if it works or not.

@zmh123666
Copy link

same issue here. Took a while to discover this problem.

@Trouffman
Copy link
Collaborator

Trouffman commented Nov 29, 2020

If that is the case then this would explain :
[obs-ndi] CPU unsupported by NDI library. Module won't load.
Failed to initialize module 'obs-ndi.so'

Result : This will prevent the plugin from loading.

Where to look ?
The error is triggered when initializing the library (!ndilib->initialize) which down the drain call for : NDIlib_is_supported_CPU

In the NDI lib it is shown : https://github.com/Palakis/obs-ndi/blob/adcf4f09acd02cf355c7f9a2541232adbb480d1a/lib/ndi/Processing.NDI.Lib.h#L107-L113
"In general it is more "correct" to call these although it is not required."
"This will return false if the CPU is not sufficiently capable to run NDILib"

Easy fix ?
Skip this call on M1 based system. but would need to update the plugin once the official support is added by the Newtek folks.

Doing so, it should be fine according to the NDI SDK Documentation (Section 14.)

"STARTUP AND SHUTDOWN
The commands NDIlib_initialize() and NDIlib_destroy()can be called to initialize or de-initialize the library. Although never absolutely required, it is recommended that you call these. (Internally all objects are reference-counted; the libraries are initialized on the first object creation and destroyed on the last, so these calls are invoked implicitly.)

The only negative side-effect of this behavior is that – if you repeatedly create and destroy a single object – more work is done each time than is required. These calls allow that to be avoided.

There is no scenario under which these calls can cause a problem, even if you call NDIlib_destroy() while you still have active objects. NDIlib_initialize() will return false on an unsupported CPU."

Proper Fix ?

At module load > Alert the user that the CPU used is not supported by the NDI SDK, prompt the user 2 choices:

  1. Continue without OBS-NDI plugin
  2. "I still want to activate this plugin." with a disclaimer "Running plugin on unsupported CPU might create unstability and no support is provided" > Add a line in the log to keep track of this.

@pedrodaroza
Copy link

Any way to make it work? We upgraded to the new MacBooks last week and this is the only thing making us hold the old computers

@mdg4486
Copy link

mdg4486 commented Dec 4, 2020

Any way to make it work? We upgraded to the new MacBooks last week and this is the only thing making us hold the old computers

It's not ideal BUT you can download the NDISyphon plugin which will be able to find your NDI sources and then converts them to Syphon clients. In OBS you would just pull these in using the Syphon source option.

I do plenty of testing with this before utilizing it in a stream but it should work. Hope this helps.

@Boonzen
Copy link

Boonzen commented Dec 5, 2020

Does anybody find the solution of this problem?

@pedrodaroza
Copy link

pedrodaroza commented Dec 5, 2020 via email

@phmkeith
Copy link

phmkeith commented Dec 8, 2020

Any idea when this will be fixed?

@PasqualeTomaiuolo
Copy link

Still can’t make it work. I’m thinking about using another streaming app that works ok on Rosetta and whenever we get an answer on how to make NDI work on M1, move back to OBS :(

On Sat, Dec 5, 2020 at 12:05 PM Boonzen @.***> wrote: Dose any body find the solution of this problem? — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#590 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMGZN4N4QNJRVXU5SRVDTI3STJR4VANCNFSM4T35VORQ .

Can you tell us what are you using to temporarily replace OBS?

@mikesia19
Copy link

Same issue here! So frustrating.. :(

Waiting for the update!

@mdg4486
Copy link

mdg4486 commented Dec 16, 2020

At some point someone may have to fork this plugin. Just taking a look at the issues posted here it's very apparent that they aren't being addressed.

@builes14
Copy link

Please fix this. I am about to return my macbook m1. :( I dont think they will fix it.

@ginshee
Copy link

ginshee commented Dec 17, 2020

So frustrating. OBS is useless to me on the m1 Mac air.

@paulfalgout
Copy link

This is an issue with newtek not returning that the cpu is supported with rosetta and not this library specifically. When newtek fixes that issue, this lib should work fine.

@mdg4486
Copy link

mdg4486 commented Dec 17, 2020

This is an issue with newtek not returning that the cpu is supported with rosetta and not this library specifically. When newtek fixes that issue, this lib should work fine.

Have you talked to Newtek directly about this? I have and they are indicating that NDI is working with Rosetta but some developers are having to make some adjustments to get it working properly.

The problem is this:
Any developer using the PROPER ORIGINAL recommendation from the SDK (section 14 of the NDI SDK Doc) will not initialize on M1 CPU.

Any developer that bypass the recommended way of initializing will have a working set on seemingly "unsupported" CPUs.

They have recently updated their NDI SDK documents to reflect this. It's now up to developers to make the fix.

@builes14
Copy link

Another day no solution. Feel bad for the new mac owners with M1.

@pedrodaroza
Copy link

pedrodaroza commented Dec 18, 2020 via email

@builes14
Copy link

would this have some delay on the stream?

””” My wife and I are using a temporary solution. We both bought the new macbook air and we do a daily live streaming where she need her computer to read news and send her screen to my computer. On my mba I have 2 camera inputs via a $15 dollar HDMI adapter and we used to use NDI to get her screen. As we had a apple tv 3rd gen not being used at the moment, I bought another HDMI adapter and connected the apple tv to my macbook. Now she just needs to mirror her screen to the apple tv. I have to say that for our livestream this new solution works flawlessly. Of course it’s not ideal, as we need to use more equipment… but we might continue using it even if NDI plugin comes back to the M1 processors.
”””

@pedrodaroza
Copy link

pedrodaroza commented Dec 18, 2020 via email

@Trouffman
Copy link
Collaborator

Another day no solution. Feel bad for the new mac owners with M1.

Please understand that this plugin is a volunteer-based developement. And this is the typical problem that you can run into when being a "early-adopter" (in this case jumping the gun on a new product with a new architecture and expecting the world to adapt to it).

A fix has been proposed here : #590 (comment)

But unless someone pick it up and implement it or you pay someone to develop and implement it. There is no guarantee this is gonna be implemented nor when it will be implemented.

It can be frustrating when things are not fully working but there is no point in commenting every week about the issue and fact it is "not yet fixed", rather than complaining to apple that theey switched architecture.

@Ruben-C
Copy link

Ruben-C commented Dec 21, 2020

The thought of #590 (comment) gets past the first roadblock. Another snag soon follows.

https://github.com/Palakis/obs-ndi/blob/adcf4f09acd02cf355c7f9a2541232adbb480d1a/src/obs-ndi.cpp#L141-L147

Line 142 when it tries to create OutputSettings we get an actual crash.

@paulfalgout
Copy link

The bug is absolutely in the NDI SDK. If the m1 is supported then NDIlib_is_supported_CPU should return true for the m1. It's unreasonable to require that the 100s of libraries that use this SDK work around this issue, particularly at the sake of causing more issues and headaches elsewhere. And I highly doubt that it is Newtek's intentions to ignore this issue entirely despite some random dude "talking with them" and quoting something he saw on an ndi forum.

It might be worth getting ahead of a newtek patch to work around this issue. FWIW though it looks like Newtek released 4.6 less than a month ago NDI 2020-12-01 r119642 v4.6.0, but I don't see anything specific about the m1. So perhaps it's possible an m1 fix made this release, but it's also likely a 4.6.1 would be in the near future. FWIW this lib ships with 4.5.1 and there's been multiple versions since then.. has anyone tried this with 4.6 or 4.5.2-5?

In any case, if you want to complain about this lib specifically, you should probably be listed on this page: https://github.com/sponsors/Palakis

@Trouffman
Copy link
Collaborator

Trouffman commented Dec 21, 2020

The thought of #590 (comment) gets past the first roadblock. Another snag soon follows.

https://github.com/Palakis/obs-ndi/blob/adcf4f09acd02cf355c7f9a2541232adbb480d1a/src/obs-ndi.cpp#L141-L147

Line 142 when it tries to create OutputSettings we get an actual crash.

Thanks for testing it out :)

@paulfalgout
Copy link

After speaking with Andrew at newtek he said, "I can confirm that we do plan on supporting the M1 platform soon. We had hoped that it would be this year, but it looks more like it is going to be early next ... but regardless we do expect to have it."

On that schedule it's probably easier to assume an update to 4.7 rather than chasing down supporting rosetta here. That said, I've only ever downloaded the runtime from this repo. Is there an easy place to direct people to download a new runtime? Is it part of the tools or will someone need to compile it? We could at least test 4.6 for compatibility. I don't know if newtek is following semver?

@builes14
Copy link

No updates yet I have look in every website and have found nothing.

@SafeerHafiz
Copy link

Any news on this?

@rjhornsby
Copy link

I’m not entirely sure why, but copying the ndi library didn’t work. OBS would immediately crash, the error indicating a code signing problem with the library.

Finally symlinked the library in /usr/local/lib to the original in the NDI application bundle, which solved the problem. Almost as if there’s something shipped in the application bundle needed to verify the library, rather than the library being a self-contained unit.

@Liebeschip
Copy link

It worked on my M1 when I used the Finder to move the files. It did not work when I did it by terminal

@unsoluble
Copy link

Anyone else get the plugin installed okay, the library symlinked (or copied), the NDI source is available as expected in OBS, but every NDI-connected source is just a black screen? Wondering if that's a different problem, or part of the same issue here.

@FrankDrebinPD
Copy link

I signed up here just to say thank you for this solution. I would never have figured it out myself and you saved me a lot of grief.

@anthoncir
Copy link

I am not as concerned with NDI inputs as much as having NDI show up in my OBS Tools so I can use it as the video source in Zoom

@marcelomoyano
Copy link

marcelomoyano commented Mar 12, 2021 via email

@coranovoa
Copy link

coranovoa commented Mar 18, 2021

It worked this trick for OBS Studio & Streamlabs OBS, but the problem now with Streamlabs OBS is when you select the source, it totally crashed and the program closed :(

@marcelomoyano
Copy link

marcelomoyano commented Mar 18, 2021 via email

@coranovoa
Copy link

@marcelomoyano I didn't try it sorry :(

@rgaufman
Copy link

rgaufman commented Mar 20, 2021

I did:

brew install obs-ndi

However when I open OBS, I don't see the option "Tools -> NDI Output"

The plugin is installed here:

/System/Volumes/Data/Library/Application Support/obs-studio/plugins/obs-ndi/bin/obs-ndi.so

Any ideas?

@bufanda
Copy link

bufanda commented Mar 20, 2021

@rgaufman you should provide mir information than you gave. Maybe take a look in the logs of OBS and look for error messages. But I would guess you face the same problem most here have and take a look at #631 too.

@rgaufman
Copy link

rgaufman commented Mar 20, 2021

Ah, it shows this:

$  /Applications/OBS.app/Contents/MacOS/obs 2>&1 | grep -i ndi
warning: Failed to load 'en-GB' text for module: 'obs-ndi.so'
info: [obs-ndi] hello ! (version 4.9.0)
info: [obs-ndi] Trying ''
info: [obs-ndi] Trying '/usr/lib'
info: [obs-ndi] Trying '/usr/local/lib'
info: [obs-ndi] Found NDI library at '/usr/local/lib/libndi.4.dylib'
info: [obs-ndi] NDI runtime loaded successfully
error: [obs-ndi] CPU unsupported by NDI library. Module won't load.
warning: Failed to initialize module 'obs-ndi.so'
info:     obs-ndi.so

@rgaufman
Copy link

rgaufman commented Mar 20, 2021

Ah thank you, this helped! <

$  sudo mv /usr/local/lib/libndi.4.dylib /usr/local/lib/libndi.4.dylib.bak
$  sudo cp /Applications/'NewTek NDI Video Monitor.app'/Contents/Frameworks/libndi.4.dylib /usr/local/lib/
$  /Applications/OBS.app/Contents/MacOS/obs 2>&1 | grep -i ndi
warning: Failed to load 'en-GB' text for module: 'obs-ndi.so'
info: [obs-ndi] hello ! (version 4.9.0)
info: [obs-ndi] Trying ''
info: [obs-ndi] Trying '/usr/lib'
info: [obs-ndi] Trying '/usr/local/lib'
info: [obs-ndi] Found NDI library at '/usr/local/lib/libndi.4.dylib'
info: [obs-ndi] NDI runtime loaded successfully
info: [obs-ndi] NDI library initialized successfully (NDI SDK APPLE 18:44:47 Jan 28 2021 4.6.1)
objc[3227]: Class AVFFrameReceiver is implemented in both /Applications/OBS.app/Contents/Frameworks/libavdevice.58.dylib (0x4a5ddfd8) and /Library/Application Support/NewTek/NDI/HX_Driver/libavdevice-ndi.58.dylib (0x4e9e9fd0). One of the two will be used. Which one is undefined.
objc[3227]: Class AVFAudioReceiver is implemented in both /Applications/OBS.app/Contents/Frameworks/libavdevice.58.dylib (0x4a5de028) and /Library/Application Support/NewTek/NDI/HX_Driver/libavdevice-ndi.58.dylib (0x4e9ea020). One of the two will be used. Which one is undefined.
info:     obs-ndi.so

@rgaufman
Copy link

rgaufman commented Mar 20, 2021

Heads up, NDI does not show up as a video source in new native M1 versions of zoom :( - you have to downgrade to the Intel version of Zoom to see NDI as a video source. NDI works as an audio source however.

There is discussion about it here: https://forums.newtek.com/threads/ndi-virtual-input-mac-not-working-in-zoom-for-m1-and-microsoft-teams-run-on-m1.163734/

@giacomogaudenzi
Copy link

Its working now. I wish i could explain why.
The sudo command would result in OBS crashing. I'd copied by hand before.
In the end it seemed to be order of execution:

fresh OBS copy, start and get warning that runtime isnt installed.
install runtime (which placed an older version of libndi.4.dylib in /usr/local/
replace at top level using "open enclosed folder" and "go to" finder commands.

YMMV

Sorry, I really don't get it... Where is /usr/local/??? Thanks so much

@LEGION1TE
Copy link

Hello,

I have been using NDI for Windows for a while. I decided to get the new MacBook with M1 since it seems to be a really powerful computer. However, I cannot get the NDI runtime/plugin to work with OBS. OBS works perfectly fine, but it cannot detect the NDI plugin/runtime. I suspect this is because of Rosetta, but I am not experience with this at all. Is there anything I can do to make this work, or is there plans to support the Apple Silicon?

Thanks!

Edit: Dug into it a little further. It appears the only issue may be that the CPU is "unsupported". So I don't know if there is anything I can do to bypass that, or if we can include the Apple M1 CPU in the next version.

I found a fix! I followed a video (Spanish) and it worked!
https://youtu.be/oHJHM6DMNJ4

For those who don't speak Spanish, the video has you download OBS Studio, the NDI Plugin, and NewTek's "NewTek NDI Video Monitor" (I personally downloaded the whole tool package).

Once those are all downloaded and installed, Go to "Applications" in Finder and right clicking on the Video Monitor app...

Show Package Content > Contents > Frameworks

then open a second Finder Window and on the Menu Bar, click...

Go > Go to Folder
and enter...
/usr/local/lib/

Now with both Finder windows open, hold down the command button and drag the "libndi.4.dylib" file into the "lib" folder. (make sure to move the file by holding command and not just making an alias, or it won't work)

Once the "libndi.4.dylib" file is in the "lib" folder, restart the mac and it should work.

Happy Streaming All!!

@leafac
Copy link

leafac commented Apr 21, 2021

To prevent y’all from having to jump through the hoops, here’s the file you’ll need: libndi.4.dylib.zip

@haroonjameel
Copy link

haroonjameel commented Apr 23, 2021

im stuck at this screen. Iv selected in OBS Link but still no good. Im Using Elgato HD60S
Screen Shot 2021-04-23 at 2 22 17 PM

@strandboy
Copy link

strandboy commented May 17, 2021

Heads up, NDI does not show up as a video source in new native M1 versions of zoom :( - you have to downgrade to the Intel version of Zoom to see NDI as a video source. NDI works as an audio source however.

The final step I needed - thank you. Downgrading zoom oddly fixes all kinds of problems from time to time.

This will at least allow me to limp along until the rest of the pieces catch up on M1.

@tobsn
Copy link

tobsn commented May 23, 2021

hey! tried this fix on M1 pro with a HD60S and connected to a gopro - it always asks to select a capture device... the hd60s shows up in obs link and works fine on my old intel mbp.

@jmantaiwan
Copy link

Hello,
I have been using NDI for Windows for a while. I decided to get the new MacBook with M1 since it seems to be a really powerful computer. However, I cannot get the NDI runtime/plugin to work with OBS. OBS works perfectly fine, but it cannot detect the NDI plugin/runtime. I suspect this is because of Rosetta, but I am not experience with this at all. Is there anything I can do to make this work, or is there plans to support the Apple Silicon?
Thanks!
Edit: Dug into it a little further. It appears the only issue may be that the CPU is "unsupported". So I don't know if there is anything I can do to bypass that, or if we can include the Apple M1 CPU in the next version.

I found a fix! I followed a video (Spanish) and it worked!
https://youtu.be/oHJHM6DMNJ4

For those who don't speak Spanish, the video has you download OBS Studio, the NDI Plugin, and NewTek's "NewTek NDI Video Monitor" (I personally downloaded the whole tool package).

Once those are all downloaded and installed, Go to "Applications" in Finder and right clicking on the Video Monitor app...

Show Package Content > Contents > Frameworks

then open a second Finder Window and on the Menu Bar, click...

Go > Go to Folder
and enter...
/usr/local/lib/

Now with both Finder windows open, hold down the command button and drag the "libndi.4.dylib" file into the "lib" folder. (make sure to move the file by holding command and not just making an alias, or it won't work)

Once the "libndi.4.dylib" file is in the "lib" folder, restart the mac and it should work.

Happy Streaming All!!

This just allows us to add NDI sources in OBS right but we still can't send an NDI signal out of OBS?
Would this method work with the "libndi_embedded.4.dylib" from NDI Virtual Input to enable NDI out from OBS? Sorry, I can't try it. My M1 Mac Mini is still on order.

@bufanda
Copy link

bufanda commented Jun 17, 2021

Hello,
I have been using NDI for Windows for a while. I decided to get the new MacBook with M1 since it seems to be a really powerful computer. However, I cannot get the NDI runtime/plugin to work with OBS. OBS works perfectly fine, but it cannot detect the NDI plugin/runtime. I suspect this is because of Rosetta, but I am not experience with this at all. Is there anything I can do to make this work, or is there plans to support the Apple Silicon?
Thanks!
Edit: Dug into it a little further. It appears the only issue may be that the CPU is "unsupported". So I don't know if there is anything I can do to bypass that, or if we can include the Apple M1 CPU in the next version.

I found a fix! I followed a video (Spanish) and it worked!
https://youtu.be/oHJHM6DMNJ4
For those who don't speak Spanish, the video has you download OBS Studio, the NDI Plugin, and NewTek's "NewTek NDI Video Monitor" (I personally downloaded the whole tool package).
Once those are all downloaded and installed, Go to "Applications" in Finder and right clicking on the Video Monitor app...
Show Package Content > Contents > Frameworks
then open a second Finder Window and on the Menu Bar, click...
Go > Go to Folder
and enter...
/usr/local/lib/
Now with both Finder windows open, hold down the command button and drag the "libndi.4.dylib" file into the "lib" folder. (make sure to move the file by holding command and not just making an alias, or it won't work)
Once the "libndi.4.dylib" file is in the "lib" folder, restart the mac and it should work.
Happy Streaming All!!

This just allows us to add NDI sources in OBS right but we still can't send an NDI signal out of OBS?
Would this method work with the "libndi_embedded.4.dylib" from NDI Virtual Input to enable NDI out from OBS? Sorry, I can't try it. My M1 Mac Mini is still on order.

@jmantaiwan yes you can. There will be an NDI option under the tools menu. I use it all the time.

@jmantaiwan
Copy link

@bufanda Fantastic! Thank you for confirming that!

@fiveohfiveoh
Copy link

fiveohfiveoh commented Sep 3, 2021

Does anyone know if the libndi.dylib file that needs replacing in /usr/local/lib is installed when installing the ndi-runtime ndi-runtime-4.5.1-macOS?

If so, would updating the ndi-runtime installer to use the correct version of libndi.dylib solve this issue without needing to manually replace the dylib file?

@ankushgoel
Copy link

im stuck at this screen. Iv selected in OBS Link but still no good. Im Using Elgato HD60S
Screen Shot 2021-04-23 at 2 22 17 PM

same issue on my M1 Macbook Pro!

has anyone figured a solution yet?

@tobsn
Copy link

tobsn commented Sep 12, 2021

I just accepted that Elgato just doesn’t care enough. I moved on. If anyone wants to buy a never really used Elgato HD60 let me know.
I use now a Blackmagic mini recorder (the new version with USB-C) and it works good. Even though Blackmagic are also dickheads to deal with when it’s about OSX… and sometimes video just doesn’t show up and you have to unplug and plug it back in a few times. But it works.
Just a side note here I bought the HD60 in 2017 and used it, never.

So yeah, fu elgato.

@marcelomoyano
Copy link

marcelomoyano commented Sep 12, 2021 via email

@tt2468
Copy link
Contributor

tt2468 commented Nov 14, 2021

Response here: #675 (comment)

@tt2468 tt2468 closed this as completed Nov 14, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests