Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Proposed bounty for adding virtual camera / microphone support natively to OBS (github.com/obsproject)
223 points by prodigyboi on March 25, 2020 | hide | past | favorite | 99 comments


This makes me think. Is there a service that handles crowd-sourcing and processing payments a bit like Kickstarter but on a smaller scale? Say, if someone proposes a feature and the developer says "I'll do it for $300", users could donate until the goal is reached. With the promise of payment, the developer can go ahead and spend the time/effort, and everybody wins. But setting up a Kickstarter, IndieGogo, etc is too big of a deal for a $300 feature/bug fix.

GitHub Sponsors (https://github.com/sponsors) already exists, but I feel that they missed the point. As a user, I don't want to throw money at a project like it's a charity, I want to throw money so issues will be solved. As a developer, I don't want to accept unconditional donations (and all the unwritten, assumed responsibilities it comes with), I want to be funded in a concrete way so I can work on the issues users want so much they'd pay for it.


I think bounties create an unhealthy incentive structure. The kind of thinking you expressed in your post that payments shouldn't be seen as "charity" leads to people trying to not "waste" their bounties.

They'll add it to issues the maintainers won't do otherwise, which in turn leads maintainers to hold the code hostage, not doing something they'd have done had there been no bounty structure, hoping that someone posts a bounty for it. Of course a maintainer is one of the world experts in that codebase so knows really well which things can or have to be done. So that behaviour will lead to maintainers not addressing issues they know will annoy users. It leads to annoyance driven development.

Regular payments are far better IMO for projects long term because they allow maintainers to actually maintain the software instead of hunting for bug bounties. They give more security to maintainers (rent is pretty much a constant for example) and less overhad for users (unless they want to save money and use it most efficiently, but IMO that's not what donations should be about). That being said, bounties aren't bad overall, they are definitely great ideas if used here and there, but funding of open source projects shouldn't be bounty-driven.


I can't speak for others, but many of my company's open-source projects are not open-contribution (meaning I don't accept PRs unless I hire you). Features are added because funding comes from somewhere else, but it would be nice to have a second option for users to fund a feature directly.


Just curious, what do you gain from having your code be open-source if you do not accept outside contributions?


Users can enjoy these four freedoms when using our software. https://www.gnu.org/philosophy/free-sw.en.html

If you're asking what we benefit from doing this, not much. We could have released proprietary software, but as users of software ourselves, we enjoy having these freedoms, so we don't want to restrict users of the software we write.


Mate, I haven't felt as happy reading a comment on this website as when I read this comment of yours. Keep up the excellent work and I hope you find a lot of success!


It gives users of the code the ability to inspect it and understand what is going on.


There's room for both models. Some people operate better under one incentive structure and others under a different. There's probably one structure that is better for more people than others, but maybe we should normalize both and encourage exploration.


Agreed, if bounties conventionally worked like that I would feel incentivized to not contribute to OS projects unless there was a bounty. I dunno, maybe it'll still be a net benefit with an influx of bounty hunters. Hard to say really.


Well, if there was more market for bounties then surely you’d have no problem asking for a bounty in order to contribute that feature to the project?

I don’t see an issue with people saying “here’s my contrib if the community is willing to pay for it XX”.

One could even see maintainers becoming the budgeteers of aforementioned projects.


Depends. If the bounties are created by the maintainers themselves, funded from something like Open Collective, I think it can be a healthy way to get the community involved and help maintainers get things done that they wouldn't be able to work on themselves. If bounties are only exclusively created and funded by the community, I can see how this could be a problem.


> As a user, I don't want to throw money at a project

To be fair, GitHub Sponsors doesn't even allow you to sponsor a specific project, but only users or organizations.

I think BountySource (https://www.bountysource.com/) was the first player on the "Bounties for GitHub issues" side of things. Long time ago I actually came across a issue with a bounty though, so not sure it's actually working at the moment.

https://gitcoin.co/ is another attempt at aligning the incentives, but it's heavily involved in the cryptocurrency ecosystem and also been spamming projects in order to be setup on their platform, so I've been kind of avoiding it.

I think Open Collective seems to be the best platform for supporting projects with funding, but they don't have any "per issue" funding as far as I know. But it's a open project, someone should propose that feature!


Gitcoin does this.

It's a tool where users post bounties for features. Usually the owner of an open source project would set up a bounty and say "$xxx to fix this" and open source developers can apply to work on the problem, once its approved they get the funds.

But, if community members really value the project they can chip in more funding to the issue.

Currently the system is set up to use Ethereum and DAI (an ethereum USD stablecoin) to handle transactions, and Gitcoin's smart contract acts as the escrow account for the work.


$300 just buys you a half day of developer time, I suspect the sponsor wants a proper professional job done that works with and is tested with a range of hardware.


On my own open-source projects, there are hundreds or thousands of issues I'd solve in half a day if I got $300/ea. That'd keep me fully employed for months or years! And I actually have the users that would donate 6 figures / year cumulatively to make that a reality. But orchestrating the money would be a nightmare without a service that is simple to use from the users' perspective. BountySource is alright, but I'm not impressed. It's still a bit difficult to use and navigate compared to the average checkout system, or Kickstarter itself.


Kickstarter is more suitable for larger projects.Github could work with a little bit creativity on top, however that's the place for technical people. A platform,where a feature could be requested and payouts are as simple as one click would be fantastic. I think the platform part would be the easiest to implement.To ensure the whole thing works well for devs and clients well+ doesn't attract bad actors,etc. would be more difficult to get right.


With 300 for a half-day, it would be 600 for a full day and 12000 for 20 days of work.

In most parts of the world, that's an extremely high level salary and could easily fund most peoples month, granted they live outside of Silicon Valley.

I'm sure many people would be more than happy to receive 300 or much less for half a day of work.


But my point was its not a quick half day fix for some minor formatting on a website - which you can out source offshore.

Your talking windows audio /video internals which is not a common skill


I believe the goal included linux also.


The going rate for a developer is about £300-600 a day in North Europe for relatively common skillsets such as C#. It isn't just silicon valley.

The $10,000 bounty is about right for this sort of work. In fact it might be a little low, but I have no idea how OBS works internally so I could be completely wrong.


I don't think it's a problem of OBS, but the problem of writing a dummy v4l-device it seems. which IS more complicated! (though I wonder what it's used for)


$300 is gross. You have to pay taxes on this. In many developed countries this would be $150 after taxes.


Can we stop talking about $300? It was a random number used as a variable that can be replaced with any dollar amount.



> I want to be funded in a concrete way so I can work on the issues users are willing to pay for.

I like the concept of a utility-based market.



Looks like a direct clone of BountySource (in the same way that GitLab cloned GitHub), but this looks a lot better and solves some of the UI problems of BountySource.


Open Whisper Systems had one called BitHub, but it looks like it's dead. Last commit was five years ago. :-\

https://github.com/signalapp/bithub


Check out https://www.boss.dev/ (full disclosure, I made it)


gitcoin is one i've seen.


To test this, I signed up and pretended to contribute to a random project. "Where's the place to enter my credit card info to fund a grant??" 99% of users would leave at that point.

Yes, I'm aware this is based on a cryptocurrency system. But I would never want to force my users to navigate that mess in order to simply give me a few bucks. I'm just joking around above, but I don't think Gitcoin gets close to solving the problem.


Let's not jump to conclusions here. The 10k bounty has been _proposed_ but not yet accepted by the maintainers of OBS. As dodgepong writes:

> Thus, the only way I think we as OBS would be comfortable offering a bounty is if we have set concrete requirements for the PR ahead of time. That concrete set of requirements is defined and ironed out in the RFC process.

So they want to have a RFC with a bounty attached to it, before the bounty is actually "activated".

In before all you rush to implement the feature.


Ok, we've proposed the title above. Thanks!


For the purposes of pranking people on zoom calls, I setup a OBS / Syphon / Camtwist flow that works great for my alternative conference requirements (ranging from matrix style graphics, playing videos of me on the green screen doing things in the background, scrolling comments on the meeting on my video feed etc...).

However... it is a major MAJOR PITA to get going when I want to jump on a quick call and more than often I'm in and out of the meeting a few times because of annoying defaults or software I forgot to start. But that 1 in 10 prank feeling? Well worth the 9 false starts.

I'd love OBS to work on its own to remove a few more steps from my setup!


If you can share a view details on your setup that would be great!


FYI Syphon (which is used to link OBS to CamTwist) stop working since MacOS 10.15 since their "hack" that was making the whole thing work, stopped working.


For "light" shenanigans, install: http://camtwiststudio.com/

On the mac, Version 3.4.3 is working fine with Catalina (10.15.4).

It adds in a virtual camera interface and you can configure a pipeline of sources or pipelines.

An easy setup is: - Webcam (set to FaceTime HD Camera) - Matrix effect

A more complex one is: - Add webcam - Select "movie" but press PIP - In the PIP Movie settings, "Swap with Video Source" - Mess with the Chroma key settings (you need a solid background color) for Chroma to work. I use a bed sheet :)

I'll circle back with the OBS/Syphon Pipeline/CamTwist shortly as it was much more involved!


yes, seconding this


I did this by mistake today using XSplit broadcaster + Xsplit VCam. I was playing around last night, and when I logged in this morning my work video conferences (Hangouts, Teams) all had an extra (virtual) cam with funny stuff going on in the background from the various features I had played with on Xsplit. Funny, but also frustrating until I switched it off in the background


Man, I created ScreenTime (https://tryscreentime.com) (yes I'm aware of the name), which at its core, is a virtual camera driver.

This is right up my alley, but then I guess this isn't about paying one dev to do the job, is it? More like contribution to the whole OBS project. I'm not sure how this works (?)

(FYI, if you're interested in running my app, you'll need to disable SIP on 10.14+)


You could probably do it yourself if you wanted, I don't see any reason why not. I suppose the main concern is whether anyone else is already working on it, and if it will be a race. If you want to work on it, I suggest you post saying so, and start working on a design document to post on the RFC page.


Tobi (Shopify’s CEO) has put up the bounty.


> I personally use obs-virtual-cam on windows but most of my company and most of the tech world lives on mac for work.

I was wondering about that some days ago that how many "high profile" CEOs are outliers in their company using Windows or Linux


its just because my home office is a gaming PC. But now it turns out its significantly better because of the obs-virtualcam plugin working well on windows. This should be a default feature, hence the bounty.


Ah thanks for the personal reply, appreciate it


Only some of the tech world lives on MAC and basically streamers use PC's.The other way of course is to use a second PC.

What of course should be done is have this as part of the operating system and for audio too - id like to use Ableton live as the audio input into my Hangouts etc.


At least on Windows this has existed forever. On Windows 10 Config Panel -> Sound -> Manage sound devices -> Recording and choose your sound card to set as default input


I wasn't clear I want to route the output of a programs like Abeltron, Audacity etc and maybe route more than one audio source

And don't get me started on the total Goat Rope that Windows Audio seems to have turned into - for what ever reason a lot of laptop's using realtek sound has been broken since an update about 6 7 months ago


Not exactly the same scenario, but I just wanted to share a neat little hack I discovered yesterday… I work with a team who now meet in Google Hangouts but it doesn’t work over the company’s internal network yet… so I couldn’t share my screen to do a demo of an internal app. Instead, I got another computer which was on the internal network, plugged the HDMI output into an Elgato Camlink, which made it show up as a Webcam. Beyond needing two computers, it worked much easier than I thought—more reliably actuallly than any camera I’d plugged into the Camlink until now.


> plugged the HDMI output into an Elgato Camlink, which made it show up as a Webcam

I love this solution too, but just making a note for folks who use GoToWebinar: the max webcam output resolution is still just a miserable 720p, so this approach doesn't work as well for sharing apps & desktops there.

You can have a higher-resolution webcam (like this trick), but GoToWebinar still only sends your webcam stream out at 720p, so it looks terrible on the other end.


You can get a noname HDMI in USB 3.0 Capture box from AliExpress for around $50 that will also work.


Sure, I imagine any kind of HDMI capture solution would work! I was just amused that this gadget I had which is marketed for capturing camera output—for which it frankly doesn’t do a stellar job—worked so well for this specific purpose


I'm using the v4l2sink plugin to stream into v4l2loopback and tell google Meet/zoom/whatever "hey, dummy 0x00002 is my webcam".


same here it works well and I use it to do share screen with my video on it and stuff like that. the only thing is that many video places are degrading video so much that text is impossible to read (zoom for example). I wish they would allow the use of the same encoding they use for share in these cases... another way is to have a single virtual window shared but it doesn't work well with wayland for example which made me wish about the ability to have a virtual screen managed by OBS.


What distro? Nobody I know has been able to make that work!


Works for me on Ubuntu 18.04.


I did this on Arch as well.


Ubuntu 18.04


Sounds interesting, what are the common use-cases for this?


You can use OBS for things like compositing a video of your face over a video of your computer screen, and allowing output to a loopback monitor interface (i.e. virtual camera / microphone) would allow you to share that view via generic video conferencing software like Jitsi or Zoom.


This. It's currently impossible, AFAICT, to use OBS to composite/produce a stream that is fed into video chat software like Zoom, Hangouts, Bluejeans, etc.


Using a plugin for OBS (Windows at least), you can absolutely output to a virtual camera, and use all of the compositing, filters, scenes etc in OBS. You don't get audio output, but you could probably solve that with a virtual audio cable. I do the video thing with Workchat and Bluejeans without issue, and just use my headset for audio.

I currently composite a view of my local harbour, my webcam, and a chroma-keyed nyancat gif, with a second scene for full-sized webcam. Works a charm, and actually uses less CPU that Chrome does when Chrome is routing that video to the VC.


Yesterday (actually 3h before that bounty was posted), I wanted exactly that feature, but I couldn't get it soon enough (I did find obs-virtual-cam at the same time as the bounty was posted, what are the odds).

A bunch of friends and I were listening to a live quiz, on Facebook and we were in a Messenger video calls together to solve it together. The issue was that it was quite hard to watch it together while being live together, so I just pointed my phone at my computer screen, but it was far from ideal.

Essentially my goal was to screenshare on my computer and then the sound quality would have been much better. Messenger does support screenshare but it's weird and doesn,t seems to works if someone is on his phone (which we all were).

So essentially the use case is to share your screen, but also be able to add stuff to it, like your own webcam, and use that on ANY streaming software. Many does support screensharing, but not all of them, and even if they do, adding a camera on top of it is most probably not possible.


My company has a ton of video content we need to deliver, all of which has been moved from studio recordings to zoom. Recording webcam locally using obs while passing the webcam through to zoom doesn't have an easy solution, but we want one badly.


On the Mac, Telestream Wirecast ($599) [1] does this.

Not saying Wirecast is better or worse than OBS - although for me, on the Mac platform, Wirecast was way better. I can capture a desktop or app window, overlay my webcam on top of it in the bottom corner, use chroma key to remove my background, and then I float on top of apps. That video feed can be outputted as a webcam stream that works with GoToWebinar, Skype, Hangouts, etc.

You can see examples of what it looks like to attendees via my blog: https://www.brentozar.com/archive/2020/03/free-fundamentals-...

One drawback is that some webcasting apps (GoToWebinar in particular) have a max webcam output resolution, like in GoToWebinar's case, 720p. That means you have to be really careful about which apps/screens you try to share as a webcam.

[1]: https://www.telestream.net/wirecast/


OBS can do all of that except nativley output a virtual camera. I use windows and the virtual cam plugin works well for that, though it doesnt do the audio. I think you can set it up externally to obs using a virtual audio cable driver but I haven't really needed it.


> OBS can do all of that except nativley output a virtual camera.

Right, that's literally the title of the article we're commenting on: OBS can't do that thing that we need.


I think that person's reply was prompted by you saying that Telestream was "way better for you" but then listing all but one feature provided by OBS.

Note that I don't have a horse in this race. I've only used basic features of OBS and have never heard of Telestream. I'm just pointing out the possible miscommunication here.


What's "OBS?"

That would be valuable information.


OBS is probably most widely known in the twitch / mixer streaming world.

It allows you to layer your inputs and different overlays together to create a single video output that includes things such as video games, webcam feed, etc. The video output is typically either recorded straight to video file for upload to youtube, or for streaming directly to a supported streaming service.

It's not purely used for video games, mind you.

In this case I believe the idea is that you would use OBS on your local workstation to setup your own web cam and a view of your desktop / work space for the purposes of peer development etc, and then pipe that out as a virtual webcam to other software that only support webcams as inputs.

That's my guess for what's going on here. Hope someone gets some good money from this.


> It's not purely used for video games, mind you.

Indeed. I also use it to stream sports with the scores as an overlay, and to record training videos.

Basically if you're doing anything "live" with video, it's the tool you want.


Another option that's a little higher end is to use a dedicated video production rig, and feed that into your computer (or use the rig's direct integrations). Something like a Tricaster (https://www.newtek.com/tricaster/), which is very popular for live event video production.

The more complex the setup, though, the more likely you'd need additional people working the controls. (But also, the more flexibility and conveniences you get).


This is how I use OBS as well. I use a Tricaster Mini, and it has the ability to do a live stream of its output as a feature. However, it taxes this little computer to such an extent that the external power supply gets incredibly hot (too hot to touch). I now use OBS on a laptop to create the stream relieving the Tricaster of that duty. The Tricast power supply doesn't even get warm now.


Doesnt Microsoft Teams and other conferencing tools call this feature "screen sharing"?

Also, for development, why dont people ssh into a shared server and multi tmux together? Thats a kind of screen sharing.


This is about having OBS' output appear as a video source on the operating system.

You're solving the wrong problem. :-)


I understand what it is, there is just no point to doing it. Its typical "i always use tool X to do Y, so now I want tool X to do Z when there is a tool B doing Z already." But whatever, go on.


Screen sharing works in many video conferencing software packages but OBS gives you a lot more options. Frequently on Twitch you'll see the game taking up most of the screen, a video of the host overlayed on the video, with smaller areas showing parts of other windows, text, and videos. It also lets you save any number of these scenes and transition between them smoothly.

I was actually trying to get this working for myself because I'm doing a presentation in a few days and I'd like to be able to swap between myself full screen, and then either the slides or another piece of software with my face in a smaller area. If a "virtual webcam" tool was available for OS X I would be able to pipe that into Zoom.

I could just do a screen share and switch back and forth but I want to do something a little more polished.


What is Twitch? From your perspective, if I google it Ill likely just come to a presentational wall-paper saying sign up and give up privacy, and maybe install this on your computer in order to gain some highly sought after...videos of people playing games?


Sounds like you already have some idea of what Twitch is and you’re trying to be glib but yeah basically it’s a live-streaming platform, and sometimes people stream themselves playing videogames.


> there is just no point to doing it

Says you.

Do you actually not believe that other people may have goals/motivations/needs that you don't understand or see as necessary?


Following the links leads to the Open Broadcast Studio project at https://obsproject.com/

I concur that letting non-obvious abbreviations stand is a bad thing because it wastes the time of N readers who would need to look it up while it saves the effort for 1 writer who already knows and only has to write it out. This is inefficient.


I guessed it could not possibly be the only OBS I was aware of https://openbuildservice.org/


Open broadcaster software (studio) is a open source broadcasting tool, mainly used for recording and streaming videos of: video games, vlogs, video podcasts, etc. Basically an open source version of xSPlit.


Webcamoid (which can add special effects to video) has virtual camera support for MacOS but, due to driver signing requirements, it only works if you're willing to disable SIP.

https://webcamoid.github.io/


Slightly on topic: Does anyone know if a solution to get remote guests into OBS? Vimeo Studio 6 supports sharing a web link to a page that then feeds the guest webcam back to Studio and guests appear as video sources.

There are some propriety Skype solutions, but they are not cross platform and Zoom can share a feed, but neither give you access to the individual camera and audio feeds.


I'd like the audio input to be able to pick up desktop sounds on MacOS the way it works on Windows. Is there a bounty on that?


> I'd like the audio input to be able to pick up desktop sounds on MacOS the way it works on Windows.

Even paid apps like Wirecast are having a hard time figuring out a workaround for that. I ended up using Loopback from Rogue Amoeba ($99), and it does the job absolutely beautifully. You configure your Mac's audio output to point to Loopback (which shows up as an audio output device), and then you use your broadcasting tools to use Loopback (which also shows up as an audio input device). You can do mixing, too.


Blackhole[1] is a better, newer and free solution for these kinds of internal OSX audio routing issues.

[1] https://github.com/ExistentialAudio/BlackHole


FWIW, I was unable to get Blackhole working reliably (having dealt with this problem several times on Windows, Linux and Mac in the past). It seems very sensitive to which devices are being used in aggregate audio outputs. Might be MacOS's fault, but in any case it didn't work very well when I tried it.


> Blackhole[1] is a better

I took a quick look at the issues list & features request, and I'm going to disagree with you there. For example, you can't route the output to different monitor devices and change their volumes. (I often use my headphones as a mixing monitor.) It looks like a neat free alternative, though.


Very thoughtful replies! Thanks to both of you!


Wow, what a badermeinhof, yesterday I tinkered with installing the virtual camera plugin in OBS to prank my coworkers with some Fraggle Rock action. Video works, but not audio. Which maybe is just as well for my use case.

Oh. Yeah, the self quarantine - of course many will be find out about OBS these days.


Linux is supported with V4L2 https://imgur.com/a/BvkPfP9

What's the problem with it?


This isn't about getting input from a camera (which works fine), but making the output of OBS appear as a camera to the rest of the system.


That's what the above software is for.


My first guess would be a lot of people use OBS for game streaming and a lot of games are Windows-only.


Looking at the OP Windows already have a similar solution. Only macOS doesn't have one.


The OP also wants a similar one for the sound/mic, not only for the video. Also he wants a working solution for non-tech people.


Your example is (from the looks of it) using V4L2 as a source, the linked bounty wants to use V4L2 as a sink.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: