谷歌浏览器无法检测到 v4l2loopback 设备

时间:2020-12-30 23:16:52

标签: google-chrome v4l2 v4l2loopback

我正在尝试使用 ffmpegv4l2loopback 传输我的屏幕,运行命令时更多:

<块引用>

sudo modprobe v4l2loopback devices=1 video_nr=2 card_label="相机 环回"

<块引用>

ffmpeg -f x11grab -framerate 30 -video_size 1366x768 -i :0.0 -f v4l2 /dev/video2

chrome 未检测到以下设备:/dev/video2,我尝试了一切使其正常工作,但 chrome 未检测到它,我尝试添加过滤器:

<块引用>

-vf 格式=pix_fmts=yuv420p

但还是什么都没有。

<块引用>

Chrome:87.0.4280.66(64 位)
操作系统:LinuxMint 19.3
v4l2loopback: 0.12.3

如果有人可以帮助我,在此先感谢您!

2 个答案:

答案 0 :(得分:1)

加载videodev模块:

<块引用>

sudo modprobe videodev

加载v4l2环回:

<块引用>

sudo modprobe v4l2loopback devices=1 video_nr=2 exclusive_caps=1 card_label="ExternalWebCam"

重要细节:Chrome 仅接受 yuv420p 像素格式的缓冲区,这很有意义,因为相机将此像素格式作为标准。

使用示例:

<块引用>

ffmpeg -f x11grab -r 30 -s 1366x768 -i :0.0+0,0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video2

此命令,将屏幕流式传输到 /dev/video2 设备,由 v4l2loopback 创建

答案 1 :(得分:0)

注意参数“exclusive_caps”,在 Chrome 中工作所必需的,以我的脚本为例,它创建了三个摄像头

#!/bin/sh

MODULE_OPTIONS="devices=3 video_nr=11,12,13 exclusive_caps=1,1,1 card_label=X_11,X_12,X_13"

rmmod v4l2loopback 2> /dev/null
modprobe videodev
insmod ./v4l2loopback.ko ${MODULE_OPTIONS}