我正在尝试从我的网络摄像头创建一个环回设备,以便可以从 Zoom 和浏览器访问。我创建了三个 v4l2loopback 设备:
sudo modprobe v4l2loopback devices=3 video_nr=10,11,12 card_label="Loopback_1","Loopback_2","Virtual_cam" exclusive_caps=1,1,0
其次是:
ffmpeg -i /dev/video0 -f v4l2 -vcodec rawvideo -pix_fmt yuv420p /dev/video10 -f v4l2 /dev/video11
Chrome 检测到这两种设备,但 Zoom 和 Firefox 都看不到。按照关于 stackoverflow 其他问题的建议,我尝试使用 v4l2loopback-ctl 设置设备属性,使用v4l2loopback-ctl set-caps "video/x-raw,format=UYVY,width=640,height=480" /dev/video10
,并得到回应:
将管道设置为 PAUSED ... 错误:管道不想暂停。错误:来自元素 /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0:设备“/dev/video10”不是输出设备。附加调试信息:v4l2_calls.c(636):gst_v4l2_open ():/GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0: Capabilities: 0x85208000 Setting pipeline to NULL ... Freeing pipeline ... output to /dev/video10 failed
我也尝试使用 gst-launch-1.0:
gst-launch-1.0 v4l2src device=/dev/video0 ! v4l2sink device=/dev/video10
这告诉我 /dev/video10 不是输出设备:
将管道设置为 PAUSED ... 错误:管道不想暂停。错误:来自元素 /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0:设备“/dev/video10”不是输出设备。附加调试信息:v4l2_calls.c(636): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0: Capabilities: 0x85208000 Setting pipeline to NULL ...释放管道...
我正在运行 Xubuntu 20.04,内核版本 5.4.0-52-generic,带有 v4l2loopback-dkms v.0.12.3-1ubuntu0.1 和 v4l2loopback-utils。
我的目标是让桌面 Node.js 服务器使用一个设备,该服务器将使用xdg-open
(因此需要 Chrome 和 Firefox)打开一个 Web 应用程序,这将输出一个可以被视频使用的经过处理的视频流聊天应用程序,例如 Zoom 或 Jitsi。
任何帮助将不胜感激。