跳过主要内容

如何使用树莓派作为电脑摄像头

(图片来源:Tom’s Hardware)

在我写这篇文章的时候,USB网络摄像头短缺,行业领导者罗技(Logitech)也说过这一点是4到6个星期前吗有足够的供应。不过,如果你还没有覆盆子派相机模块,还是很容易买到的覆盆子π作为你电脑的网络摄像头。

虽然有一些潜在的方法可以让树莓派的视频出现在你的电脑上,通过Skype、Meet、Zoom或其他会议应用程序,我发现唯一有效的方法是使用mjpg_streamer流媒体Pi的视频,然后在Windows(或Linux或macOS)端接收它,在那里另一个应用程序会让操作系统认为流媒体是一个网络摄像头。在梳理了很多资源之后,包括这个非常有用的线索在我看来,曾经有一种方法可以让Pi Zero在Windows中变成一个真正的USB摄像头,但它似乎无法与最近的Raspbian版本兼容。

你需要什么

  • 相机模块:树莓派摄像机模块使用带状线缆连接到Pi专有的CSI摄像机端口。它们的价格低至10美元,但我们建议使用质量更好的型号,如官方型号树莓派相机模块V2售价约为25美元(我们在测试时使用了便宜的机型,在弱光下的性能并不好)。大多数模块都没有安装支架,所以你需要有创意(可能是用胶带)和/或买一个外壳,以便将其安装在显示器顶部或其他最佳位置。
  • 覆盆子π:你可以使用一个树莓派相机模块与任何时代的树莓派,但树莓派零/零W可能是最好的选择。而更强大的模型,如树莓派4b可能能够处理更高的帧率与沉着,最重要的事情是Pi和你的PC之间的连接强度。使用Zero / Zero W,你可以直接通过USB连接到你的电脑,但如果是其他型号,你需要使用以太网或Wi-Fi。连接越快、越可靠,你就越有可能限制延迟和冻结图片。
  • microSD卡与覆盆子:不用说,你需要官方的树莓派操作系统。如果您还没有一个设置,请参阅我们的指南如何做一个无头安装在树莓派所以你可以从电脑上控制它。

安装树莓派摄像机模块

如果你已经安装了覆盆子派相机模块,或者知道如何使用,那么你可以跳到下一节和步骤6。

Raspberry Pi 3和4有两个不同的串行接口(带状电缆)端口,一个用于摄像头,另一个可用于某些显示器。3和4上的CSI(摄像头串行接口)端口位于3.5mm音频插孔和HDMI端口之间。

(图片来源:Tom’s Hardware)

在Pi Zero / Zero W上,相机端口是唯一的带状电缆端口,它位于板上microSD卡槽的对面。

(图片来源:Tom’s Hardware)

的标准身高带状电缆大多数相机模块太宽,适合窄端口上的π/ 0 w .所以,如果你打算使用其中一个,你需要一个摄像机电缆是专门为π零(相机分别与他们和其他人要求你购买)。

把电缆插入端口是一项非常精细的操作。

1.提起并松开塑料袖口在港口顶部,没有把它拉出来。如果你把袖口拉出来,你应该可以把它放回去,但是在我做这个的时候,塑料坏了。

2.将带状电缆滑进端口金属齿面朝Pi 3 / 4的HDMI端口,或朝下面向Pi Zero。

3.扣紧袖口将电缆固定在合适的位置。当你把袖口推进去的时候,你应该一直把电缆推进去。如果电缆甚至有一点松动,它将滑出或它可能只是不工作。

(图片来源:Tom’s Hardware)

4.在Raspbian中激活摄像头模块.要做到这一点,在命令行启动raspi-config,导航到Interfaces菜单并切换Camera到on。您将被要求重新启动。

(图片来源:Tom’s Hardware)

5.拍照确保摄像机能正常工作。通过在命令行输入这个来实现。

raspistill - o mytest.jpg

如果您在窗口环境中,您将看到一个图像在屏幕上弹出几秒钟。如果没有,您可以尝试查看您创建的JPG文件。

(图片来源:Tom’s Hardware)

在Pi和PC之间获得最佳连接

