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

Virtual Camera does not start on macOS in OBS 30.1.0 after updating OBS #10381

Open
zine999 opened this issue Mar 15, 2024 · 33 comments
Open

Virtual Camera does not start on macOS in OBS 30.1.0 after updating OBS #10381

zine999 opened this issue Mar 15, 2024 · 33 comments

Comments

@zine999
Copy link

zine999 commented Mar 15, 2024

Operating System Info

macOS 14

Other OS

No response

OBS Studio Version

30.1.0

OBS Studio Version (Other)

No response

OBS Studio Log URL

https://obsproject.com/logs/DmoOPYoF3teohXFI

OBS Studio Crash Log URL

No response

Expected Behavior

For the virtual camera to work as it did before in 30.0.2.

Current Behavior

Screenshot 2024-03-15 at 7 42 37 PM

Steps to Reproduce

  1. Click "Start Virtual Camera" in Studio Mode

Anything else we should know?

See workaround below.

@dx8ug
Copy link

dx8ug commented Mar 15, 2024

I confirm the problem with virtual camera

@RytoEX
Copy link
Member

RytoEX commented Mar 15, 2024

The Virtual Camera seems to work fine on a fresh install of OBS Studio. Did you both update from an older version?

@dx8ug Please provide a log file.

@zine999
Copy link
Author

zine999 commented Mar 15, 2024

The Virtual Camera seems to work fine on a fresh install of OBS Studio. Did you both update from an older version?

I updated from a previous version using the built-in updater.

I don't know what a "fresh install" means.

I also downloaded the DMG from the website and replaced the app, and that didn't help.

@dx8ug
Copy link

dx8ug commented Mar 15, 2024

yes, I updated from the previous version using the built-in updater.

logs
https://obsproject.com/logs/9DFozr6B7cHyVNjl

@RytoEX
Copy link
Member

RytoEX commented Mar 15, 2024

The Virtual Camera seems to work fine on a fresh install of OBS Studio. Did you both update from an older version?

I updated from a previous version using the built-in updater.

I don't know what a "fresh install" means.

I also downloaded the DMG from the website and replaced the app, and that didn't help.

A "fresh install" is installing OBS when no version of OBS is currently installed. Basically:

  1. Make sure there are no other versions of OBS.app in your Trash.
    a. This is important. If there are other versions of OBS.app in your Trash, macOS may not correctly remove the system extension (virtual camera).
    b. You can optionally reboot after this step to be safe.
  2. Drag OBS to Trash.
    a. This is important, as this is how macOS deletes system extensions associated with apps. Do not use a third-party cleaner app. Do not manually delete in some way that bypasses Trash.
  3. Empty Trash.
    a. You can optionally reboot after this step to be safe.
  4. Install OBS to /Applications.
    a. This is important. If you try to install OBS to any other location, the system extension will not work.

I just tried updating from OBS Studio 30.0.2 to 30.1.0 and had no issues with the virtual camera at any point. What version did you both update from?

@dx8ug
Copy link

dx8ug commented Mar 15, 2024

I can assume that version 30.0.2 was previously used, since I always update when possible

trying to do a fresh install

@zine999
Copy link
Author

zine999 commented Mar 15, 2024

I updated from 30.0.2.

Moving 30.0.2 to the trash, emptying it, and then installing 3.1.0 from the DMG did bring up the dialog that then prompted me to approve the app in System Preferences (Security / Privacy settings). Clicking "Allow" and then running OBS again did fix the issue. Thank you for your help @RytoEX.

It seems like there's some issue with upgrading the app via the updater that causes it to break / skip this important part.

@dx8ug
Copy link

dx8ug commented Mar 15, 2024

after a fresh installation with a reboot, the issue was fix (there was no notification about permissions)
without a reboot, even with a reinstallation the issue remained
Thank you

@jcm93
Copy link
Contributor

jcm93 commented Mar 15, 2024

Usually this "not found" error is caused by the extension updating successfully, but macOS failing to start the updated version after the update.

