视频4Linux
在Linux上,可以将视频流发送到v4l2环回设备,以便Android设备可以被任何支持v4l2的工具像网络摄像头一样打开。
必须安装模块v4l2loopback
:
sudo apt install v4l2loopback-dkms
要创建一个v4l2设备:
sudo modprobe v4l2loopback
这将在/dev/videoN
中创建一个新的视频设备,其中N
是一个整数(更多选项可用于创建多个设备或具有特定ID的设备)。
如果在使用Chrome/WebRTC检测设备时遇到问题,可以尝试exclusive_caps
模式:
sudo modprobe v4l2loopback exclusive_caps=1
要列出启用的设备:
# 需要v4l-utils包
v4l2-ctl --list-devices
# 简单但可能足够
ls /dev/video*
要使用v4l2接收器启动scrcpy
:
scrcpy --v4l2-sink=/dev/videoN
scrcpy --v4l2-sink=/dev/videoN --no-video-playback # 禁用播放窗口
(将N
替换为设备ID,使用ls /dev/video*
检查)
一旦启用,您可以使用支持v4l2的工具打开视频流:
ffplay -i /dev/videoN
vlc v4l2:///dev/videoN # VLC可能会添加一些缓冲延迟
例如,您可以在OBS内捕获视频或在视频会议工具内捕获视频。
缓冲
默认情况下没有视频缓冲,为了获得尽可能低的延迟。
关于视频显示,可以为v4l2流添加缓冲以延迟:
scrcpy --v4l2-buffer=300 # 为v4l2接收器添加300ms缓冲