The problem#
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.
The solution#
Download minimal-webrtc-gstreamer
and
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