Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: OBS-web – Control OBS from the browser (github.com)
121 points by NiekvdMaas 23 days ago | hide | past | favorite | 38 comments

How is OBS doing in terms of donors/engineers? I suspect the number of people discovering and using OBS went up exponentially in the past few months... I'm sure I'm not the only one who went from never having worked with live video before to running live-streaming for work/church/family meetings/etc and OBS has been a vital part in that.

I've certainly told many people about OBS and will continue to spread the word but short of donating I'm not sure how else I can help out (and I'm short on cash thanks to the lockdown).

To be frank, it could definitely use help in terms of both engineers and donors. OBS's userbase has grown from roughly 500k daily users at the beginning of March 2020 to more than 1.4 million today (on Windows -- I don't have numbers for Mac or Linux). The project only has one full-time developer, and he's frequently stretched pretty thin between developing major features, reviewing pull requests, reviewing RFCs, and having calls with industry members. Unfortunately the nature of such a complex project (both in terms of functionality and technology) is that it's hard to find people qualified to work on it who aren't already dedicated to some other project. More community contribution from skilled engineers would absolutely be welcome. For example: https://github.com/obsproject/obs-browser/issues/219 and https://github.com/CatxFish/obs-v4l2sink/issues/56

And on the subject of donors, it's tough to be able to appropriately compensate contributors without some amount of stability of income. OBS accepts donations primarily though Open Collective (https://opencollective.com/obsproject), and while there's a good amount in the bank, it's not being replaced as quickly as the project might need in order to properly fund developers at the level it needs to in the long term. A broader donor base would certainly help bring the stability needed to support that sort of effort.

And you make an excellent point with the lockdown. Now's an awkward time to want to raise funds for the project with so many people struggling financially. In fact, it's probably reasonable to say that OBS's usage has increased so much specifically due to the fact that it doesn't require anyone to pay for it, so it's less likely that the people who use it are able to help fund it.

I will say that there are efforts underway to hopefully address some of the systemic shortcomings that the OBS team has in terms of funding and development bandwidth, but things still move slowly when built on the back of a largely-volunteer workforce.

Thank you for posting this! I used OBS a little before the lockdown, and have used it a couple times during, but I hadn’t seen any reference to an open collective when I used the software.

Is there anything really obvious in the GUI that I missed? A small reminder, even after using it a few times, might help unobservant folks who want to support free software, like myself.

There's a small link in the About dialog. It could absolutely be promoted more, though.

This is kinda neat...

You run OBS in your computer, displaying video from several phones you are using as NDI video devices, and control all of that on an iPad (or something else) running a web browser.

Thinking thru this, you can run your whole home studio setup while sitting at a desk looking like an anchor/host with minimal fuss.

Honestly, I think this will help people up their game on small budget productions.

I love OBS. Waiting for it to work with Zoom again though (not their fault - that’s a Zoom thing).

On Linux it works with the latest v4l2loopback.


Zoom has to be > 5.0.? though. (I have 5.0.4)

Does it not work with Zoom on a particular platform? At least as of last Friday I used it as my virtual cam for a weekly Zoom meetup (mainly just to add some basic color correction/cropping to my webcam feed). Didn't notice anything not working, but I only used it on Win10 and didn't do anything fancy.

There is a feature of OBS called OBS-VirtalCam that presents your "program output" as a webcam on your system which you could select as your webcam input on Zoom... or Skype or Teams or anything else.


That's what I use for mine. I even messed around with using Snap's PC application to generate a virtual green screen, then using Snap's virtual cam as the input into OBS. Then in OBS I do any cropping and color correction before adding a chromakey for backgrounds and overlays and sending the OBS virtual cam to WebEx, etc.

Way more elaborate than just buying a green sheet but I didn't have to go anywhere or buy anything ;)

On macOS at least, Zoom has a list of accepted virtual cameras. I think it has something to do with code signing. You can disable code signing in Zoom, and it will let you use OBS / unsupported virtual cameras, but it then won't be able to do screen sharing.

It didn’t on my Mac the other day, and I had previously read that some Zoom changes were breaking it, but I’ll try some of the suggestions I’ve read here to see if they work for me.

This is awesome! And so incredibly timely for me personally as I was just about to set up a live streaming set-up tomorrow for a theater in the Netherlands that requires an operator to switch scenes.

That's great! Let me know if it works well for you and/or if you have any suggestions (I'm Dutch myself).

Will do! I'll use GitHub issues if I run into anything. Fantastisch project ; )!

This is smart. It's like having Elgato's Stream Deck in the browser. Well done!

I don’t see any authentication on this? can’t any website just make requests to my obs via localhost if i install this?

This is also the first thought I had. I checked, the obs-websocket plugin allows to set a password:

> It is highly recommended to protect obs-websocket with a password against unauthorized control. To do this, open the "Websocket server settings" dialog under OBS' "Tools" menu. In the settings dialogs, you can enable or disable authentication and set a password for it.

