在 Linux 上设置 DSLR 相机网络摄像头
我终于将我的数码单反相机设置为网络摄像头,这非常酷。我想分享这篇文章,因为我找不到关于它的好的、完整的资源,而且我认为它可能对那里的人们有用(而且因为将来我可能会想要它)。这是我学到的一切。
这就是我的工作。您的设置可能不同:
-
相机:佳能EOS 60D
-
操作系统:Ubuntu 20.10
先决条件
在我们开始之前,这对很多人来说可能不是问题,因为相机制造商为此创建软件很常见。例如,佳能将其EOS Webcam Utility制作为 Windows 或 OSX 用户可以轻松使用。但我使用 Linux (cue sad trombone)。
如果您像我一样,并且无法选择方便的网络摄像头实用程序,那么让我们继续。
设置
首先,通过检查以下列表确保您的相机受支持:gphoto.org/proj/libgphoto2/support.php。
安装所需软件:
sudo apt install gphoto2 v4l2loopback-utils v4l2loopback-dkms ffmpeg
接下来,运行这个随机命令。我仍然不能 100% 确定它的作用,但我认为它创建了一个“虚拟”视频捕获设备供您使用。这将在以后更有意义。
sudo modprobe v4l2loopback
现在,您可以连接相机并将其打开。连接相机后,您可能会看到此图标:

此图标表示您的相机已作为驱动器连接。您不希望这样做,因为它会干扰网络摄像头实用程序。
处理这个问题的最简单方法是通过运行以下命令来终止所有 gphoto 进程:
pkill gphoto
如果您只想查看进程,可以使用以下命令:
ps aux | grep gphoto
将 DSLR 用作网络摄像头
现在,相机准备就绪,我们需要通过运行以下命令来查看“虚拟”视频设备的安装位置:
v4l2-ctl --list-devices
您可能会看到许多不同的驱动器,如下图所示。要注意的关键是“虚拟视频设备(0x0000)”驱动器。您需要在下一步中引用它。

现在我们可以通过以下命令使用 gphoto 来控制相机。请注意对虚拟视频的引用。你的可能不一样。也可以稍后在同一台计算机上进行更改。
gphoto2 --stdout autofocusdrive=1 --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video4
运行该命令后,您的相机应该已经开始捕获视频,并且您应该在终端中看到一些实时文本处理视频。要对其进行测试,请随时在任何网站上进行检查,例如webcamtests.com。
改进您的设置
不幸的是,上面的步骤很乏味,所以你要做的第一件事就是自动化它们。我更喜欢使用Bash 别名来简化操作。
首先,我们将打开.bashrc文件:
sudo nano ~/.bashrc
我喜欢制作一个名为“prepcam”的软件来设置 v4l2loopback 并杀死 gphoto。然后我制作了另一个名为“dslrcam”来启动网络摄像头。为此,请将这些行添加到.bashrc文件的底部。
alias prepcam="sudo modprobe v4l2loopback && pkill gphoto"
alias dslrcam="gphoto2 --stdout autofocusdrive=1 --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video4"
有了这些更改,我们可以保存并关闭文件。如果你像我一样用nano,就用ctrl+x,然后在提示你保存的时候,按y,最后打enter保留同名文件。
我们还需要在我们的 Bash 配置文件中加载更改。
source ~/.bashrc
您可能还想拿起一个虚拟电池。这些东西看起来像相机电池,就相机而言,就像相机电池一样工作,但它们有一根插入墙上的电缆。这些很方便,无需充电即可提供稳定的电源。
对于我的相机,我正在寻找的型号称为“LP-E6 Style Dummy Battery”。
拿起USB集线器是我推荐的下一件事。我喜欢它,因为我将相机与悬臂上的麦克风结合使用,并且我喜欢用一根电缆连接我的“录音模式”。
结语
这对我来说是一个有趣的项目,我对结果很满意。话虽如此,这只是值得的,因为我已经有一台我不经常使用的数码单反相机。
如果我今天从头开始,我会通过拿起一台让这一切变得更简单的相机来让我的生活更轻松。
如果你想买一台兼作网络摄像头的漂亮相机,Sony ZV-E10 Mirrorless Camera。它似乎不需要任何编码硬件,因此您应该能够通过 USB 连接它并准备好使用。这是一个很大的胜利。
如果你想要的只是一个网络摄像头,我发现最好的评论是Lgitech C922 Pro,与全摄像头相比,它便宜得多,约为 75 美元。它也不能用作相机,但是,嘿,现在智能手机非常好。
参考文献:
-
https://www.crackedthecode.co/how-to-use-your-dslr-as-a-webcam-in-linux/
-
https://www.youtube.com/watch?vu003dTsuY4o2zLVQ
非常感谢您的阅读。如果你喜欢这篇文章,请分享它,如果你想知道我什么时候发表更多文章,注册我的时事通讯或在 Twitter 上关注我。干杯!
最初发表于austingil.com.
更多推荐




所有评论(0)