obsproject / obs-studio

OBS Studio - Free and open source software for live streaming and screen recording
https://obsproject.com
GNU General Public License v2.0
59.89k stars 7.93k forks source link

[Bounty] Implement virtual camera cross platform #2568

Closed tobi closed 4 years ago

tobi commented 4 years ago

This may be against the community guidelines, if so I apologize.

Everyone is working from home. I know a lot of people who need OBS now but to broadcast into video conferencing software like zoom/meet/teams. 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 feel right now is a great time for OBS to implement this as a core feature and gain an entirely new group of users.

So here is what I'd like to see:

I know this is a tricky feature. I imagine there might be driver signing issues or simply platform limitations lurking. But if this sounds interesting and you need a project I'm happy to support this feature with a bounty of $10,000 as an additional incentive.

/cc @CatxFish

jp9000 commented 4 years ago

@johnboiles I appreciate you sharing your knowledge, if we don't need a kernel extension then that's pretty good news, if we need to switch to .pkg that might be fine as long as we can get installer signing. It would probably be a lot of work to get .pkg going again properly, but there's so much where I just feel like I need help every step of the way due to my lack of macOS experience. I just don't want to have to personally deal with that if I can avoid it. The person who takes the bounty would likely have to deal with that. We can also implement a popup or something when they attempt to use it as well, although that leaves the potential for dangling files when removing the program, which is annoying, unsure what to do in that case.

connoroday commented 4 years ago

@dodgepong

I have an inherent distrust in crypto-based solutions to these problems. I'd really rather not have to deal with it, personally.

That's the beauty of open-source and blockchain-based smart contracts - code is law, you can read it yourself, trust is not required.

That said, the UX/UI needs to come a long way, and maybe that's what you don't want to deal with, which is fair. But I think an inherent distrust is misguided :)

Fenrirthviti commented 4 years ago

In the absence of an RFC for now, let's keep this conversation on-topic.

Please no more discussion on how/when/where the bounty will be collected. Come talk to us in Discord or IRC if you have concerns, or reach out to us via email.

jebjeb commented 4 years ago

OK I started a skeleton of an RFC here: https://github.com/obsproject/rfcs/pull/15. I tried to collect some references for comparison, explain the motivation, and add some UX thoughts, but I don't know anything about how OBS works so I'm not able to flesh out design section. Please improve!

MarkBennett commented 4 years ago

I've said this elsewhere, but our biggest problem with macOS right now is we don't have any serious macOS expertise on the project. macOS is unfortunately only lightly maintained because of that fact. Even right now I'm forced to look in to all the project's macOS issues personally for every patch; thus the macOS patches are always delayed significantly. Otherwise version 25 would be out right now for macOS instead of just Windows and Linux.

As someone running multiple meetups where we all record using OBS, and the developers all use Mac, I never even realized how much work must go into supporting OBS on that platform. Thanks for what you do @jp9000!

ghost commented 4 years ago

https://about.riot.im/ https://jami.net/ https://alternativeto.net

OBS upgrades are cool but so is using a better conferencing app

Edit: So many thumbs down. LOL I guess just keep using bad software and use OBS as a bandaid.

kylecook80 commented 4 years ago

While I do not have experience with Mac-specific APIs, I do have both C and C++ programming experience. I also use OBS to teach remotely (with the Virtual-Cam plugin). I would love to see this feature added as my main workstation is a Mac. I am not here for the bounty, but I am willing to help implement, test, or otherwise contribute work to this particular feature.

I will be keeping a close eye on the conversation. I have also begun browsing and learning the source code and its design.

nurupo commented 4 years ago

My understanding that this will be implemented as a webcam/mic driver accepting RTMP stream. If so, it would be nice if it's done in a generic, non-OBS specific way, so that the driver could accept a RTMP stream from any application, not just OBS, and could be set to listen on the network, not just localhost.

This would allow for more flexibility. For example, one could setup local re-streaming: OBS sends RTMP stream to a local Nginx server, which then re-sends it to Twitch and the webcam+mic driver for Skype. Or you could make the webcam+mic driver listen for RTMP streams on LAN and stream to it from a different PC. For example, the latter could be useful when you run Skype isolated in a VM because you don't trust it enough to run on your Linux system, but you want to share the screen of your Linux host with whoever you are having a Skype video call. These are just a few examples. there is a lot you can do with this flexibility.

dodgepong commented 4 years ago

My understanding that this will be implemented as a webcam/mic driver accepting RTMP stream.

Incorrect. This would be outputting directly from OBS's renderer to a webcam device.

dodgepong commented 4 years ago

Since @jebjeb has kindly gotten the ball rolling on an RFC, I'm going to close this issue and direct all further design discussion to that thread so that we can keep this Github issue page clean.

Please continue this discussion here.

I encourage you to read the spec and make suggestions based on what is stated in there.

cweagans commented 3 years ago

@tobi Just following up here in case you missed it, but it looks like cross platform virtual cam support landed in 26.1: https://github.com/obsproject/obs-studio/releases/tag/26.1.0 -- if your bounty is still up for grabs, you may want to talk with @johnboiles @PatTheMav @CatxFish and @cg2121 (who were all credited in the release notes for the feature) 🙂

signalwerk commented 3 years ago

@cweagans I just payed my bounty 20min before your message and also reported it here