6.连接PC到Pi。有四种主要的方法来连接你的树莓派到你的电脑:

  • 直接的USB连接(Pi Zero / Zero W only):这可能是最好的连接。要做到这一点,添加文本dtoverlay = dwc2在/boot/config.txt的底部添加modules-load = dwc2 g_ether在/boot/cmdline.text中的单词rootwwait之后。安装你好,打印机服务如果你使用的是Windows。你的Pi Zero必须通过Pi本身标记为“USB”的微型USB端口连接到你电脑上的USB端口。确保在你的电脑上启用互联网共享(见下文)。
  • 无线网络:确保PC和树莓派都在同一个无线网络上。使用802.11ac的树莓派(4b或3b +)会有帮助。
  • 以太网:把树莓派插到路由器上。
  • 直接以太网连接:你可以用一根以太网线直接把树莓派连接到你的电脑上。如果你的电脑没有以太网端口,或者它的端口已经在使用,你可以使用usb到以太网适配器。虽然这种方法似乎是最好的,但它实际上是我测试中最慢的。此外,出于某些原因,我必须输入我的树莓派的IP地址,而不是它的主机名(例如:raspberrypi),以访问流。

如果你使用USB或以太网直接连接到你的台式机或笔记本电脑,你需要将你的电脑的互联网连接与树莓派共享。要在Windows中做到这一点,在控制面板的网络连接菜单中导航,首先右键单击你的电脑的以太网连接,选择属性。

(图片来源:Tom’s Hardware)

然后在共享选项卡中启用共享,并选择Pi使用的以太网连接(即使Pi Zero的USB连接在这里也被标记为以太网连接)。

(图片来源:Tom’s Hardware)

设置从mjpg-streamer流

7.输入下面的代码在命令提示符处安装所需的库。

安装cmake libjpeg8-dev -y

8.输入以下代码安装更多必备软件。很有可能它已经安装了,特别是如果你有最新版本的Raspbian。

Sudo apt-get安装GCC g++ -y

9.克隆,编译和安装mjpg streamer输入以下命令

Git克隆https://github.com/jacksonliam/mjpg-streamer CD mjpg-streamer/mjpg-streamer-experimental && make && sudo make install

测试mjpg_streamer设置

10.测试不同的mjgp_streamer设置看看什么是有效的。现在,mjpg_streamer已经安装好了,但你需要弄清楚什么样的相机分辨率和帧率最适合你的树莓派模型和网络连接级别。

从最低级别的设置开始,您可以通过输入以下命令来调用它:

input_raspicam mjpg_streamer我”。所以“- o output_http

您应该会得到一条显示它是活动的消息。

(图片来源:Tom’s Hardware)

要测试你的广播质量,打开你的电脑,打开浏览器,导航到http:// [raspberrypihostname]: 8080 ? action =流.如果您没有更改Pi上的默认主机名,则会更改http://raspberrypi:8080/?action=stream

(图片来源:Tom’s Hardware)

现在,是时候提高分辨率和帧率了。在终端窗口中按CTRL + C可以停止mjpg_stream。然而,如果你测试一个分辨率,你得到一个错误消息,你需要重新启动树莓派之前,你再试一次。即使你没有得到一个错误,你的Pi可能不会退出应用程序,你需要重新启动。

你可以通过添加参数-x[水平分辨率]]-y[垂直分辨率]-fps[每秒帧数]来设置分辨率。要获得720p, 30帧/秒的流,输入:

input_raspicam mjpg_streamer我”。所以-x 1280 -y 720 -fps 30" -o output_http.so

我发现1920 x 1080(全高清)可以在我的Raspberry Pi Zero W相机上运行,但速度很慢,即使是在30帧。我也可以在720p下实现60帧每秒,但图像太暗了。所以对于大多数人来说,30帧/秒的720p可能是最好的选择。

创建启动mjpg_streamer的Bash脚本

一旦您确定了喜欢的设置,就应该创建一个bash脚本,它可以轻松地使用简单的命令启动。

11.创建一个名为startcam.sh的新文件通过输入:

sudo nano startcam.sh

12.输入您的代码。这是# !/bin/bash,然后是mjp_streamer启动行。例如:

#!/bin/bash mjpg_streamer -i "input_raspicam. txt "所以-x 1280 -y 720 -fps 30" -o output_http.so

