Virtual Demosplash Resources
Presentation Hardware
Put ideas and feedback on multimedia gear here.
Cameras
- Logitech C920
- Recommended by Scenesat Kev (also recommends the C930[t] for wider FOV)
- Purchased by mdille, confirms it works fine as uvc
- Ended up getting sent chinese version which AFAICT is the same
- DISABLE AUTO EXPOSURE!! Else, it will be locked to 15fps
Microphones
- mdille has had success for various calls and semi-professional recording
- seems to work fine in linux
Audio Interfaces
- Presonus Audiobox iTwo
- Recommended by Scenesat Kev
- Purchased by kbare and lroop - seems to work fine and show up as a soundcard in linux
Video Capture Devices
- Elgato HD60S+
- Recommended by Scenesat Kev, shows up as UVC
- Says it may be choppy on Mac?
- Note the model without plus isn't UVC capable
- Recommended by Scenesat Kev, shows up as UVC
- Elgato Cam Link 4K
- 1080p @ 60fps, 4K @ 30fps
- lroop has one, seems happy, says it shows up as UVC
- Blackmagic PCIe Keith has
- somethingsomething fancy dual port PCIe mdille has
OBS
File repository: http://www.demosplash.org/streaming/OBS/
Piping OBS into Zoom, Skype, etc. on Linux
These instructions worked on Debian Bullseye. It involves installing OBS, installing v4l2loopback (a kernel module that creates a virtual Video4Linux device that looks like a webcam to software), and building/installing obs-v4l2sink (an OBS plugin that can output the video from OBS into the v4l2loopback virtual camera device). If the instructions aren't detailed enough, bug lroop about it.
- Install the obs-studio, libobs-dev, and libobs0 Debian packages and their dependencies
- Install the v4l-utils, v4l2loopback-dkms, v4l2loopback-utils, and qtbase5-dev Debian packages and their dependencies
Clone and build obs-v4l2sink
The instructions in the Git repo are OK except that you don't need to clone the source tree for OBS itself and should omit the -DLIBOBS_INCLUDE_DIR argument to cmake since you already installed libobs-dev from Debian, and cmake should be able to find libobs-dev on its' own.
Put the compiled plugin (v4l2sink.so) in the OBS plugins directory. On my machine this was /usr/lib/x86_64-linux-gnu/obs-plugins/ but if you happen to be building for ARM or S/390 or VAX or something, the path will most likely not contain the string "x86-64".
Load the v4l2loopback kernel module to create a virtual camera device: sudo modprobe v4l2loopback devices=1 card_label="loopback 1" exclusive_caps=1,1,1,1,1,1,1,1
add video_nr=X to make it appear as /dev/videoX otherwise it'll just pick the next free one
- This kernel module isn't loaded by default - you could probably do so but it may be better to not have it loaded when you don't need it.
If all has gone well, when you launch OBS you will see a "V4L2 Video Output" option in the Tools menu. Select this, select your virtual camera device, and click "Start" to send OBS' output to the virtual camera.
For Debian 10 (buster), Keith built a package for obs-v4l2sink.
Note as of Nov 2020, obs-v4l2sink isn't actively maintained and won't build perfectly for OBS 26+ (eg debian bullseye and beyond).
- Build notes
- May have to mess with cmake dependency lookup locations
May have to bypass search for ObsPluginHelpers.cmake (which isn't shipped in libobs-dev any longer) and provide a local copy
- May have to fixup .so install path
- Only YUY2 output format works - seems fine?
mdille3 has messed with this more in buster & bullseye, with OBS 26, and has it working. Poke him if you need help with that.
mdille3 also has a jessie build of OBS 22, which seems to work fine, plus the v4l2sink. Assumes you're using deb-multimedia as it's built against those ffmpeg versions. Required filling in a few dependencies from compatible library versions from stretch, plus a jessie rebuild of the bullseye version of libxcb.
General Testing
Test Pattern Generation with v4l
- modprobe vivid n_devs=1 node_types=0x1 num_inputs=1 input_types=0 vid_cap_nr=6
- Will appear as /dev/video6 (vid_cap_nr)
- use something like guvcview to preview it and select which test pattern is generated