使用数码相机(佳能)作为网络摄像头

使用数码相机(佳能)作为网络摄像头

我无法将我的数码相机(Canon ixus 160)用作网络摄像头,有没有什么应用程序可以实现这一点?还是只能在设置中?

答案1

这是另一种解决方案。

列表照片2支持的相机:http://gphoto.org/proj/libgphoto2/support.php

您需要安装相片v4l2loopback 实用程序ffmpeg

然后

sudo modprobe v4l2loopback

gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video1

现在您已经有了数码相机的网络摄像头。

答案2

这可以做到,但需要一些步骤。首先,您必须安装gphotov4l2loopback-utils

sudo apt-get install gphoto2 v4l2loopback-utils

通过 USB 插入相机(当相机自动安装时,将其卸载)。然后运行gphoto2 --abilities以查看您的相机是否能够执行此操作。以下是连接佳能 EOS 1200D 时的输出

在此处输入图片描述

然后运行sudo modprobe v4l2loopback以激活从相机创建视频设备所需的内核模块。

我看过关于此任务的较旧的教程,其中使用 gst-launch-0.10 来实现此任务的下一步(例如这个)。我使用的是 Ubuntu 17.04,它使用 gst-launch-1.0。以下是从数码相机创建视频设备的更新命令:

gphoto2 --stdout --capture-movie | gst-launch-1.0 fdsrc ! decodebin3 name=dec ! queue ! videoconvert ! v4l2sink device=/dev/video1

这将创建一个视频设备/dev/video1,您现在可以在 VLC 等程序中使用它。

如果您发现有关正在使用的设备的任何错误,则需要gvfs-gphoto2-volume-monitor通过运行来终止该进程killall gvfs-gphoto2-volume-monitor

答案3

我能够使用佳能 DSLR 600D 拍摄视频和图像

sudo apt get install guvcview ffmpeg gphoto2 v4l2loopback-dkms v4l2loopback-utils ffmpeg

插入相机,任何模式似乎都可以工作,使用基本方法进行测试:

准备

sudo modprobe v4l2loopback
killall gvfs-gphoto2-volume-monitor

测试

lsusb
gphoto2 --auto-detect
LANG=C gphoto2 --summary
LANG=C gphoto2 --list-all-config

尝试

gphoto2 --capture-image
gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video1

可视化(在另一个终端)

guvcview

或者

guvcview-brlin.guvcview

您可以尝试不同的/dev/video1命令

还有EOS 影片录像机

解压缩这个:https://sourceforge.net/projects/eos-movrec/files/eos-movrec/0.3.3_beta/eos-movrec-0.3.3_beta.zip/download

cd eos-movrec-0.3.2_beta
sudo apt install libgphoto2-dev                                     
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make

答案4

我发现这对我来说非常有用,它确实适用于我的佳能 5D Mark 3

如何将数码单反相机用作网络摄像头

OBS 是一款出色的实时流媒体和录制演示或培训的工具。它还可用于创建虚拟网络摄像头,作为 Jitsi、Skype 和 Zoom 等工具的输入。我们很多人都有优质的 DSLR 型相机,这些相机可以作为 OBS(以及任何其他可以使用网络摄像头源的工具)的输入网络摄像头。这允许您使用高质量相机进行视频输入,并让您拥有使用数码相机的完全控制权。在本视频中,我将向您展示如何将几乎任何相机用作 OBS 的网络摄像头,而无需任何特殊的软件或硬件适配器。您只需要一台相机和一根 USB 电缆。这是通过 gphoto2、ffmpeg 和 v42loopback 的组合实现的。

  1. 确保您的相机品牌和型号受支持。您可以在以下位置找到此方法支持的相机列表: http://gphoto.org/proj/libgphoto2/support.php 幸运的是,我的佳能相机都支持。您需要一台支持的相机和一条 USB 线将相机连接到计算机。

  2. 设置相机,使其不会自动关机。在我的佳能 6D Mark ii 上,扳手屏幕 2 上显示“自动关机:禁用”。

  3. 如果您启用了后退按钮对焦,则需要将对焦设置回半按快门键。如果您使用后退按钮对焦,您已经知道如何执行此操作。如果您保持后退按钮对焦打开,您将收到与半按快门按钮相关的错误。

  4. 如果您还没有安装gphoto2,那么您需要先安装它。

    sudo apt install -y gphoto2
    
  5. 如果您尚未安装视频环回驱动程序,则需要先安装它。

    sudo apt install -y v4l2loopback-utils
    
  6. 如果您还没有安装ffmpeg,那么您需要先安装它。

    sudo apt install -y ffmpeg
    
  7. 通过 USB 插入您的相机(如果相机自动安装,请将其卸载),方法是在文件管理器(如果您使用的是 Gnome,则为 Nautilus)中选择它并右键单击,然后从弹出菜单中选择“卸载”。

  8. 启用并确定虚拟视频设备 首先卸载 v4l2loopback,以便您可以确定它正在创建哪个设备。

    sudo rmmod v4l2loopback
    

    忽略任何错误。

  9. 列出所有视频设备,这样您就知道下一个是哪个了。 ls /dev/video* 您将看到类似 /dev/video0 /dev/video1 这样的信息,表示我的电脑上已经有视频设备。如果您在这里什么也没看到,那么您就没有视频设备。

  10. 激活 v4l2loopback 运行

    sudo modprobe v4l2loopback exclusive_caps=1 max_buffers=2
    

激活内核模块(“环回驱动程序”),以便从您的 DSLR 相机创建视频设备。

  1. 列出所有视频设备,以便您知道要使用哪一个, ls /dev/video* 您将看到类似的内容, /dev/video0 /dev/video1 /dev/video2 最后一个将是环回驱动程序使用的设备,在本例中是 video2。

  2. 测试现在您可以使用 gphoto 2 进行一些测试。列出自动检测到的相机及其所连接的端口。

    gphoto2 --auto-detect
    

    你会看到类似这样的内容:

    Model                          Port                                            
    ----------------------------------------------------------
    Canon EOS 6d Mark II           usb:001,013 
    
  3. 捕获视频并将其传输到虚拟网络摄像头设备

    gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video2
    
  4. 就是这样。现在您可以将其添加到 OBS 中的源中。

一切都很简单,而且全都免费,这要归功于免费和开源软件。

相关内容