If that's the case, logging out and back in should solve it, a full reboot shouldn't even be required.

If someone has this issue and logging out and in doesn't solve it, could they post the output of the systemextensionsctl list command in Terminal?

@Voxinator
Copy link

I can confirm this issue. Was fixed by rolling back to 30.0.2

@RytoEX RytoEX changed the title Virtual Camera broken in 30.1.0 on macOS Virtual Camera does not start on macOS in OBS 30.1.0 after updating OBS Mar 21, 2024
@RytoEX
Copy link
Member

RytoEX commented Mar 21, 2024

I can confirm this issue. Was fixed by rolling back to 30.0.2

The macOS Virtual Camera in OBS Studio 30.1.0 works fine on macOS 13 and 14, and should work fine on macOS 12.3 or later (and even on macOS 11, but using the old implementation, which the user should not be able to tell). This issue is not that it is actually not working at all, but that it apparently does not work after updating OBS for some reason, probably the macOS CMIO System Extension update mechanism not working correctly.

As mentioned above, please do not roll back when you encounter this issue. Please provide the output of systemextensionsctl list from Terminal. The virtual camera itself is not broken in 30.1.0, as multiple people have confirmed.

@risacher
Copy link

I've also had this issue. After upgrading to 30.1.0, (on MacOS 12.7.4 Intel Mac) the virtual camera stopped working. I absolutely flailed around, reinstalling, etc. trying many things until it started working again. One of the last things that I tried was running this command on a fresh install of 30.1.1: sudo find /Applications/OBS.app/ -type f -exec xattr -d 'com.apple.quarantine' '{}' ';' which strips the 'quarantine' attribute from all files in the OBS application. I'm not sure that's what fixed it, but it did work shortly thereafter. HTH someone

@RytoEX
Copy link
Member

RytoEX commented Mar 25, 2024

I've also had this issue. After upgrading to 30.1.0, (on MacOS 12.7.4 Intel Mac) the virtual camera stopped working. I absolutely flailed around, reinstalling, etc. trying many things until it started working again. One of the last things that I tried was running this command on a fresh install of 30.1.1: sudo find /Applications/OBS.app/ -type f -exec xattr -d 'com.apple.quarantine' '{}' ';' which strips the 'quarantine' attribute from all files in the OBS application. I'm not sure that's what fixed it, but it did work shortly thereafter. HTH someone

What we really need is the output of systemextensionsctl list from Terminal when someone is in a broken state.

@RytoEX
Copy link
Member

RytoEX commented Mar 25, 2024

@risacher Actually, on macOS 12, you still get the old DAL extension, not the new CMIO extension, so your problem is probably not the same as this.

@duffenterprises
Copy link

duffenterprises commented Mar 25, 2024

I currently find myself in a broken state.

➜  ~ systemextensionsctl list
2 extension(s)
--- com.apple.system_extension.network_extension
enabled	active	teamID	bundleID (version)	name	[state]
*	*	DE8Y96K9QP	com.cisco.anyconnect.macos.acsockext (4.10.07061/4.10.07061)	Cisco AnyConnect Socket Filter Extension     	[activated enabled]
--- com.apple.system_extension.endpoint_security
enabled	active	teamID	bundleID (version)	name	[state]
*	*	X9E956P446	com.crowdstrike.falcon.Agent (7.11/180.02)	Falcon Sensor	[activated enabled]

OS: MacOS Sonoma Version 14.4.1 (23E224)
OBS: 30.1.1 (64bit)
Chip: Apple M1 Pro

Error Message

An error has occured while installing the virtual camera:

The operation couldn’t be completed. (OSSystemExtensionErrorDomain error 10.)

@jcm93
Copy link
Contributor

jcm93 commented Mar 25, 2024

I currently find myself in a broken state.

