I want to make my smartphone's camera appear as an actual camera device on my desktop so any application (primarily Discord) can use it like it were a normal USB web cam.
My previous post introduced
minimal-webrtc-gstreamer, which got
as far as getting the video stream from any web browser into a
GStreamer pipeline, which reduces the problem to outputting
a GStreamer pipeline into a virtual web cam device.
install v4l2loopback. Then run
sudo modprobe v4l2loopback video_nr="42"\ 'card_label=virtcam'\ exclusive_caps=1 max_buffers=2 ./minimal-webrtc-host.py\ --url "https://apps.aweirdimagination.net/camera/"\ --receiveVideoTo /dev/video42\ --sendAudio false
You can test by watching the stream with
gst-launch-1.0 v4l2src device=/dev/video42 ! autovideosink
Note that some applications, including the current desktop release of Discord may not support the virtual camera, showing a solid black square or failing to connect to it at all. It should work in the latest Chromium/Chrome browser, including for the Discord web app.
When done, remove the virtual camera device:
sudo modprobe -r v4l2loopback