Skip to content
This repository has been archived by the owner on Dec 15, 2020. It is now read-only.

Compatibility

joshua goldberg edited this page Nov 3, 2020 · 70 revisions

A list of programs this is currently compatible with. Please note that this list is not complete. Also note you have to fully restart the program you are using to recognize the virtual camera.

If you find inaccuracies in this list or want to provide more detail, you can edit this Wiki. Please sort the apps by importance and logical connections (e.g. all browsers together).

Please do not remove significant information without further notice!

Program Compatiblity Notes
Google Chrome Yes
Firefox Maybe Seems to work for some people 🤷‍♂️
Safari No
Edge Yes
Brave Yes
Zoom Yes Fixed in 5.1.1.
Skype No* Possible to run by removing the signature of the Renderer. See note on apps that don't allow DAL plugins and unsign Skype Helper (Renderer).app.
Discord Yes* May need removal of the Renderer signature for some people. See note on apps that don't allow DAL plugins and unsign the following helpers: Discord Helper.app, Discord Helper (GPU).app, Discord Helper (Plugin).app and Discord Helper (Renderer).app.
Microsoft Teams Maybe Seems to for some people 🤷‍♂️. May need removal of the Renderer signature for some people. See note on apps that don't allow DAL plugins and try to unsign the following helpers: Microsoft Teams Helper.app, Microsoft Teams Helper (GPU).app, Microsoft Teams Helper (Plugin).app and Microsoft Teams Helper (Renderer).app. If that doesn't help, some janky workarounds are available here.
QuickTime Player Yes
Photo Booth Maybe Seems to work for 4:3 resolutions for some people 🤷‍♂️
FaceTime No* May work in older versions of macOS (not 10.14.6) 🤷‍♂️
iMovie Yes
Slack No* Possible to run by changing entitlements. See note on apps that don't allow DAL plugins.
Amazon Chime No* Possible to run by changing entitlements. See note on apps that don't allow DAL plugins.
Messenger Rooms Yes
Webex Meetings No* Possible to run by changing entitlements. See note on apps that don't allow DAL plugins. Can be fixed by removing the signature of the Meeting Centre.app (needs to be done for every version that may be called). Then launch the meeting which will fail, then from a command line launch the app by hand. The apps are in the folder ~/Library/Application Support/WebEx Folder with versions being in the format T33_64UMC_40.9.6.11 and the manual launch command is Meeting\ Center.app/Contents/MacOS/Meeting\ Center. This will lose the menu at the top of the screen so is a partial workaround. Webex Teams is easier to get working.
Also possible to run by using the Webex Web app in the browser. Open the URL for your meeting, select Cancel when prompted to "Open Cisco Webex Start?", click "Join from your browser", login and select the OBS Virtual Camera.
Webex Teams No* Possible to run by changing entitlements. See note on apps that don't allow DAL plugins. From memory I removed the signature of both /Applications/Webex Teams.app/ and /Applications/Webex Teams.app/Contents/MacOS/CiscoSparkHelper and this is the easiest method to join Webex Teams without the rigmarole required for the Meeting Centre app.
RingCentral Yes
AdobeConnect Yes
Screen (screen.so) No* Possible to run by changing entitlements. See note on apps that don't allow DAL plugins.
BigBlueButton Yes
Webinar Jam Yes
BlueJeans Yes
Bluejeans Events No
Tencent Meeting No App crashes after changed entitlements. More test needed.
Alibaba DingTalk Yes
OpenCV & OpenCV-Python Yes* *macOS Catalina requires sudo when executing OpenCV-Python code.
GoTo Meeting Yes
TrueConf Yes
D8E Yes

Why doesn't my app work

There are two known reasons this plugin does not work.

Apps don't allow DAL plugins

As of macOS 10.15 (Catalina), apps need to explicitly allow Device Abstraction Layer (DAL) plugins to work by setting com.apple.security.cs.disable-library-validation in their Info.plist. For apps that don't set this key (e.g. Zoom and Slack), it's possible to manually add this key, then re-codesign the app. Take a look at issue #4 for details. Note that you'll need to redo this process every time the app is opened.

You can try to re-codesign the application to avoid this. Please be aware this could have security implications for the app. For example (for Zoom):

sudo codesign -f -s - /Applications/zoom.us.app

If that doesn't help, you can try to remove the signature of some helper programs. Please be aware this could also have security implications. (Make sure to replace HELPER_NAME with the name of the helper):

sudo codesign --remove-signature /Applications/APP_NAME/Contents/Frameworks/HELPER_NAME

macOS System Apps block DAL plugins

Recent versions of macOS seem to disallow DAL plugins for system apps (e.g. Safari, FaceTime, Photo Booth). More investigation is needed to understand if this is the same issue as above, just for Apple provided apps, or if there's some other mechanism that is blocking the DAL plugin from running. See a workaround below.

TODO: Which versions of macOS block DAL plugins in which apps?

SIP Workaround

One option to allow macOS to allow DAL plugins in system apps / codesigned apps is to disable the system integrity protections (SIP) that cause these plugins to fail to load.

This cannot be stressed enough, but while you do not need to fully disable SIP to have DAL plugins start working (which is good), do this at your own risk as it could bring security implications for your entire system. You can read more about the details of SIP here. In case you are doing this on a company device, make sure this is not going against work policy.

To disable the filesystem part of SIP (that blocks the DAL plugins from loading) run the following command in recovery mode (reboot holding Command + R):

csrutil enable --without fs