(from https://github.com/Palakis/obs-websocket).

That obs-websocket plugin seems to have some auth support. From their Readme:

> It is highly recommended to protect obs-websocket with a password against unauthorized control. To do this, open the "Websocket server settings" dialog under OBS' "Tools" menu. In the settings dialogs, you can enable or disable authentication and set a password for it.

You need to install the obs-websocket plugin first. You can set up a password there, and to expose the instance remotely you need a tunnel service like ngrok or pagekite.

looks like there's a password on the plugin it uses (it's optional though, and it resommends it specifically when putting the API online, which is probably slightly more secure)

my last job built this plus much more... almost fully controllable OBS with scripting in the browser with webrtc. we were deploying GPU instancs in the cloud and starting headless OBS with a vnc server also available in the browser so you could edit anything that's not in the web interface.

sadly all closed source.

Is is possible that you could author a high level design document of the process you followed?

This kind of control could be really useful for streamers and instructors who have production assistants in other physical locations.

No I sadly can't really talk about the process much more than this or name the company. We used AWS Elemental and/or Fastly (I left before they choosed). Wowza is great too but there is a big learning curve.

I left before the ground testing so all I have is theoretical. We had a second websocket to control our own system over the product where you could make rooms kinda like Zoom with live editing.

What are the options for publishing a live stream from the browser with no desktop app? I'm not talking about WebRTC P2P meeting limited to 10 participants, but a stream that could be published to 100,000+ people. I'm open to paid development solutions.

Hi! You mean just pick up from the browser, then publish stream to 100k+ people? That's not too difficult...

If you're ok with introducing a little bit of latency, the easiest way forward is webrtc to rtmp conversion. You could easily introduce headless mixing capability on top of https://github.com/voc/voctomix . We hacked together a quick and really dirty web frontend in https://github.com/FOSDEM/infrastructure/tree/master/ansible . It does the job, so we never felt the urge to change it...

Scaling the stream to ∞ viewers is easy using only free and open source software.

Feel free to get in touch.

Interesting! We've been looking for a replacement for our webinar platform which struggles with high load. How can I use Voctomix with guests who can join from their webcams via browser?

How do you get 100k+ people on a stream without having to have massive bandwidth? Where is the stream actually hosted?

sorry if I'm asking basic questions.

Scaling a stream is really easy using free and open source software if it's just broadcasting. rtmp backend, reverse proxy web server and hls. Done.

Scaling live interaction with really large numbers of participants is problematic both technically and socially. My research hasn't really yielded anything that can reliably scale beyond ~50 users using only free and open source software.

YT and FB allow live streaming your webcam from the browser, and there are some other options like restream Live Studio that offer simple features such as overlays/backgrounds. A full OBS-like web based studio does not exist (yet), as far as I'm aware.

I use a SaaS product [0] on my Chromebook which lets me stream various cameras to via RTMP. It was free (not sure how they make money, maybe they didn't have a monetization plan when I used it). It worked pretty well, I produced 3x streams (totaling around 19 hours) with it [1] on a Samsung Chromebook Pro, with some additional stream feeds coming into it from my Razer Phone.

[0] https://golightstream.com/studio/

[1] https://www.youtube.com/playlist?list=PLVGEH-HLZ76olPRIBvbjH...

Edit: Seems like they have a monetization plan now, and it seems reasonably priced compared to other services I looked at like livestream.com

You probably need a server to pickup your webrtc stream and multicast it out, usually in an assortment of formats depending on platforms you are targeting. The video between you and the server probably needs to be WebRTC, but downstream from the server it can be mp4/mpg-dash, etc.

Nice, if streamers exposed this to public with some moderation it could allow viewers to choose what they want to look at.

Yeah the communication protocol is simple enough you could easily wire up some kind of "vote to change scene" functionality.

Except it controls your OBS instance itself, so the scene would change for everyone at the same time.

I think they're imagining more along the lines of Twitch Plays Pokemon[0], where that's a feature, not a bug.

[0]: https://en.wikipedia.org/wiki/Twitch_Plays_Pok%C3%A9mon

Would you please go into more detail about what viewers might want to see / configure for viewing? I’m presuming it is some selection of meta overlays on top of a primary video feed. Is that correct?

That's a good example, but I've seen a good few people streaming (usually people who aren't primarily known as streamers and have dipped in their toe during the pandemic) and now and again start doing something on their computer without changing scene from the full screen webcam. A public voting system to change scene could allow a person's audience to choose the right scene.

Obviously needs guards to make certain scenes ineligible for voting (e.g., anything showing the full desktop) so people can't attempt to see anything sensitive, but allowing certain scenes (e.g., those capturing games) could be quite useful.

Basically what @mrkwse said.

Another use case would be for esports, where spectators could potentially vote which team they want to spectate each round.

In SimRacing it could be used to select Cockpit camera, Track Camera, ...

I thought they were talking about https://build.opensuse.org/

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