(图片来源:Tom’s Hardware)

点击CTRL + X退出,打击Y为了节省

13.使startcam.sh可执行通过键入:

Sudo chmod a+x startcam.sh

现在,只要在主目录中,在命令提示符处输入以下命令,就可以随时启动它。

。/ smartcam.sh

14.将startcam.sh添加到/etc/rc.的底部本地文件,如果你想让它每次启动树莓派时都运行。记住使用完整的路径名(例如:/home/pi/startcam.sh)。

(图片来源:Tom’s Hardware)

安装Windows电脑

15.下载并安装IP相机适配器

16.启动配置IP摄像头适配器。

17.输入摄像机feed URL,很可能http://raspberrypi:8080?action=stream单击“自动检测”按钮测试它并获取分辨率。

(图片来源:Tom’s Hardware)

18.选择MJPEG相机在您最喜欢的视频会议应用程序的设置。

(图片来源:Tom’s Hardware)

MJPEG摄像头应该出现在大多数会议应用程序的一个选项,包括Skype,谷歌meeting和Zoom。注意,对于Skype,我发现MJPEG摄像头在8.58版本的Skype桌面中可用,但在Windows 10的Skype中没有。

你可能会发现,当你聊天的时候,视频和音频并不是完全同步的。分辨率和帧率越低,视频就越流畅。此外,更好地连接你的电脑和你的树莓派将提高质量。

更多树莓派教程

艾夫拉姆·皮尔奇是汤姆五金的总编。当他不在工作时摆弄最新的电子产品,或者在贸易展上戴上虚拟现实头盔时,你会发现他在摆弄手机、拆开电脑或编写插件。凭借他的技术知识和对测试的热情,Avram开发了许多现实世界的基准测试,包括我们的笔记本电脑电池测试。
17日评论 来自论坛的评论
  • DWBollweevil
    我想你漏了一步,在第9步之前……你不需要从github克隆mjpg-streamer repo吗?
    回复
  • DWBollweevil
    要让相机被谷歌Hangouts或Jitsi Meet识别,还有什么额外的步骤吗?我可以在http://raspberrypi:8080/?action=stream上看到摄像头在工作,IP摄像头适配器自动检测成功,但我无法在我需要它的两个应用程序中使用它。顺便说一句,Windows 10的“摄像头”应用程序也根本不能识别摄像头。任何帮助都将不胜感激!
    回复
  • daglesj
    或者,你可以使用其他12种设备中的一种,这些设备已经内置了摄像头,随时可以使用。

    环顾我的客厅,我数到9!
    回复
  • enitka
    管理说:
    电脑上的USB摄像头有问题吗?你可以使用带摄像头模块的树莓派。

    如何使用树莓派作为电脑摄像头:阅读更多
    现在我已经去了,并打破了袖口的平坦电缆上的摄像机-任何来源的袖口更换?厄尼
    回复
  • graysoniv
    嘿,在这一步之后
    input_raspicam mjpg_streamer我”。所以“- o output_http

    得到这个错误

    错误:不能找到输出插件output_http

    什么好主意吗?我想我缺少一个插件,但不知道如何安装它。
    回复
  • MCaLeer
    我想他忘记了。在-o output_http。so之后

    在关于usb小工具的步骤中也输入错误…它不应该是cmdline。文本但cmdline.txt

    -如果你使用写在那里的内容,它将创建一个新文件,没有意义。
    回复
  • 威胁
    MCaLeer说:
    我想他忘记了。在-o output_http。so之后

    你是对的。

    input_raspicam mjpg_streamer我”。所以“o”output_http.so”

    对我来说,复制和粘贴错误类型的""""标记也有问题。

    不过这是个很好的指南,谢谢。
    回复
  • tomasf
    daglesj说:
    或者,你可以使用其他12种设备中的一种,这些设备已经内置了摄像头,随时可以使用。

    环顾我的客厅,我数到9!
    我也这么想。电话(s)、表、笔记本电脑。一个古老的摄像头。
    回复
  • Bezalel79
    你认为有可能连接3个外置USB摄像头并生成3个不同的流吗?
    谢谢
    回复
  • Mordog89
    @menacing这工作!感谢您的回复!:)
    回复