HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
johnboiles
obs-mac-virtualcam
Objective-C++2020–2020
johnboiles / obs-mac-virtualcam · Archived

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.

7Distinct people
10Mentions
0Explicit recommenders
4KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

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.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week10 dated mentions

Observed mentions: 2020-04-07 19:24:15 UTC to 2020-10-16 02:11:13 UTC. Weeks start Monday, UTC.

012342020-04-06 00:00:00 UTC to 2020-04-13 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 commentsApr 62020-04-13 00:00:00 UTC to 2020-04-20 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-04-20 00:00:00 UTC to 2020-04-27 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-04-27 00:00:00 UTC to 2020-05-04 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-05-04 00:00:00 UTC to 2020-05-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-05-11 00:00:00 UTC to 2020-05-18 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2020-05-18 00:00:00 UTC to 2020-05-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-05-25 00:00:00 UTC to 2020-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-06-01 00:00:00 UTC to 2020-06-08 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments2020-06-08 00:00:00 UTC to 2020-06-15 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-06-15 00:00:00 UTC to 2020-06-22 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-06-22 00:00:00 UTC to 2020-06-29 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-06-29 00:00:00 UTC to 2020-07-06 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-07-06 00:00:00 UTC to 2020-07-13 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJul 62020-07-13 00:00:00 UTC to 2020-07-20 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-07-20 00:00:00 UTC to 2020-07-27 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-07-27 00:00:00 UTC to 2020-08-03 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-08-03 00:00:00 UTC to 2020-08-10 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-08-10 00:00:00 UTC to 2020-08-17 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2020-08-17 00:00:00 UTC to 2020-08-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-08-24 00:00:00 UTC to 2020-08-31 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-08-31 00:00:00 UTC to 2020-09-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-09-07 00:00:00 UTC to 2020-09-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-09-14 00:00:00 UTC to 2020-09-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-09-21 00:00:00 UTC to 2020-09-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-09-28 00:00:00 UTC to 2020-10-05 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-10-05 00:00:00 UTC to 2020-10-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-10-12 00:00:00 UTC to 2020-10-19 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsOct 12

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Apr 62020-04-06 00:00:00 UTC2020-04-13 00:00:00 UTC202
Apr 132020-04-13 00:00:00 UTC2020-04-20 00:00:00 UTC000
Apr 202020-04-20 00:00:00 UTC2020-04-27 00:00:00 UTC000
Apr 272020-04-27 00:00:00 UTC2020-05-04 00:00:00 UTC000
May 42020-05-04 00:00:00 UTC2020-05-11 00:00:00 UTC000
May 112020-05-11 00:00:00 UTC2020-05-18 00:00:00 UTC211
May 182020-05-18 00:00:00 UTC2020-05-25 00:00:00 UTC000
May 252020-05-25 00:00:00 UTC2020-06-01 00:00:00 UTC000
Jun 12020-06-01 00:00:00 UTC2020-06-08 00:00:00 UTC413
Jun 82020-06-08 00:00:00 UTC2020-06-15 00:00:00 UTC000
Jun 152020-06-15 00:00:00 UTC2020-06-22 00:00:00 UTC000
Jun 222020-06-22 00:00:00 UTC2020-06-29 00:00:00 UTC000
Jun 292020-06-29 00:00:00 UTC2020-07-06 00:00:00 UTC000
Jul 62020-07-06 00:00:00 UTC2020-07-13 00:00:00 UTC000
Jul 132020-07-13 00:00:00 UTC2020-07-20 00:00:00 UTC000
Jul 202020-07-20 00:00:00 UTC2020-07-27 00:00:00 UTC000
Jul 272020-07-27 00:00:00 UTC2020-08-03 00:00:00 UTC000
Aug 32020-08-03 00:00:00 UTC2020-08-10 00:00:00 UTC000
Aug 102020-08-10 00:00:00 UTC2020-08-17 00:00:00 UTC101
Aug 172020-08-17 00:00:00 UTC2020-08-24 00:00:00 UTC000
Aug 242020-08-24 00:00:00 UTC2020-08-31 00:00:00 UTC000
Aug 312020-08-31 00:00:00 UTC2020-09-07 00:00:00 UTC000
Sep 72020-09-07 00:00:00 UTC2020-09-14 00:00:00 UTC000
Sep 142020-09-14 00:00:00 UTC2020-09-21 00:00:00 UTC000
Sep 212020-09-21 00:00:00 UTC2020-09-28 00:00:00 UTC000
Sep 282020-09-28 00:00:00 UTC2020-10-05 00:00:00 UTC000
Oct 52020-10-05 00:00:00 UTC2020-10-12 00:00:00 UTC000
Oct 122020-10-12 00:00:00 UTC2020-10-19 00:00:00 UTC101

What Hacker News says

10 sources
Note for anybody thinking they want to use this with Zoom/Slack/Discord/etc: It appears that this has the same restrictions that other DAL-based apps have and you'll need to re-sign the app or disable SIP to use it that way. I've been using an OBS virtual camera for this purpose and have had to do this a few times now. It will depend on the target app if they have this in their allowed plugins list. https://github.com/johnboiles/obs-mac-virtualcam/wiki/Compat...
In Show HN: NeuralCam Live – Using ML to Turn iPhones into Smart Webcams
FWIW there's definitely some performance optimization that could be done in my plugin. Three things I know of: 1) Potentially an entire framebuffer memory copy could be avoided if we could get CMBlockBufferCreateWithMemoryBlock to work. See the CMSampleBufferCreateFromDataNoCopy method (currently unused -- linked below) in my code. It mostly worked but the virtual camera video wouldn't show up at full resolution in OBS, which is how I typically test while developing. Not sure why it wasn't working; possible it's an obscure OBS bug. https://github.com/johnboiles/obs-mac-virtualcam/blob/master... 2) It might also be possible to get the virtual camera to advertise one of the pixel formats that OBS supports natively which would avoid the pixel format conversion in the CPU. I _bet_ this is where the majority of the performance hit from my plug
Read the rest
in happens. I'm not sure if this is possible, however. Maybe OBS doesn't natively support any formats you can use for virtual cameras. https://github.com/johnboiles/obs-mac-virtualcam/issues/102 3) If #2 isn't possible, maybe the pixel format transformation could happen on the GPU? I don't know much about GPU programming but maybe this would help.
In OBS (macOS) Virtual Camera
The Zoom release notes are a bit misleading. They didn't enable all virtual cameras, but instead a very specific list of virtual cameras. Here's how you can see that list strings /Applications/zoom.us.app/Contents/Frameworks/nydus.framework/Versions/A/nydus | grep "Developer ID Application" A number of folks have reached out to Zoom support to request that my plugin be added. See the latest in https://github.com/johnboiles/obs-mac-virtualcam/issues/4 for details. I wouldn't fault Zoom for being restrictive about what they include in their allow list, since every addition adds risk, but it looks like they've already included closed-source applications from individuals as of 5.0.5. At least my code is open source and auditable!
In OBS (macOS) Virtual Camera

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.