我无法将我的数码相机(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
这可以做到,但需要一些步骤。首先,您必须安装gphoto
和v4l2loopback-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
命令
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 的组合实现的。
确保您的相机品牌和型号受支持。您可以在以下位置找到此方法支持的相机列表: http://gphoto.org/proj/libgphoto2/support.php 幸运的是,我的佳能相机都支持。您需要一台支持的相机和一条 USB 线将相机连接到计算机。
设置相机,使其不会自动关机。在我的佳能 6D Mark ii 上,扳手屏幕 2 上显示“自动关机:禁用”。
如果您启用了后退按钮对焦,则需要将对焦设置回半按快门键。如果您使用后退按钮对焦,您已经知道如何执行此操作。如果您保持后退按钮对焦打开,您将收到与半按快门按钮相关的错误。
如果您还没有安装gphoto2,那么您需要先安装它。
sudo apt install -y gphoto2
如果您尚未安装视频环回驱动程序,则需要先安装它。
sudo apt install -y v4l2loopback-utils
如果您还没有安装ffmpeg,那么您需要先安装它。
sudo apt install -y ffmpeg
通过 USB 插入您的相机(如果相机自动安装,请将其卸载),方法是在文件管理器(如果您使用的是 Gnome,则为 Nautilus)中选择它并右键单击,然后从弹出菜单中选择“卸载”。
启用并确定虚拟视频设备 首先卸载 v4l2loopback,以便您可以确定它正在创建哪个设备。
sudo rmmod v4l2loopback
忽略任何错误。
列出所有视频设备,这样您就知道下一个是哪个了。
ls /dev/video*
您将看到类似/dev/video0 /dev/video1
这样的信息,表示我的电脑上已经有视频设备。如果您在这里什么也没看到,那么您就没有视频设备。激活 v4l2loopback 运行
sudo modprobe v4l2loopback exclusive_caps=1 max_buffers=2
激活内核模块(“环回驱动程序”),以便从您的 DSLR 相机创建视频设备。
列出所有视频设备,以便您知道要使用哪一个,
ls /dev/video*
您将看到类似的内容,/dev/video0 /dev/video1 /dev/video2
最后一个将是环回驱动程序使用的设备,在本例中是 video2。测试现在您可以使用 gphoto 2 进行一些测试。列出自动检测到的相机及其所连接的端口。
gphoto2 --auto-detect
你会看到类似这样的内容:
Model Port ---------------------------------------------------------- Canon EOS 6d Mark II usb:001,013
捕获视频并将其传输到虚拟网络摄像头设备
gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video2
就是这样。现在您可以将其添加到 OBS 中的源中。
一切都很简单,而且全都免费,这要归功于免费和开源软件。