johnboiles / obs-mac-virtualcam

ARCHIVED! This plugin is officially a part of OBS as of version 26.1. See note below for info on upgrading. ๐ŸŽ‰๐ŸŽ‰๐ŸŽ‰Creates a virtual webcam device from the output of OBS. Especially useful for streaming smooth, composited video into Zoom, Hangouts, Jitsi etc. Like CatxFish/obs-virtualcam but for macOS.
GNU General Public License v2.0
4.06k stars 160 forks source link

[Support] DAL plugin not loaded and not shows up in any apps #183

Closed czhowl closed 4 years ago

czhowl commented 4 years ago

After install the package, OBS has the option to start virtual camera, but none of the video apps(tested in Quicktime, Photobooth, Zoom, Chrome) have the option of OBS virtualcam. I tried remove /Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin and reinstall with no luck. I also didn't get any messages in Console.app by searching obs-mac-virtualcam.

To Reproduce Steps to reproduce the behavior:

  1. Install OBS 25.0.8
  2. Install obs-mac-virtualcam-3ca8f62-v1.2.0.pkg
  3. See error

Desktop

gxalpha commented 4 years ago

Uhhhmmm... Did you restart your computer? I don't think I've seen that one before ๐Ÿ˜„

czhowl commented 4 years ago

Yes I have tried reinstall and reboot on different versions of packages and none of them works.

czhowl commented 4 years ago

I also tried coremediaio-dal-minimal-example and that works on my system.

danielsegan commented 4 years ago

I'm running into the same issue. Worked fine a couple of days ago. No system changes that I'm aware of. No crashes/errors either. Virtual Camera just not showing up as a camera option anymore.

OS: 10.15.5 OBS: 25.0.8 The current release of Virtual Cam

danielsegan commented 4 years ago

In my case at least this is confirmed to be a library validation failure. I'm trying to use it in Microsoft Teams:

Library Validation failed: Rejecting '/Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam' (Team ID: 62G85M9ZN5, platform: no) for process 'Teams(2482)' (Team ID: UBF8T346G9, platform: no), reason: mapping process and mapped file (non-platform) have different Team IDs

Initially, it appeared to be a global issue (missing camera) but It's clear that it's occurring in all apps which try to use the camera.

Here are the ones I tested so far:

Microsoft Teams Microsoft Edge (Chromium) Apple Photo Booth

gxalpha commented 4 years ago

I think we need to differentiate here: If you get nothing in none of the apps (including Google Chrome), that is a problem we don't know anything about yet. If you do get something, for example error messages in Console.app or a working virtual camera in Google Chrome (@danielsegan please test this) you'll have a Library Validation problem, to fix this see https://github.com/johnboiles/obs-mac-virtualcam/wiki/Compatibility#apps-dont-allow-dal-plugins

grantwall commented 4 years ago

Seeing the same problem with OBS virtualcam not showing up in Microsoft Teams as well as DIscord. Tried the DAL signing tips but no luck. Here's the error on a fresh OBS install

Error loading /Library/CoreMediaIO/Plug-Ins/DAL/AkVirtualCamera.plugin/Contents/MacOS/AkVirtualCamera: dlopen(/Library/CoreMediaIO/Plug-Ins/DAL/AkVirtualCamera.plugin/Contents/MacOS/AkVirtualCamera, 265): no suitable image found. Did find: /Library/CoreMediaIO/Plug-Ins/DAL/AkVirtualCamera.plugin/Contents/MacOS/AkVirtualCamera: code signature in (/Library/CoreMediaIO/Plug-Ins/DAL/AkVirtualCamera.plugin/Contents/MacOS/AkVirtualCamera) not valid for use in process using Library Validation: mapped file has no Team ID and is not a platform binary (signed with custom identity or adhoc?)

Cannot find function pointer akPluginMain for factory <CFUUID 0x7fcb9510bcc0> 41764B79-7320-5643-616D-363462697473 in CFBundle/CFPlugIn 0x7fcb9510b440 </Library/CoreMediaIO/Plug-Ins/DAL/AkVirtualCamera.plugin> (framework, not loaded)

Error loading /Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam: dlopen(/Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam, 262): no suitable image found. Did find: /Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam: code signature in (/Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam) not valid for use in process using Library Validation: mapping process and mapped file (non-platform) have different Team IDs /Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam: stat() failed with errno=1

Cannot find function pointer PlugInMain for factory <CFUUID 0x7fcb9510c830> 35FDFF29-BFCF-4644-AB77-B759DE932ABE in CFBundle/CFPlugIn 0x7fcb9510c030 </Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin> (bundle, not loaded)

