2

我有一个运行 Raspbian 10 Buster 的 Raspberry Pi 4 B + Raspberry Pi 高品质相机。我需要使用 v4l2loopback 将视频源从物理相机 (/dev/video0) 复制到虚拟设备 (/dev/video1) 以便 mjpg-streamer 和 v4l2rtspserver 同时访问它。

我加载了 v4l2loopback 模块:

sudo modprobe v4l2loopback

然后将视频从 /dev/video0 复制到 /dev/video1:

ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 -vcodec copy -f v4l2 /dev/video1

启动 mjpg-streamer 并得到以下错误:

./mjpg_streamer -i "./input_uvc.so -d /dev/video1" -o "./output_http.so"
MJPG Streamer Version: git rev: 85f89a8c321e799fabb1693c5d133f3fb48ee748
 i: Using V4L2 device.: /dev/video1
 i: Desired Resolution: 640 x 480
 i: Frames Per Second.: -1
 i: Format............: JPEG
 i: TV-Norm...........: DEFAULT
Unable to query buffer: Invalid argument
Init v4L2 failed !! exit fatal
 i: init_VideoIn failed

在 /dev/video0 上启动 mjpg-streamer 可以完美运行。

我花了几个小时试图找到解决方案。请帮忙。

4

1 回答 1

0

也遇到这种情况。我已经注释掉了它设置 v4l2 格式的部分。原因是 v4l2loopback 已经设置好了,所以你不能改变它。但是,即使这样做了,我也遇到了问题和段错误。

原因是因为 v4l2loopback 不是 UVC 设备。

于 2020-11-26T04:12:11.557 回答