➜  ~ systemextensionsctl list
2 extension(s)
--- com.apple.system_extension.network_extension
enabled	active	teamID	bundleID (version)	name	[state]
*	*	DE8Y96K9QP	com.cisco.anyconnect.macos.acsockext (4.10.07061/4.10.07061)	Cisco AnyConnect Socket Filter Extension     	[activated enabled]
--- com.apple.system_extension.endpoint_security
enabled	active	teamID	bundleID (version)	name	[state]
*	*	X9E956P446	com.crowdstrike.falcon.Agent (7.11/180.02)	Falcon Sensor	[activated enabled]

OS: MacOS Sonoma Version 14.4.1 (23E224) OBS: 30.1.1 (64bit) Chip: Apple M1 Pro

Can you screenshot the error that you receive when you try to start Virtual Camera output in OBS 30.1?

@duffenterprises
Copy link

duffenterprises commented Mar 25, 2024

With pleasure. Note, I've already attempted the privacy change that others had previously described.

Screenshot 2024-03-25 at 7 44 47 PM

@jcm93
Copy link
Contributor

jcm93 commented Mar 25, 2024

That error indicates that your device is a managed or provisioned system, and the provisioner did not grant you permission to install system extensions. This is unrelated to the errors upthread.

@duffenterprises
Copy link

Thanks @jcm93. Apologies for the noise. Do you know what the system extension required is?

@jcm93
Copy link
Contributor

jcm93 commented Mar 26, 2024

There is not a name for it, it's authored by OBS and is just a small CMIO extension that accepts frames received from OBS and presents them as a camera device. This is the only supported way to achieve 'virtual camera' functionality in macOS 14+. More details can be found in Apple's documentation or the plugin code.

@RytoEX
Copy link
Member

RytoEX commented Apr 5, 2024

Currently, what we need to debug this are these things:

  1. The output of systemextensionsctl list when you get the "Could not find virtual camera" error message.
  2. An OBS log from when you get the "Could not find virtual camera" error message.
  3. The output of systemextensionsctl list after rebooting macOS.
  4. An OBS log after rebooting macOS when trying to start the Virtual Camera.

@dx8ug
Copy link

dx8ug commented Apr 12, 2024

I again encountered the same problem after auto-updating on 30.1.2
here is the output of the command systemextensionsctl list when the error appears

--- com.apple.system_extension.cmio
enabled	active	teamID	bundleID (version)	name	[state]
*	*	2MMRE5MTB8	com.obsproject.obs-studio.mac-camera-extension (30.1.2/8576208847)	com.obsproject.obs-studio.mac-camera-extension	[activated enabled]
		2MMRE5MTB8	com.obsproject.obs-studio.mac-camera-extension (30.1.0/8254614054)	com.obsproject.obs-studio.mac-camera-extension	[terminated waiting to uninstall on reboot]

logs https://obsproject.com/logs/f3FMRmvurvAuIBNR

@dx8ug
Copy link

dx8ug commented Apr 12, 2024

after reboot

--- com.apple.system_extension.cmio
enabled	active	teamID	bundleID (version)	name	[state]
*	*	2MMRE5MTB8	com.obsproject.obs-studio.mac-camera-extension (30.1.2/8576208847)	com.obsproject.obs-studio.mac-camera-extension	[activated enabled]

and the camera started working
that is, after update need to reboot mac

@RytoEX
Copy link
Member

RytoEX commented Apr 12, 2024

If anyone runs into this again, please file an Apple Feedback when OBS is open and you get the "Could not find virtual camera" error message. Post the Feedback ID here.

@tommyderami
Copy link

That error indicates that your device is a managed or provisioned system, and the provisioner did not grant you permission to install system extensions. This is unrelated to the errors upthread.

@jcm93 dufferenterprise's issue (while not the one addressed in this thread) is popping up on my system, but my user is in sudo group so in theory I should be able overridable--do you happen to know of a cli command or way to re-build/re-register the plug-in?

@duffenterprises
Copy link

duffenterprises commented Apr 18, 2024 via email

@jcm93
Copy link
Contributor

jcm93 commented May 16, 2024

