我正在尝试找到一种方法,将佳能 EOS 600D 的视频流传输到我的系统,基本上将相机用作网络摄像头。虽然佳能提供了名为佳能 EOS 实用程序对于 Windows 和 Mac,他们似乎没有为 Linux 提供任何东西。仅使用微型 USB 连接系统才可以访问存储在 SD 卡上的照片和视频。
有什么方法可以将佳能 EOS 600D 用作网络摄像头吗?
答案1
并不容易。人们使用过两种方法来实现这一点:
使用附带的实用软件(包括实时查看窗口)并运行软件捕获该窗口中的内容。不幸的是,这在 Linux 上可能根本不起作用。
使用相机的 HDMI 输出并使用捕获硬件捕获它。
我怀疑在这两种情况下,您获得的实时取景视频将是标准清晰度和/或低质量的,并且对帧速率、快门速度/角度等进行任何调整的能力有限。在某些佳能相机上,您可能会发现 HDMI 输出在显示屏上有控件,包括即使在最小显示模式下也无法禁用的对焦矩形。
答案2
gphoto2
可以从 EOS 600D 捕捉影片,并且可以将这些影片转发到ffmpeg
并连续转发到 v4l2,以将视频作为标准网络摄像头流提供。
看https://www.youtube.com/watch?v=TsuY4o2zLVQ了解详细说明。
总之:
sudo modprobe v4l2loopback exclusive_caps=1 max_buffers=2
sudo apt install gphoto2 ffmpeg v4l2loopback-utils
gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video1
您可能需要更改视频编解码器(rawvideo
)、像素格式(yuv420p
)和目标视频设备(/dev/video1
),但此后,相机的视频流应该可以在 上使用/dev/video1
。