如何在Linux中使用旧相机作为网络摄像头(linux调用网络摄像头)

如何在Linux中使用旧相机作为网络摄像头(linux调用网络摄像头)

浏览次数:
信息来源: 用户投稿
更新日期: 2026-04-26
文章简介

我用gphoto2给我的旧单反相机带来了新的生命,把它变成了Linux电脑的网络摄像头。今年,在我基本上放弃了MacBook,转而使用NixOS机器之后,我开始在与人进行视频通话时被要求“打开摄

2025阿里云双十一服务器活动

我用gphoto2给我的旧单反相机带来了新的生命,把它变成了Linux电脑的网络摄像头

今年,在我基本上放弃了MacBook,转而使用NixOS机器之后,我开始在与人进行视频通话时被要求“打开摄像头”。这是一个问题,因为我没有网络摄像头。我考虑购买一个,但后来我意识到我有一台完好无损的2008年产的佳能EOSRebelXS数码单反相机放在书架上。这台相机有一个mini-USB接口,所以我自然而然地思考:一台数码单反相机、一个mini-USB接口和一台台式电脑,是否意味着我能拥有一个网络摄像头?

只有一个问题。我的佳能EOSRebelXS不能录制视频。它可以拍摄一些漂亮的照片,仅此而已。所以这结束了?

恰好有一个叫做gphoto2的神奇的开源软件。一旦安装,它允许你从计算机控制各种支持的相机,并拍摄照片和视频。

了解你的设备是否得到支持:

快门触发,图像会保存到你当前的工作目录中。

我意识到了这里的潜力,所以尽管我的相机没有视频功能,我还是决定尝试?命令。不知怎么,尽管我的相机不支持视频功能,仍然能够生成一个MJPEG文件!

在我的相机上,我需要将其置于“实时预览”模式下,然后?才能录制视频。这包括将相机设置为纵向模式,然后按下“设置Set”按钮,使取景器关闭,相机屏幕显示图像。不幸的是,这还不足以将其用作网络摄像头。它仍然需要分配一个视频设备,例如。

毫不奇怪,有一个开源的解决方案来解决这个问题。使用你的包管理器安装?、和。例如,在Fedora、CentOS、Mageia和类似的Linux发行版上:

在Debian、LinuxMint及其类似发行版:

我使用的是NixOS,这是我的配置文件:

创建虚拟视频设备需要使用?Linux内核模块。在撰写本文时,该功能未包含在主线内核中,因此你需要自己下载和编译它:

如果你像我一样使用NixOS,你可以在?中添加额外的模块包:

在NixOS上,运行?,然后重启。

如何在Linux中使用旧相机作为网络摄像头,linux调用网络摄像头

运行以下命令,将?中的数据发送到,使用设备如设备:

要查看来自网络摄像头的视频,请使用?命令:

每次想使用网络摄像头时都需要执行一次命令有点麻烦。幸运的是,你可以在启动时自动运行此命令。我将其实现为一个?服务:

在NixOS上,运行?,然后重新启动你的计算机。你的网络摄像头已经开启并处于活动状态。

要检查是否存在任何问题,可以使用?命令。它会告诉你服务最后一次运行的时间,并提供其以前输出的日志。这对于调试非常有用。

止步于此也许很诱人。考虑到当前的全球危机,我们可能需要思考是否有必要一直开着网络摄像头。这让我感到不太理想,原因如下:

  • 这浪费电。
  • 这类事情涉及隐私问题。
  • 我的摄像头有一个镜头盖,所以说实话,第二个原因并不真的让我感到困扰。当我不使用网络摄像头时,我总是可以把镜头盖上。让一个耗电量大的单反相机整天开着(更不用说需要解码视频所需的CPU开销),对我的电费并没有任何好处。

  • 我一直把相机插在电脑上,但是关闭的。
  • 当我想使用网络摄像头时,我按下相机的电源按钮将其打开。
  • 我的计算机会检测到相机并启动systemd服务。
  • 使用网络摄像头完成后,我再次将其关闭。
  • 为了实现这一点,你需要使用一个自定义的udev规则。

    udev规则可以告诉你的计算机,当它发现某个设备已经可用时执行某个任务。这可以是外部硬盘甚至是非USB设备。在这种情况下,你需要通过其USB连接识别相机。

    指定udev规则被触发时要运行的命令。你可以用一个shell脚本来完成(应该可以工作)。我运行的是NixOS,所以我只需要创建一个派生包(一个Nix包),它会重新启动systemd服务:

    接下来,实际定义udev规则。查找摄像头的设备和厂商ID。使用?命令可以完成此操作。该命令可能已经安装在你的发行版上,但我不经常使用它,因此我只需要根据需要使用安装它:

    无论你的计算机上已经安装了它,还是刚刚安装,请运行?:

    在此输出中,厂商ID为?,设备ID为。这已足以创建udev规则:

    或者,如果你使用的是NixOS:

    在你的?systemd服务中删除这一行。(如果保留它,则无论相机是否开启,该服务都会在下次重启时自动启动。)

    我希望这篇文章能让你在放弃一些旧技术之前三思而后行。Linux可以为技术注入活力,无论是你的电脑还是数码相机或其他外围设备等简单的东西。

    标签:
    网络安全基础知识(网络安全防火墙配置)
    « 上一篇
    返回列表
    下一篇 »

    如本文对您有帮助,就请抽根烟吧!