It appears that, in rare instances, users can hit the "Could not find virtual camera" error despite the extension being installed AND running. This appears to be due to some sort of bundle lookup failure in systemextensionsctl, and persists through logout/in as well as reboot, though the one user that's run into it resolved it by reinstalling OBS.

This is the output of systemextensionsctl list when that error is encountered (via a user in support on macOS 14.4.1):

2 extension(s)
--- com.apple.system_extension.cmio
enabled    active    teamID    bundleID (version)    name    [state]
2024-05-15 20:17:20.523 systemextensionsctl[1237:19638] Cannot getLocalizedStringForKey: Completely failed to resolve bundle info, returning empty results
*    *    2MMRE5MTB8    com.obsproject.obs-studio.mac-camera-extension (30.1.2/8576208847)        [activated enabled]
2024-05-15 20:17:20.523 systemextensionsctl[1237:19638] Cannot getLocalizedStringForKey: Completely failed to resolve bundle info, returning empty results
*    *    Y93VXCB8Q5    com.elgato.CameraHub.CameraExtension (1.1/4)    [activated enabled]

Posting for the sake of public tracking in case this is of interest to any Apple people reading. No users in this thread or #9912 appear to have hit this specific failure mode and posted documentation.

@niczyja
Copy link

niczyja commented Jul 10, 2024

Hey, I'm a developer working on another macOS app that creates CMIO System Extension, like OBS does. During development I've also ran into an issue that might be similar to what people experience here, in case of OBS extension.

Skipping the details I've eventually realised that if the extension process runs after the host app started AVCaptureDeviceDiscoverySession app won't be able discover extension device (even though extension process eventually starts and runs without problems). During fresh install and usual run it's usually not an issue, but it floats in case when the extension has to update. Even though replacement process completes successfully and OSSystemExtensionRequest completes it does not mean that extension process is already up and running. If you then run device discovery session based on delegate method result it may not find the extension yet.

That's just a quick summary, if it makes any sense for you and could be helpful I'm open to share more details and help with some debugging.

@appenz
Copy link

appenz commented Jul 19, 2024

Had this issue appear after updating to 30.2.0 via the built-in updater. On macOS 14.4 23E214. Doing a clean re-install alone did NOT fix the issue. Logging in & out after the re-install did fixed the issue. No security permissions were requested or changed at any time.

@risacher
Copy link

risacher commented Jul 21, 2024

WORKAROUND/ALTERNATIVE: use NDI Tools Virtual Camera and OBS NDI output plugin over the loopback interface.

I've had a lot of problems with the OBS virtual camera. It works for me most of the time, but randomly stops working - often mid-meeting, embarrassingly exposing my green-screen for all to see. OBS still seems to think it's working, but other applications stop seeing the virtual camera. This was frustrating enough that I was looking for hardware loopback solutions when I stumbled upon using NDI as an alternative. I've been using it for about a week, and so far, it's been rock solid.

@dougharris
Copy link

dougharris commented Aug 25, 2024

I get this alert after every update. Restarting my mac resolves it. I don't need to fully re-install.

(It would be nice not to have to reboot for an OBS update, but it's not too onerous. I now plan to only update OBS when there are other reasons pending for me to reboot.)

@zine999
Copy link
Author

zine999 commented Sep 4, 2024

The workaround that I've been using that seems to work well and doesn't require a restart is:

  1. After update, quit OBS
  2. Move OBS to Trash, when prompted, click "Continue" and enter your password. Do NOT empty Trash.
  3. Move OBS out of Trash and back into Applications folder.
  4. Open OBS, you will be either prompted immediately to allow the extension or you will be prompted after attempting to start the virtual camera (I don't remember). Click on the button that will open System Preferences.
  5. Click the "Allow" button that's in System Preferences and enter your password.
  6. Restart OBS

@RytoEX
Copy link
Member

RytoEX commented Sep 4, 2024

As a note, a simple "log out" and "log in" should suffice. You should not have to fully reboot.

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