我终于将我的数码单反相机设置为网络摄像头,这非常酷。我想分享这篇文章,因为我找不到关于它的好的、完整的资源,而且我认为它可能对那里的人们有用(而且因为将来我可能会想要它)。这是我学到的一切。

这就是我的工作。您的设置可能不同:

  • 相机:佳能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

现在,您可以连接相机并将其打开。连接相机后,您可能会看到此图标:

Linux 相机图标

此图标表示您的相机已作为驱动器连接。您不希望这样做,因为它会干扰网络摄像头实用程序。

处理这个问题的最简单方法是通过运行以下命令来终止所有 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.

Logo

更多推荐