Share OBS output as a webcam in Hangouts, Zoom etc
lukespear.co.uk
lukespear.co.uk
App link: https://apps.apple.com/de/app/ndi-hx-capture/id1501247823
Their NDI HX camera app is also currently free. It turns your iPhone / iPad into a low latency wireless webcam.
You can use these with the OBS NDI plugin or the software provided by Newtek which turns an NDI source into a virtual camera.
If you're just looking to share your iOS device to Zoom or other meeting apps, you can long-press the Control Center "Screen Recording" icon to select which app to direct your screen sharing to.
If you'd like your iOS/tvOS device to be shown in a window on your desktop using only native iOS/tvOS/macOS tools, you can plug it into a macOS computer and use Quicktime Player > File > New Movie Recording and then select the iOS/tvOS device from the dropdown to the right of the Record button — no need to start recording — and it'll give you a live low-latency view of the iOS device.
Is there anything this good an Android? There's a lot of apps that promise to do it but they look a bit suspicious and I'm wary about putting them on my phone.
OBS can do vision mixing between Webcams, pre-recorded video files, Screen shares, NDI streams etc. with picture in picture, chroma key and many other features.
I actually wanted to do this about 10 years ago. I posted a question on superuser and it's still getting upvotes now: https://superuser.com/q/78515/742
* With the packages OBS Studio or the newest compiled
* With the DMKS v4l2loopback kernel module or the newest compiled
EDIT: Thank you for helpful comments. I managed to get this to work by:
1. Purging my existing v4l2loopback-dkms
2. Compiling latest v4l2loopback kernel module
3. Compiling latest OBS Studio
4. Compiling latest obs-v4l2sink plugin
5. sudo rmmod v4l2loopback
6. sudo modprobe v4l2loopback devices=1 video_nr=10 card_label="OBS Cam" exclusive_caps=1
7. unplugging my webcam and plugging it back in
If you're currently having problems, before trying 1-4, try 5-7. It seems like v4l2loopback is getting loaded on boot, and some combo of that and my existing webcam was messing this up. Once I rmmod the kernel module and put it back, capture works but my webcam is gone. When I unplug my webcam and put it back, it all works. It may very well work fine with the standard v4l2loopback-dkms and obs packages without having to compile latest.
I'm using this to initialize the loopback device:
#!/bin/bash
set -e
if lsmod | grep "v4l2loopback" &> /dev/null ; then
echo "v4l2loopback is loaded"
lsmod | grep "v4l2loopback"
sudo rmmod v4l2loopback
fi
sudo modprobe v4l2loopback devices=1 video_nr=2 exclusive_caps=1
lsmod | grep "v4l2loopback"/etc/modprobe.d/v4l2loopback.conf:
options v4l2loopback devices=1 video_nr=10 card_label="OBS Cam" exclusive_caps=1
/etc/modules-load.d/v4l2loopback.conf: v4l2loopback
Working flawlessly so far in Hangouts and Zoom using OBS Studio and the obs-v4lsink plugin.[1] https://srcco.de/posts/using-obs-studio-with-v4l2-for-google...
edit: Relevant section from my ~/.config/obs-studio/profiles/Untitled/basic.ini
[AdvOut]
TrackIndex=1
RecType=FFmpeg
RecTracks=1
FFOutputToFile=false
FFFilePath=/dev
FFURL=tcp://localhost:55555
FFFormat=rawvideo
FFFormatMimeType=
FFExtension=yuv
FFVEncoderId=13
FFVEncoder=rawvideo
FFAEncoderId=0
FFAEncoder=
FFAudioMixes=1
FFVCustom=
Encoder=obs_x264
FFVBitrate=15000
RescaleRes=1600x900
RecRescaleRes=1600x900
FFRescaleRes=1600x900
FFMCustom=
FFVGOPSize=50
FFIgnoreCompat=false
In the UI these stuff are set under Output > Recording, Type is "Custom Output (FFmpeg)". It did require some fiddling on the receiving side in my ffmpeg command line.I also spent an inordinate amount of time messing with it, but in the end the actual steps that worked were simple. I couldn't get it to work with my flatpak version, and Debian stable is not fun trying to compile OBS (need more recent version of cmake).
But Ubuntu should be more straightforward... Did you get the option in the Tool menu yet? The other thing I got reading through all the GitHub issues was the need to sometimes change the YUV setting in that dialogue to YU2 (from memory).
Hope you get it cracked without much grief, and I can share what I can remember fwiw.
I have it in the tool menu in OBS Studio. If I start the stream with RGB the camera doesn't work. If I start it with YUV32 as suggested in most guides, OBS just segfaults. switching it to YU2 was a helpful hint -- it just doesn't work as opposed to segfaulting.
And can you view the device in VLC even when RGB? There are individual settings per input for RGB/YUV etc which I think default to the latter.
I'm on RHEL. The install instructions for OBS Studio go on for paragraph after paragraph.
Not free, but I have successfully tested ManyCam, which I believe will work well for my streamlining the process of switching between screenshare and secondary camera sources for Zoom.
Tobi Lutke (Shopify CEO) has put out a $10,000 bounty for cross platform virtual camera for OBS
- https://twitter.com/tobi/status/1242641154576965634
- https://github.com/obsproject/obs-studio/issues/2568
- https://github.com/obsproject/rfcs/pull/15
via dashesyan https://news.ycombinator.com/item?id=22749401
Been waiting for something for OBS for a while. since 2019 when Mojave made Syphon injecting much harder due to security changes. And demand for it and any other similar injecting almost entirely waned.
gst-launch-1.0 ximagesrc use-damage=0 xid=WINXID ! videoconvert ! video/x-raw,format=YUY2 ! videoconvert ! queue ! v4l2sink device=/dev/video2
Also, I usually combine it with scrcpy, so I can share my Android phone/tablet's screen on my computer's videoconference session.https://github.com/webcamoid/webcamoid/wiki/Raw-build-and-in...
However going to the project website at https://webcamoid.github.io/ it does link to the executables, which is a little clearer.
I guess I've gotten used to going to the Github repo for projects more than most would.
Edit: also, the page conspicuously mentions several times that it can be used for "educational purposes" to steam video running on the desktop, so it seems the intention is pirating video.
But yes, showing legal or illegal copies of movies you own or don't own is possible if one were so inclined, among the myriad legit uses. I can see why it looked like that was implied.
Ok, I guess it's a neat little hack