Hacker News new | past | comments | ask | show | jobs | submit login

Protip: if your goal is to use your smartphone as a webcam, check out this: https://vdo.ninja

Written by some guy named Steve, it’s an incredible piece of web software that uses WebRTC to stream phone audio and video as an OBS input. OBS then features a virtual webcam capability to take that stream and make it a webcam. I can then also use OBS to do whatever processing I want, e.g. making my webcam also contain a screen share or whatever else.

It’s trivial to then load up multiple instances for multi-angle scenes in OBS, then cut between the two. For example, you could have one ‘face’ camera and one ‘page’ camera showing paper on your desk and make a 2nd scene with the ‘page’ camera as the primary and a small PIP view of your face.

It goes much farther than just being an input for OBS, though. For example, it can create video chatrooms of multiple participants with URL parameter configuration and without touching OBS (indeed that’s now one of its primary use cases).

I use it to stream applications/webpages with my partner when we’re apart so we can watch a movie together by creating a high res vid/stereo audio input with no noise cancelling as the movie, then have her and I connect as lower quality, mono+noise cancelling participants. Each of us receives the video and audio of the movie, but only the audio of each other.

There’s heaps of parameters to control video and audio quality, buffering, etc. - just about anything you need.

I stumbled across it when I was trying to get my iPhone to be a webcam early on in the pandemic. There’s multiple apps for that purpose - many paid - but this was so easy and worked so well that it blew them out of the water from a capability perspective.

I know I sound like a shill but honestly I’m just a huge fanboy. It’s one of those web apps that does a job really bloody well, with heaps of flexibility and extensibility. I’m genuinely impressed with it and all the hard work Steve’s clearly put in.

The docs explain a lot of its capability: https://docs.vdo.ninja/

Flick through the how it works and use cases pages, they’ll explain it far better than me.

Guides that show sown of the advanced capability: https://docs.vdo.ninja/guides




At work we had to create a streaming setup to provide remote training to a customer on the other side of the world that involved parachute packing & guided drone integration. Stuff that was usually done in person but due to the pandemic traveling was not an option at that time.

vdo.ninja and a couple of iPod Touch's (RIP) were really useful to give the trainers the ability to walk around the parachute loft to get up close and personal with a specific set of equipment. Combined with OBS, some powerpoint plug-ins, and vdo.ninja, we were able to bring something together that worked really well in no time at all.


PowerPoint plugins? Say more


> https://vdo.ninja

An alternative for a local network is running NDI. That's how for events we stream a bunch of remote cameras (and even computers on the network) into visual displays.

https://www.ndi.tv/

There are NDI apps for most phones etc.


Also NDI native cameras are slowly becoming a thing. I'm really in love with the Logitech Meevo. It's targeted for use with phones, but it works great with computers and OBS too. Drop dead simple to use, and with the POE kit very, very stable. I'd go something like it over a mirrorless camera hack any day.


Thanks, I’ll check this out! VDO will route locally over a LAN when it can, which helps keep latency down, but its always great to compare options.


This was the best tip of the day - this is why I read HN - to find such gems. Work smart - not hard, thank you for the tip NamTaf!!!


I use something similar to stream video from a Pixel phone over USB to OBS (Droidcam). I tried doing it over WiFi but the latency is better over a wire.


Not free, but Camo Studio is great if you're using an iPhone. Works perfectly for me.


+1 for Camo.

They recently updated it so that it works in all apps now, including FaceTime.


Does anybody know how to source a WebRTC stream for OBS inputs? In particular, I have a python program and want something that looks like: rtc = open_stream_to_obs(address) while True: rtc.send_frame(my_numpy_array)


You can directly with gstreamer, but it's a bit of a hassle to set up. You could try this python convenience library: https://git.aweirdimagination.net/perelman/minimal-webrtc-gs...


Thanks. It's kind of disappointing there isn't a simple pip-installable library that can do this without gstreamer dependency.


Hmm maybe vidgear can do it? I'm unsure about the latency you'll get out of it though:

https://abhitronix.github.io/vidgear/v0.2.5-stable/bonus/ref...


Was trying to use OBS's built in RTMP support but found it a buggy mess that would freeze/drift over time. Ended up using the free version of StreamBridge https://tricube.net/products/stream-bridge/ to convert the RTMP from IP cameras I had to NDI - and from there it worked flawlessly with OBS.

It doesn't look like StreamBridge supports WebRTC, but maybe someone else has a WebRTC to NDI converter that would be similar to StreamBridge? I really hate having the intermediate step, but I like having stable video even more :)


Another more turnkey (but commercial) option is EpocCam by Logitech.

It's a free driver download for MacOS and Windows and then a paid app for your phone (6 dollars I think) and you can use your phone as a webcam, either over wifi or USB.

It works with OBS, Zoom, Meet, and other stuff (maybe not FaceTime though? I don't use it on my Mac but I know Apple is picky about what cameras can work with FaceTime) and just shows up as a regular webcam on your system.

If you have an older or spare phone, the camera in it is likely waaaay better than a webcam.


>I use it to stream applications/webpages with my partner when we’re apart so we can watch a movie together by creating a high res vid/stereo audio input with no noise cancelling as the movie, then have her and I connect as lower quality, mono+noise cancelling participants. Each of us receives the video and audio of the movie, but only the audio of each other.

Ohh, shared media watch is still such a mess right now, and it would have been so amazing in the peak of the pandemic. Replying so I can find this in the future.


How is the latency?


If it detects it’s on the same LAN it’ll route locally, so I find it quite good. The only challenge I’ve had with latency is desync when using it for video but using a desktop mic directly into the PC for audio, as opposed to using the phone for both. However that’s possible to overcome too with delay.


Why not just join the meeting from your smartphone? ie zoom/teams? What am I missing here?


My use case was doing remote language classes. I had multiple programs open on my desktop and had my lesson book on my desk in front of me. I was looking at slides that I had to read, with PDFs open next to the slides shared during the video call. Joining on a phone was prohibitive compared to joining from my desktop.

I’d imagine anything where I need to read slides/notes on a screen would suck if done via a phone. In fact, the only time I use my phone is if my video is off and I am listening passively.




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

Search: