我最近买了一台佳能 EOS 400D,用作网络摄像头录制视频。我查看了gphoto2
文档以确保它可以用作网络摄像头。文档对于 400D 的 Liveview/webcam 列,显示“是”:
我用了这YouTube 教程介绍如何将其设置为网络摄像头并运行。我做了以下事情:
- 安装
gphoto2
、v4l2loopback-utils
和ffmpeg
- 卸载
v4l2loopback
使用:sudo rmmod v4l2loopback
- 使用以下方式激活 v4l2loopback:s
udo modprobe v4l2loopback exclusive_caps=1 max_buffers=2
- 流媒体摄像头:
gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video2
然而,我一直遇到错误gphoto2 --stdout --capture-movie
将预览帧作为影片捕获到“标准输出”。按 Ctrl-C 中止。
*** 错误 ***
io 库中发生错误(“无法声明 USB 设备”):无法声明接口 0(设备或资源繁忙)。确保没有其他程序(gvfs-gphoto2-volume-monitor)或内核模块(如 sdc2xx、stv680、spca50x)正在使用该设备,并且您具有对该设备的读/写访问权限。
错误:视频拍摄错误...退出。视频拍摄已完成(0 帧)
我不明白。我是不是看错了文档,400D 根本不能用作网络摄像头?还是我漏掉了什么?
我在用着:
gphoto2 2.5.27
libgphoto2 2.5.27
libgphoto2_port 0.12.0
Ubuntu 22.04.1 LTS x86_64 on wayland
内核:5.15.0-56-generic
CPU:英特尔 i7-8565U (8) @ 4.600GHz
GPU:英特尔 WhiskeyLake-U GT2 [UHD Gr
GPU:AMD ATI Radeon 540/540X/550/550