我正在尝试从我的网络摄像头创建一个环回设备,以便可以从 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
Run Code Online (Sandbox Code Playgroud)
其次是:
ffmpeg -i /dev/video0 -f v4l2 -vcodec rawvideo -pix_fmt yuv420p /dev/video10 -f v4l2 /dev/video11
Run Code Online (Sandbox Code Playgroud)
Chrome 可以检测到这两种设备,但 Zoom 和 Firefox 都无法检测到。根据 stackoverflow 上其他问题的建议,我尝试使用 v4l2loopback-ctl 设置设备属性,使用v4l2loopback-ctl set-caps "video/x-raw,format=UYVY,width=640,height=480" /dev/video10,并得到响应:
将管道设置为暂停...错误:管道不想暂停。错误:来自元素 /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0:设备“/dev/video10”不是输出设备。附加调试信息:v4l2_calls.c(636):gst_v4l2_open():/GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0:功能:0x85208000将管道设置为NULL...释放管道...输出到/dev/video10失败
我还尝试使用 gst-launch-1.0:
gst-launch-1.0 v4l2src device=/dev/video0 ! v4l2sink device=/dev/video10
Run Code Online (Sandbox Code Playgroud)
这告诉我 /dev/video10 不是输出设备:
将管道设置为暂停...错误:管道不想暂停。错误:来自元素 /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0:设备“/dev/video10”不是输出设备。附加调试信息:v4l2_calls.c(636):gst_v4l2_open():/GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0:功能:0x85208000将管道设置为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。
任何帮助将不胜感激。