Virtual webcam mac os
OBS (macOS) Virtual Camera (ARCHIVED) 🎥
ATTENTION: STARTING WITH OBS Studio 26.1, THIS PLUGIN IS NOW A PART OF THE OFFICIAL OBS PACKAGE 🎉 . Development will now happen on the OBS Studio GitHub. Running this plugin along-side the built-in distribution does not work. If you can, update to OBS 26.1!
ATTENTION: Before updating to OBS Studio 26.1, make sure to remove this plugin using the uninstall instructions. While it worked for most, some users have reported problems when updating to OBS Studio 26.1 with the plugin installed. You will likely also need to restart any host software (e.g. Chrome, Zoom, etc) after installing OBS Studio 26.1 and starting the virtual camera before the new plugin will work.
Creates a virtual webcam device from the output of OBS Studio. Especially useful for streaming smooth, composited video into Zoom, Hangouts, Jitsi etc. Like CatxFish/obs-virtual-cam but for macOS.
This code was spun out of this OBS Project RFC which was itself spun out of this issue from @tobi. The goal for this, being merged into the core OBS codebase, has been reached 🤞 .
Consider sending some money in the direction of the OBS Project via Open Collective, Patreon, or PayPal. Obviously, without OBS, this plugin would not be very useful! Hugh «Jim» Bailey is OBS Project’s full-time lead developer and project maintainer. This money helps him continue to work on OBS!
If, after you donate to the OBS Project, you also want to send some cash my way that’s appreciated too! Feel free to Buy Me a Coffee or PayPal me.
- Zoom prior to version 5.1.1 disabled virtual cameras by default. Please update to the latest (5.2.1 at time of writing) to re-enable virtual camera. Start the virtual camera before starting the Zoom application.
- Slack, Webex, Skype and probably some other applications have disabled virtual cameras by default via application restrictions. Check out the wiki to see if your app is supported. Please edit the wiki if you try other software that we should include in that list. In most cases you can work around these restrictions by re-codesigning those applications.
- Photo Booth and FaceTime do not support virtual cameras as of macOS 10.14 Mojave since they disallow loading any plugin that’s not provided by Apple. Photo Booth can simply be duplicated and renamed (e.g. Photo Booth copy ) and it will work. There is no known workaroud for FaceTime.
- You may need to restart your computer after installing new versions of this plugin (not sure why 🤷♂️ ).
See also the open issues for other reported issues. In case you need help or think you found a bug, see this.
If you are using OBS Studio 26.1 or newer, the virtual camera is already part of OBS Studio. In that case, DO NOT install this plugin!
- Download and install the latest version of OBS from the official website.
- Download the latest .pkg installer on the Releases page
- Run the .pkg installer (entering your password when required)
- If you’re already running OBS, make sure to restart it.
- Restart any app that was running during the installation process that is supposed to pick up the camera.
- To start the virtual camera, go (in OBS) to Tools → Start Virtual Camera .
Your OBS video should now show up in the target app!
You can easily uninstall this plugin by deleting the OBS plugin (in /Library/Application\ Support/obs-studio/plugins/ ) and the DAL plugin (in /Library/CoreMediaIO/Plug-Ins/DAL/ ).
If you are using the version the virtual camera that comes shipped with OBS Studio 26.1, the official place for questions is the #macos-support channel in the OBS Studio Discord. If you are still using this plugin, the official place for discussion and chat is in the #plugins-and-tools channel in the OBS Studio Discord. For questions or troubleshooting, ping @gxalpha#3486 and attach the OBS log, screenshots, and/or crash logs (from Console.app).
Reporting Issues / Bugs / Improvements
🚀 Wonder How to contribute? Have look at our notes for contributors. There are ways non-technical or minimally-technical folks can contribute too!
This plugin is now archived. If you are having an issue there’s a good chance someone has already run into the same thing. Please search through the issues before reporting a new one. If you are using the version the virtual camera that comes shipped with OBS Studio 26.1, also see the issues on the OBS Studio GitHub and create new issues there.
If you still believe you have found an unreported issue related to this plugin, please open an issue! When you do, include any relevant terminal log, Console.app log, crash log, screen recording and/or screenshots. The more information you can provide, the better!
Please help me make this thing not janky! See the this wiki page for build instructions and tips & tricks for developing.
As the goal of this repo was to get merged into obsproject/obs-studio, the license for this code mirrors the GPLv2 license for that project.
About
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.
Источник
virtual camera on macOS?
is CoreMedia plugin the answer? i’ve seen the question here related codesigning: https://developer.apple.com/forums/thread/131826 with no conclusion.
is DEXT driver extension the answer? note there is no custom hardware here, the camera is virtual and doesn’t need hardware; is DEXT allowed at all if there’s no hardware device?
is KEXT kernel extension the answer? i know it is being phased out but if that’s the only way now — so be it.
is QT / Sequence Grabber the answer or is that completely dead now?
is method swizzling / or other kind of «patching» the answer?
any working solution even deprecated or dodgy will do, but of course a modern and apple sanctioned one is preferable.
Accepted Answer
So far the best method appears to be the CoreMediaIO DAL plugin. Unfortunately, as you mentioned, Apple products don’t like plugins. Fortunately, Zoom and Microsoft (they are currently working on a Teams fix for virtual cameras for macOS), feel that plugins are still valuable in this day and age; especially when you have many people working from home remotely and who have various video sourcing needs.
The only way I have been able to feed my own video data into Apple software with SIP enabled was to configure a Raspberry Pi to look like a UVC device when plugging it into the Mac. Once you appear as a UVC device and use the macOS built-in UVC driver, you basically have the keys to the kingdom and no entitlements, notarization, or security policies block you from feeding your video data into any apps (Apple apps included). Obviously not a purely software solution however, but it indeed works. Unsure if it’s possible to develop a purely software solution appear as a UVC device utilizing macOS’s UVC driver. It’s interesting that on the Windows platform, it is actually quite trivial to develop many types of virtual drivers that appear as physical devices to the host system. Apple seems adamantly against such an absurd concept 🙂
Answers
So far the best method appears to be the CoreMediaIO DAL plugin. Unfortunately, as you mentioned, Apple products don’t like plugins. Fortunately, Zoom and Microsoft (they are currently working on a Teams fix for virtual cameras for macOS), feel that plugins are still valuable in this day and age; especially when you have many people working from home remotely and who have various video sourcing needs.
The only way I have been able to feed my own video data into Apple software with SIP enabled was to configure a Raspberry Pi to look like a UVC device when plugging it into the Mac. Once you appear as a UVC device and use the macOS built-in UVC driver, you basically have the keys to the kingdom and no entitlements, notarization, or security policies block you from feeding your video data into any apps (Apple apps included). Obviously not a purely software solution however, but it indeed works. Unsure if it’s possible to develop a purely software solution appear as a UVC device utilizing macOS’s UVC driver. It’s interesting that on the Windows platform, it is actually quite trivial to develop many types of virtual drivers that appear as physical devices to the host system. Apple seems adamantly against such an absurd concept 🙂
thank you. the UVC route is the last resort.
what is the rationale here for such restrictions? i can understand there can be security concerns when a piece of code has access to the camera feed (so it can snoop and do other bad things), but with the virtual camera the situation is the opposite — it *produces* video data. what are the possible use cases that constitute security threats?
the real world analogy would be to prosecute not just the thieves but their victims.
I’m not entirely sure of the rationale. I believe since the advent of hardened runtime, by default 3rd party plugins are blocked by the using app unless the app explicitly includes the «disable-library-validation» runtime. So you are still free to create a CMIO plugin, notarize and sign it, and it should work with apps with that entitlement. It was interesting to see back in March that Zoom had removed this entitlement which caused an uproar amongst many of their users since their daily work lives (especially with work from home) depended on virtual cameras. This pressured Zoom to include the entitlement to restore support for virtual cameras. Microsoft is repeating this same cycle right now with Teams.
Personally I don’t understand all of the hate for CMIO DAL plugins. Their sole purpose is to provide your video data to other apps.
I don’t see how a virtual driver would provide any further improvements. The driver portion should be for retrieving video data from a physical device, which would then stream up through the CMIO plugin to 3rd party apps. Even if you could make a virtual driver solution with DriverKit, good luck getting Apple’s blessing with the driverkit.transport.usb entitlement (or whatever else is needed) if you aren’t a hardware manufacturer.
I hope Apple is seeing the trend with Zoom and Teams for a return to the CMIO plugin and follow suit.
I don’t understand all of the hate for CMIO DAL plugins.
The problem with CoreMedia DAL plug-ins is that they load within the host app’s process. In-process plug-ins represent an obvious security problem and Apple is moving away from that architecture entirely. You’ll note that all plug-in mechanisms that that we’ve introduced recently are based on app (or system) extensions, which avoids this problem. Additionally, many existing in-process plug-ins are now loaded by a system process that’s dedicated to that task (for example, third-party authorisation plug-ins are now loaded by authorizationhosthelper rather than the traditional authorizationhost ).
The bugs mentioned in that other thread are all focused around the idea of providing this feature without requiring an in-process plug-in.
Источник
Using OBS as a Virtual Webcam on Windows and MacOS
With more and more people working from home in the current global environment, we’re seeing an increase in the number of people asking how to use OBS as a virtual webcam for video conferencing solutions such as Zoom, Microsoft Teams, Skype and Google Meet.
You might want to use OBS as a webcam source as it gives you a plethora of production options, such as picture in picture, chroma key (green screen) etc. This is great if you’re giving company presentations, or just want to mess with your colleagues with a weird green screen background.
The installation complexity will vary depending on your operating system. If you’re using Windows, then congratulations, the installation is quite simple! If you’re using MacOS then ideally you’ll need a second monitor and need to run multiple programs.
It looks like this feature will soon be natively supported in OBS, as Tobi Lutke (the founder of Shopify) has just recently placed a $10,000 bounty for the feature. Until then we’re left with the following methods. Update June 2020: There is now an OBS virtual cam plugin for Mac. The mac section below has been updated with a link to it. Update January 2021: VirtualCam for MacOS is now natively included in OBS 26.1, so you no longer need to download any plugins.
Windows: Using OBS as a Virtual Webcam
- Windows Operating System
- OBS (Open Broadcaster Software)
- OBS-VirtualCam plugin (download here)
Setup:
- Install OBS-VirtualCam.
- Reboot computer.
- Setup OBS, with optional chroma key (guide here).
- In OBS select ‘Tools’ from the top menu, then ‘VirtualCam’.
- Click the ‘Start’ button. Optionally check ‘AutoStart’ if you want to have VirtualCam start whenever OBS is running.
- Done! You should now see ‘OBS-Camera’ as a webcam option. Note: You will still need to select your usual microphone as the audio source.
MacOS: Using OBS as a Virtual Webcam
Update January 2021: VirtualCam is now natively included in OBS 26.1, so you no longer need to download the plugin listed below.
Update June 2020: There’s now a MacOS version of OBS VirtualCam. This can be downloaded here. The process to use the software is basically the same as the Windows method listed above.
We’ve kept the old CamTwist guide below, but it’s no longer the best method to use.
Unfortunately for Mac users, the quality of the video output from this method is much lower than the Windows method. Additionally you will ideally want a second monitor, because if any window or program moves in front of the capture area, it will be displayed on the video stream.
Источник