我正在尝试找出一种方法将视频流从佳能 EOS 600D 传输到我的系统,基本上将相机用作网络摄像头。虽然佳能为 Windows 和 Mac 提供了名为Canon EOS Utility的软件,但似乎它们没有为 Linux 提供任何东西。只需将系统与 micro USB 连接,就可以访问存储在 SD 卡上的照片和视频。
有没有办法将佳能 EOS 600D 用作网络摄像头?
我正在尝试找出一种方法将视频流从佳能 EOS 600D 传输到我的系统,基本上将相机用作网络摄像头。虽然佳能为 Windows 和 Mac 提供了名为Canon EOS Utility的软件,但似乎它们没有为 Linux 提供任何东西。只需将系统与 micro USB 连接,就可以访问存储在 SD 卡上的照片和视频。
有没有办法将佳能 EOS 600D 用作网络摄像头?
不容易。人们使用的两条途径是:
使用附带的实用程序软件,其中包括一个实时视图窗口,并运行该窗口中的软件捕获。不幸的是,这可能在 Linux 上根本不起作用。
使用相机的 HDMI 输出并使用捕获硬件进行捕获。
我怀疑在这两种情况下,您将获得的实时取景视频将是标准清晰度和/或低质量,并且对帧速率、快门速度/角度等进行任何调整的能力有限。在某些佳能相机上,您可能发现 HDMI 输出在显示器上有控件,包括一个即使在最小显示模式下也无法禁用的聚焦矩形。
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
.