这个树莓派网络摄像头服务器教程将带您了解如何在网页上看到自己的网络摄像头。
如果您想要更多类似系统的安全性,请查看树莓派安全摄像机教程,因为它具有完善的 Web 流功能,运动检测,记录和多摄像机功能。
本教程被标记为” 中级”,因为如果要使用与本教程使用的版本不同的硬件,开始工作可能会遇到挑战。如果您发现无法使用此功能,则上面链接的安全摄像头解决方案更容易上手。
设备
以下是完成本教程所需的一些设备。
推荐的:
树莓派 (建议使用最新版本以获得最佳性能)
Micro SD 卡或 * SD 卡 (如果使用的是 Pi 的旧版本)
以太网线或 * WiFi 加密狗
树莓派摄像头或 * USB 网络摄像头
可选的:
USB 键盘
USB 鼠标
HDMI 电缆
有关设置网络摄像头的视频
如果您比较有视觉感,并且想观看设置方法,请在下面查看我的视频。如果您喜欢该视频,请订阅我的视频,以获取最新的最新视频。
不幸的是,该视频现在已经过时,并且使用的方法比本教程的文本版本中说明的方法更旧。我强烈建议您在学习视频的同时,按照书面教程进行操作。
如何设置树莓派网络摄像头服务器
首先,我们需要将 Raspbian 安装到树莓派上。如果您尚未完成此操作,请查阅我的很棒的指南,以安装 NOOBs 树莓派。它将引导您完成启动和运行所需的所有步骤。
在本教程中,如果您想了解更多信息,我们将使用一个名为 Motion 的软件包,您可以查看其 Motion 的网站。
由于 Raspbian 的最新版本缺少 Motion 使其正常工作所需的依赖关系,因此我们将需要安装其他预编译版本。
Motioneye 的软件包维护者 (当前:Mr Dave | 先前:Calin Crisan) 提供了包含我们所需的一切的软件包,并且可以与树莓派很好地兼容。
1 我们将使用终端,因此请在 Pi 上打开终端或通过 SSH 连接到终端。
2 首先,请更新树莓派,以便您使用最新版本。
sudo apt-get update
sudo apt-get upgrade
根据您使用的 Raspbian 版本,您需要执行一些不同的步骤。在本教程中,我们将安装 Motion for Raspbian Buster。如果尚未安装,则强烈建议您升级。
3 首先,安装以下软件包。此命令在”Raspbian Buster” 的完整版和精简版上均可以使用。
sudo apt install autoconf automake build-essential pkgconf libtool git libzip-dev libjpeg-dev gettext libmicrohttpd-dev libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libavdevice-dev default-libmysqlclient-dev libpq-dev libsqlite3-dev libwebp-dev
4 接下来,从 GitHub 下载 Raspbian Buster 的 ** Motion deb 文件,然后使用 dpkg ** 命令进行安装。
sudo wget https://github.com/Motion-Project/motion/releases/download/release-4.3.1/pi_buster_motion_4.3.1-1_armhf.deb
sudo dpkg -i pi_buster_motion_4.3.1-1_armhf.deb
在继续配置 Motion 使其在您的 Pi 上运行之前,您只需要做这些。
配置运动
1 现在,我们需要对配置文件 motion .conf ** 进行一些编辑。
sudovim/etc/motion/motion.conf
2 找到以下几行并将其更新为以下内容。
* 守护进程
* 流 \ _localhost 关闭
注意:如果在运动发生时流冻结有问题,请将以下两行从打开更改为关闭。
* 图片 \ _输出关闭
* 电影 \ _输出关闭
可选 (不要在 #号后添加文字)
- stream \ _maxrate 100 #** 此更改将允许实时流传输,但需要更多的带宽和资源。需要添加到配置文件中,默认为 1 * 帧率 100 #** 更改此选项将允许每秒捕获 100 帧以实现更流畅的视频,默认值为 50 * 宽度 640 #** 此行更改了所显示图像的宽度,默认为 640 **
- height 480 #** 此选项更改显示图像的高度,默认为 480 **
更改这些选项会严重影响性能。您可能需要修补以获得最佳效果。
3 现在,我们需要设置守护程序。首先,我们需要编辑 ** motion ** 文件。
sudo vim /etc/default/motion
4 找到以下行并将其更改为以下内容:
start_motion_daemon =是
5 完成后,只需按 ctrl + x 然后 y 保存并退出。
6 现在,请确保已连接相机并运行以下行:
sudo service start
7 如果您需要停止服务,只需运行以下命令:
sudo 服务停止
8 现在,您应该可以在我们 Pi 的 IP 地址处签出网络摄像头流,因此在浏览器中转到以下地址。
192.168.1.103:8081
9 如果网页未加载,请尝试重新启动该服务。
sudo service restart
10 如果您使用的是树莓派相机,则需要执行以下一些额外的步骤。
那里有一个功能齐全的树莓派网络摄像头服务器,您可以将其放置在任意位置 (鉴于它在 WiFi 范围内),并能够通过 Web 浏览器查看流。
如果要允许外部访问摄像机,请查看本教程底部的我的说明。
树莓派相机的额外步骤
如果要使用树莓派相机模块,则需要执行一些其他步骤来进行设置。
安装硬件
1 首先,转到 Pi 上的 CSI (相机串行接口) 带状电缆插槽,并用两根手指在连接器的每一侧上拉。现在,该技术应打开连接器,将带状电缆的金属引线背离以太网端口,然后将其插入。
2 对齐后,将其轻轻向后按,然后将电缆锁定在一个位置。
配置软件
要使树莓派相机与 Motion 配合使用,我们需要做一些额外的步骤。
1 首先确保在 raspi 配置中打开了相机,输入以下命令,然后启用相机 **(位于接口选项中)。 (完成此操作后,您将需要重新启动)。
sudo raspi-config
2 输入以下行以将摄像机安装到模块中。在运行这条线之前,请确保正确连接了相机,否则将引发错误。
sudo modprobe bcm2835-v4l2
3 或者,以下过程也应起作用。首先,通过输入以下行打开模块文件。
sudo vim /etc/modules
4 如果文件不存在,请在文件底部 ** 输入以下行。完成后,按 ctrl + x,然后按 y 保存并退出。
bcm2835-v4l2
5 现在重新启动 Pi ,流应该可以正常工作了。
sudo reboot
6 现在,您应该可以通过转到端口 8081 ** 上的 Pi 的 IP 地址来访问树莓派网络摄像头流。
192.168.1.103:8081
您现在应该拥有一个可以正常工作的树莓派摄像机服务器,可以在本地网络中访问它。如果要允许外部访问摄像机,请按照以下说明进行操作。
保存动态影像和照片
默认情况下,您可能会遇到权限问题,无法保存由运动触发的照片和视频。我将按照以下步骤设置如何正确运行。
1 首先,让我们为照片和视频创建一个新目录。
sudo mkdir /motion
2 接下来,我们需要更改运动文件夹的组,以便运动可以写入其中。之后,我们给小组。读取,写入和执行权限。
sudo chgrp motion/motion
sudo chmod g + rwx/motion
3 现在,我们需要返回运动配置文件,并将 ** target \ _dir ** 更改为新目录。首先,打开文件。
sudovim/etc/motion/motion.conf
4 更新 ** target \ _dir 行,因此如下所示。确保从行首删除 ; **。
target_dir/motion
5 接下来,重新启动运动服务,以便正确加载配置。
sudo service动作重启
6 现在,无论何时摄像机检测到运动,都应将其保存到我们上面指定的文件夹中。您可以通过运行以下命令进行检查。
ls/motion请务必查看我们的Linux权限指南,以获取有关正确设置权限的更多信息。
外部访问设置
为了启用对树莓派网络摄像头服务器的外部访问,我们将需要更改路由器上的某些设置。但是,所有路由器的设计都不同,因此您可能需要查找有关路由器品牌的说明。
请注意,打开互联网端口存在安全风险。
如果您需要更深入的指南,那么请务必阅读我的指南,以了解如何设置树莓派端口转发和动态 DNS 。
以下步骤是我在矿井上所做的工作。我的路由器是 ** AC1750 TP-Link 路由器 **。
1 进入路由器管理页面 (通常为”192.168.1.1” 或”192.168.254”)
2 输入用户名和密码。默认值通常是 admin 和 admin 。
3 进入转发 -> 虚拟服务器,然后单击添加新。
4 在这里输入:
- 服务端口:在这种情况下为 48461
- ** IP 地址 **:192.168.1.103 (您的 Pi 地址)
- 内部端口:我们希望它与网络摄像头服务器相同,因此将其设为 8081
- 协议:全部
- 状态:已启用
5 这些设置会将所有发往端口 48461 的流量路由到位于您提供的 IP 地址和端口的网络摄像头服务器。例如:** 192.168.1.103:8081**
6 您现在应该可以连接到网络外部的树莓派网络摄像头流。您可能需要重新启动路由器才能使更改生效。
如果您无法通过本地网络进行连接,则可以尝试以下操作。
* 检查路由器设置,并确认它们正确无误。
* 检查您的 IP 地址没有更改。一些互联网服务提供商将为您提供动态 IP 而不是静态 IP 。您可以设置一个称为动态 DNS 的东西来对此进行反击,您可以通过上述链接找到更多信息。
* 重新启动路由器。
我希望您喜欢本教程,该教程如果需要更多内容,则如何构建树莓派网络摄像头服务器,请查看我目前拥有的所有树莓派项目完成。未来还会有更多。