怎么让我的 USB 摄像头正常工作?

系统:Ubuntu,Khadas official images

症状:

USB 摄像头没有加载成为 /dev/video*。

日志截频

那什么 uvcvideo 的一串错误看上去是导致摄像头加载失败的原因。
还有我一直想说,为什么我什么设备都没有接的情况下,ll /dev/video* 就会显示 33 个设备?
这让 Edge2 看上去一直像一个半成品……
期待早日改进。

请给予我一些指导,让我能够至少把 USB 摄像头用起来,
使用 ffplay 或者 gst-launch-1.0 能够取到图像。

Hello @qixiaofeng-gst

你是用的目前最新的固件吗?

还有就是用的什么型号的摄像头?看打印信息加载报错了。

我这边测试手里的罗技和海康威视的摄像头都是可以正常识别的。

$ v4l2-ctl --list-devices
USB PHY 2.0: USB 2.0 Camera (usb-fc800000.usb-1.1):
        /dev/video35
        /dev/video36
        /dev/media5

HIK 2K Camera: HIK 2K Camera (usb-fc880000.usb-1):
        /dev/video33
        /dev/video34
        /dev/media4

注意:对应的节点是从/dev/video33开始的。

这些video节点是其他驱动创建的。你可以先不用管这些。

这里有一个从UVC抓取图像,并进行硬件解码,然后在进行H264、H265编码的例子,如下:

解码+H264编码:

gst-launch-1.0 v4l2src device=/dev/video33 io-mode=mmap num-buffers=300 ! image/jpeg, width=1920, height=1080, framerate=30/1 ! mppjpegdec ! mpph264enc ! filesink location=/tmp/test_33.h264

解码+H265编码:

gst-launch-1.0 v4l2src device=/dev/video33 io-mode=mmap num-buffers=300 ! image/jpeg, width=1920, height=1080, framerate=30/1 ! mppjpegdec ! mpph265enc ! filesink location=/tmp/test_33.h265
1 Like

谢谢回复!
经过你的指点,我找到了 /dev/video33,也通过 gst-launch-1.0 成功取到了图像。

我的固件是这个版本:edge2-ubuntu-22.04-gnome-linux-5.10-fenix-1.2-221018-emmc.img
摄像头是 IMX415 和 IMX258 中间用了驱动板转接成 USB 接口。