我正在尝试使用ffmpeg和v4l2loopback传输我的屏幕,在运行命令时还有更多:
sudo modprobe v4l2环回设备=1个video_nr=2个card_label=";照相机环回";
和
ffmpeg-f x11grab-帧速率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位(
OS:LinuxMint 19.3
v4l2环回:0.12.3
如果有人能帮助我,请提前感谢!。
加载videodev模块:
sudo modprobe videodev
加载v4l2环回:
sudo modprobe v4l2环回设备=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 创建
注意参数"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}