我想将我的网络摄像头升级到提供 FHD (1920x1080) 分辨率的 60 fps(实际运行 60 fps),在 Ubuntu 20.04 下完全支持,据我所知,我应该寻找UVC 1.5(USB 视频设备类) 兼容设备。但是,我有点担心以下帖子的结论: Logitech Streamcam not offering all mode on Manjaro
长话短说,在UVC Wikipedia 上有说明 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 版本,它只需要配置中的一些修补?)
问题解决了(至少在我的情况下)。
首先,我会感谢 Laurent Pinchart 给我的所有线索以及他在 uvcvideo 内核模块上的出色工作(他是作者)。
根据他的建议,我购买了 Logitech Brio Stream(Brio 4K Stream Edition,PN:960-001194,vId:pId = 046d: 086b),它比前面提到的Logitech Streamcam 中的 Stream Cam 稍旧,但不提供 Manjaro 上的所有模式,所以我认为它可能不会有那么大的问题。
什么?Brio 支持所有宣传的分辨率和开箱即用的 fps 1080p @ 60fps 甚至 4K @ 30fps。
(在这个答案的早期版本中,我说我在输入命令后遇到了问题
# lsusb -v -d 046d:086b
,但今天我无法重现这个错误。我同时在许多不同的应用程序中尝试它,也许有些重叠。所以这个 Brio 100% 没问题。)我可以根据这个使用guvcview中的所有设置:
我希望这对其他人有帮助。
密切关注这个线程和前面提到的关于https://superuser.com/questions/1540980/logitech-streamcam-not-offering-all-modes-on-manjaro的线程后,我最近刚买了 StreamCam . 我很高兴地报告说,它在我的 Thinkpad X1 Carbon R6 笔记本电脑(带有 Sunrise Point-LP USB 3.0 xHCI 控制器的英特尔 i7-8550U CPU)的两个 USB-C 端口上运行良好,带有 Ubuntu 20.04,内核 5.4.0。Cheese 应用程序仅记录 1920×1080@30fps,但这可能是因为它没有设置帧速率的选项。我可以以
guvcview
60fps 的全高清录制。为了将来参考,我将在下面列出有关相机的一些信息。首先是一些
lsusb
输出:v4l2-ctl
上面列出的命令的输出:不幸的是,坏消息是,在我的带有 AMD Ryzen 3600 CPU 和 B450 主板的台式电脑上,StreamCam 的工作分辨率为 1280×720 英寸
guvcview
,但是当我尝试切换到更高的帧速率或更高的分辨率时,某些东西会崩溃......也许是一个错误USB3.1控制器?我将尝试进一步调查并在我了解更多信息后在这里报告。更新
由于我的主板(技嘉 B450 Aorus Pro)只有一个 USB-C 端口,我买了一个 USB-A(公)到 USB-C(母)适配器来尝试其他 USB 端口,现在 StreamCam 在我的桌面上工作也。有趣的是,即使它连接到与 USB-C 端口相同的 USB 控制器,它现在也能正常工作。我不知道为什么 C 端口与相机有这些问题。
根据记录,主板有两个 USB 3 控制器:一个来自 CPU(USB 3.1 Gen 1, 5Gbps, 背面 4 个端口)和一个来自芯片组(USB3.1 Gen 2, 10Gbps, 1× Type C, 1 × A 型,2× 通过内部接头连接到我机箱顶部的 2 个 A 型连接器)。有趣的是,相机可以在所有端口上工作,除了连接到内部接头的两个端口(当然还有 Type C 端口)。我在日志中看到一些消息,但经过几次尝试后,我看到
usb usb2-port3: unable to enumerate USB device
并停止了进一步的检测。我想这可能是因为总电缆长度太长。IIRC USB 3.1 的最大长度为 1.5m,因此使用内部电缆和相机电缆我可以很接近。就在现在偶然发现之后 - 所以我刚买了一个罗技 StreamCam,在 Windows 中,我在 OBS 和罗技软件中得到 1080 60fps 零问题。
Ubuntu 20.04 非常不稳定,有时它最多只能以 720 30fps 的速度工作,但是一旦我触摸设置以选择不同的东西,一切都会冻结,拔掉和重新插入会产生零差异,我需要重新启动系统 - 即使这样,它有时也会尝试再次使用更高的设置并导致系统再次冻结。
这个网络摄像头是失败的原因吗?我应该把它归还给 Brio 吗?
对于遇到此问题的其他人,我让相机工作的临时解决方法是
guvcview
在尝试在另一个程序中使用它之前将相机设置设置为 720/30(在我的情况下,特别是 Discord)。我使用的是 Arch Linux 而不是 Ubuntu,所以是 YMMV。使用 USB-C 到 USB-A 适配器并将
gucview
相机设置更改为 720/30 是我在 Ubuntu 20.04 中使用带有 Microsoft Teams/Slack 的 Logitech Streamcam 所需的全部内容