我想将我的网络摄像头升级到一个以 60 fps(实际运行 60 fps)提供 FHD (1920x1080) 分辨率的摄像头,它在 Ubuntu 20.04 下完全支持,据我所知,我应该寻找一个UVC 1.5(USB 视频设备类) 兼容设备。但是,我有点担心以下帖子的结论: Logitech Streamcam 未在 Manjaro 上提供所有模式
长话短说,在UVC 维基百科 上指出,Linux 只检测 1.5 台设备而没有提供全部功能,只是试图安全地降到 1.0 或 1.1 版本。即使在最新的内核中,这个声明仍然有效吗?我们还没有完全成熟的 1.5 UVC 吗?
总结:
最新的 Ubuntu 20.04(即使内核提升到 5.6)是否支持 UVC 1.5,如果没有如何修补? (内核 5.6 应该为我们提供早期的 USB4 支持,因此是摆脱过去所有缺乏功能的好时机。)
我们是否需要完整的 1.5 UVC 支持才能获得 1080p @ 60 fps 或者是否有任何解决方法? (在https://www.ideasonboard.org/uvc/ 上说当前的 UVC 实现已经支持 MJPEG 有效负载,并且上述帖子中的 StreamCam 支持它。所以也许,我不应该坚持 1.5 版本,它只需要在配置中稍作修改?)
在过去的几个小时里,我一直在尝试让我的集成网络摄像头(我的戴尔 E7470 笔记本电脑)为 Skype 等应用程序工作。
每次启动后,相机运行良好,但在我启动视频应用程序后仅持续几秒钟(约 30 秒)。之后,任何应用程序(包括cheese
)都无法找到相机,直到我重新启动。
pastebin(抱歉没有足够的代表有多个链接)
ls /dev/video0
显示相机在那里
v4l2-ctl --info
给出以下输出:pastebin(第一部分)
hwinfo | grep video
给出以下输出:pastebin(第二部分)
ls /dev/video0
给出: cannot access '/dev/video0': No such file or directory
v412-ctl --info
给 Failed to open /dev/video0: No such file or directory
hwinfo | grep video
给出以下输出:pastebin(第三部分)
我在 Xubuntu 12.04 上使用 Logitech c270h,它适用于 Skype、Pidgin、camorama 等......我的问题是我无法使用全分辨率,即 1280x720。v4l-info
显示:
anthony@terminal:~$ v4l-info
### v4l2 device info [/dev/video0] ###
general info
VIDIOC_QUERYCAP
driver : "uvcvideo"
card : "UVC Camera (046d:0825)"
bus_info : "usb-0000:00:1d.2-2.2"
version : 3.2.30
capabilities : 0x4000001 [VIDEO_CAPTURE,STREAMING]
- SNIP -
VIDIOC_G_FMT(VIDEO_CAPTURE)
type : VIDEO_CAPTURE
fmt.pix.width : 352
fmt.pix.height : 288
fmt.pix.pixelformat : 0x47504a4d [MJPG]
fmt.pix.field : NONE
fmt.pix.bytesperline : 0
fmt.pix.sizeimage : 12800
fmt.pix.colorspace : SRGB
fmt.pix.priv : 0
Run Code Online (Sandbox Code Playgroud)
这与我所经历的结果一致。没有高清分辨率。我的设备有问题,还是驱动程序问题?是否有一些额外的配置可以让这个东西满负荷工作?
我的网络摄像头工作得非常顺利,直到我运行了一个简单的 Python 代码来拍照。我以 root 权限运行了它sudo python myapp.py
。程序崩溃了。然后我就跑了sudo killall -9 python
。
从那时起,我失去了网络摄像头。如果我运行我的程序,我会收到此错误:VIDEOIO ERROR: V4L: can't find camera device
。Cheese也找不到设备。
我用谷歌搜索我的问题,发现一些页面说我应该重新启用 uvcvideo 模块。我已经做到了,sudo modprobe -r uvcvideo && sudo modprobe uvcvideo
但是问题没有解决。
这是我的一些命令的结果:
$ lsmod | grep uvc
uvcvideo 86016 0
videobuf2_vmalloc 16384 1 uvcvideo
videobuf2_v4l2 24576 1 uvcvideo
videobuf2_core 40960 2 videobuf2_v4l2,uvcvideo
videodev 184320 3
videobuf2_core,videobuf2_v4l2,uvcvideo
media 40960 2 videodev,uvcvideo
$ sudo v4l2-ctl --list-devices
Failed to open /dev/video0: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我还应该注意到,如果我重新启动计算机,在再次lsmod | …
我在亚马逊上买了一个猫足 5mp USB 显微镜(在查看它在 Linux 上工作的评论之后)。遗憾的是,当我在 Lubuntu 16.04 上连接它时,它在 guvcview 或 cheese 中不起作用。
我做了一些调查。我在下面展示了相关部分:
ls /dev | grep video
video0
video1
Run Code Online (Sandbox Code Playgroud)
显微镜在视频 1 上,罗技网络摄像头在视频 0 上。未连接显微镜时网络摄像头工作,但连接显微镜时guvcview和cheese无法从中检索视频:
lsusb
Bus 003 Device 009: ID 0c45:6366 Microdia
Run Code Online (Sandbox Code Playgroud)
更详细的信息:
lsusb -v
Bus 003 Device 008: ID 0c45:6366 Microdia
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x0c45 Microdia
idProduct 0x6366
bcdDevice 1.00 …
Run Code Online (Sandbox Code Playgroud) 我在 Surface Pro 3 上安装了 Ubuntu 14.04。集成的摄像头/网络摄像头不工作。需要访问摄像头的应用程序无法检测到它们并抛出未找到受支持设备的错误。
我怎样才能让这个设备的相机在 Ubuntu 上工作?