After trying the signing method with the plist key Discord crashes on launch, with the following console logs:

Cannot find function pointer akPluginMain for factory <CFUUID 0x7f8797a09a90> 41764B79-7320-5643-616D-363462697473 in CFBundle/CFPlugIn 0x7f8797a0b8c0 </Library/CoreMediaIO/Plug-Ins/DAL/AkVirtualCamera.plugin> (framework, not loaded)

Error loading /Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam: dlopen(/Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam, 262): no suitable image found. Did find: /Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam: code signature in (/Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam) not valid for use in process using Library Validation: mapping process and mapped file (non-platform) have different Team IDs /Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam: stat() failed with errno=1

Cannot find function pointer PlugInMain for factory <CFUUID 0x7f8797a09e70> 35FDFF29-BFCF-4644-AB77-B759DE932ABE in CFBundle/CFPlugIn 0x7f8797a0bd70 </Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin> (bundle, not loaded)

Error loading /Library/CoreMediaIO/Plug-Ins/DAL/AkVirtualCamera.plugin/Contents/MacOS/AkVirtualCamera: dlopen(/Library/CoreMediaIO/Plug-Ins/DAL/AkVirtualCamera.plugin/Contents/MacOS/AkVirtualCamera, 265): no suitable image found. Did find: /Library/CoreMediaIO/Plug-Ins/DAL/AkVirtualCamera.plugin/Contents/MacOS/AkVirtualCamera: code signature in (/Library/CoreMediaIO/Plug-Ins/DAL/AkVirtualCamera.plugin/Contents/MacOS/AkVirtualCamera) not valid for use in process using Library Validation: mapped file has no Team ID and is not a platform binary (signed with custom identity or adhoc?)

Cannot find function pointer akPluginMain for factory <CFUUID 0x7fc5a0c263b0> 41764B79-7320-5643-616D-363462697473 in CFBundle/CFPlugIn 0x7fc5a0c25a80 </Library/CoreMediaIO/Plug-Ins/DAL/AkVirtualCamera.plugin> (framework, not loaded)

Error loading /Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam: dlopen(/Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam, 262): no suitable image found. Did find: /Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam: code signature in (/Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam) not valid for use in process using Library Validation: mapping process and mapped file (non-platform) have different Team IDs /Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin/Contents/MacOS/obs-mac-virtualcam: stat() failed with errno=1

Cannot find function pointer PlugInMain for factory <CFUUID 0x7fc5a0c284d0> 35FDFF29-BFCF-4644-AB77-B759DE932ABE in CFBundle/CFPlugIn 0x7fc5a0c26720 </Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin> (bundle, not loaded)

obs-mac-virtualcam(DAL): HardwarePlugIn_Teardown self=0x1133ed768

grantwall commented 4 years ago

After a bit more testing, the plist seems unnecessary. The following two commands fixed both Discord and Teams.

sudo codesign --remove-signature '/Applications/Discord.app/Contents/Frameworks/Discord Helper (Renderer).app/Contents/MacOS/Discord Helper (Renderer)'

sudo codesign --remove-signature /Applications/Microsoft\ Teams.app/Contents/Frameworks/Microsoft\ Teams\ Helper.app/Contents/MacOS/Microsoft\ Teams\ Helper

DavidTNguyen commented 4 years ago

I have similar setup as @czhowl. The following command fixed it for me. This is based on the instruction from the repo's wiki

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

chesterweirdo commented 4 years ago

After a bit more testing, the plist seems unnecessary. The following two commands fixed both Discord and Teams.

sudo codesign --remove-signature '/Applications/Discord.app/Contents/Frameworks/Discord Helper (Renderer).app/Contents/MacOS/Discord Helper (Renderer)'

sudo codesign --remove-signature /Applications/Microsoft\ Teams.app/Contents/Frameworks/Microsoft\ Teams\ Helper.app/Contents/MacOS/Microsoft\ Teams\ Helper

Thanks that solved MS Teams for me. Had restarted but still no luck until running this command.

searope commented 4 years ago

I have the same issue of not seeing the virtual webcam in Hangouts, Zoom and Teams.

sudo codesign --remove-signature /Applications/Microsoft\ Teams.app/Contents/Frameworks/Microsoft\ Teams\ Helper.app/Contents/MacOS/Microsoft\ Teams\ Helper

and

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

did the trick for me. Thanks @grantwall and @DavidTNguyen !

I wonder how could I fix Hangouts?