IP 摄像机不必花费太多。例如,使用 Raspberry Pi Zero W 和相机模块,您可以相对轻松地制作出一款出色且特别紧凑的相机,并使用它来设置 rtsp 流媒体服务器。在本文中,您将学习如何做到这一点,然后在 Synology 或 QNAP NAS 上的 Surveillance Station 中使用摄像头。
您当然可以在中国购买配备所有配件的廉价 IP 摄像机,但它们通常安全性差且难以设置。如果您自己构建它并不会立即便宜,但您会更灵活,最重要的是它既有趣又具有教育意义。我们使用 Raspberry Pi Zero W(约 11 欧元)和官方 8 兆像素相机模块 v2(29.95 欧元)。它具有出色的 Sony IMX219 传感器。还提供 NoIR 变体,可在黄昏时提供更好的图像。如果将它们与红外 LED 结合使用,您还可以获得良好的夜间图像(灰度)。如果您想省点钱,您可以在中国找到价格实惠的替代品,价格在 8 欧元左右。您还需要一个用于软件的微型 SD 卡和一个带有微型 USB 的电源适配器,最好能提供至少 1.2 安培的电流。
01 什么软件?
有许多方法可以从 Raspberry Pi Zero W 进行流式传输。 除了相机模块之外,大多数方法还支持 USB 相机或网络摄像头,您可以通过 USB-on-the-go 电缆连接到 Pi Zero W。无论您选择哪种方法:鉴于处理能力相当有限,最好将运动检测留给 Surveillance Station 等视频监控软件。一个众所周知的选项是motionEyeOS,它有一个很好的网络界面来配置相机。缺点是延迟相对较大,即使有选项 快速网络摄像机 你也失去了许多其他选择。因此,我们选择设置手动流。
02 树莓派安装
我们从安装 Raspbian Buster Lite 开始。获取最新版本。下载后解压压缩包,使用balenaEtcher将img文件放到micro-sd卡上。在使用 micro-sd 卡启动 Pi 之前,添加根目录(其中还包含文件 内核文件 state) 一个名为的文本文件 wpa_supplicant.conf 与下面的规则。把它放在后面 ssid 您的 WiFi 网络名称并填写 psk 密码。在同一个文件夹中,创建一个名为的空文件 ssh 这样你就可以在启动后通过shell登录。
国家=荷兰
更新配置=1
ctrl_interface=/var/run/wpa_supplicant
网络={
scan_ssid=1
ssid =“你的”
psk=“你的密码”
}
Pi Zero W 启动后,您可以从路由器的配置页面(如果一切顺利)找到路由器的 DHCP 服务器分配的 IP 地址。使用 PuTTY 等程序通过 ssh 登录该 IP 地址,并使用默认用户名 pi 和相应的密码 覆盆子.然后最好更改这些登录详细信息。
03 安装rtsp服务器
使用以下命令确保 Pi 是最新的:
sudo apt-get 更新
sudo apt-get dist-upgrade
使用 sudo raspi-config 打开 Pi 的配置页面。激活方式 接口选项 相机模块。您可以使用以下命令激活 video-for-linux 内核驱动程序:
须藤 modprobe bcm2835-v4l2
检查您是否有 /开发/视频0 有:
须藤 ls -la /dev/vid*
使用以下命令安装工具 git 和 cmake:
sudo apt 安装 git cmake
之后,您可以使用以下命令编译并提供支持 h.264 等的 rtsp 服务器:
git clone //github.com/mpromonet/v4l2rtspserver.git
cd v4l2rtspserver
制作。
制作
须藤制作安装
04 启动rtsp流
例如,您从文件夹启动流 v4l2rtspserver 的:
./v4l2rtspserver -F 10 -W 1920 -H 1080
启动 rtsp 服务器后,您可以阅读任何错误消息和表单中的流链接 rtsp://ipaddress:8554/unicast.例如,您可以在 VLC 播放器中使用它连接到摄像机,也可以在 Surveillance Station 中使用它,如下所示。随着选项 -你的用户:密码 输入用户和密码以保护流。在这种情况下,指向 rtsp 流的链接采用以下形式 rtsp://user:password@ipaddress:8554/unicast.处理器负载仍然非常有限,gpu 完成了大部分工作,这一点很不错。
05 服务器自动启动
我们希望 rtsp 服务器在打开 Pi 后自动启动。为此,请创建一个简单的脚本:
须藤纳米 /etc/systemd/system/v4l2rtspserver.service
这包括以下规则:
[单元]
说明=v4l2rtspserver rtsp-server
之后=网络.目标
[服务]
ExecStartPre=/usr/bin/v4l2-ctl --set-ctrl vertical_flip=1
ExecStartPre=/usr/bin/v4l2-ctl --set-ctrl h264_i_frame_period=5
ExecStart=/home/pi/v4l2rtspserver/v4l2rtspserver -F 10 -W 1280 -H 720
ExecReload=/bin/kill -HUP $MAINPID
类型=简单
用户=pi
组=视频
重启=总是
[安装]
WantedBy=multi-user.target
回来看看 执行开始 v4l2rtspserver 的位置。您可以尝试一些选项(例如 垂直翻转 用于图像旋转)。使用以下命令激活脚本:
须藤 systemctl 启用 v4l2rtspserver
并使用以下命令启动脚本:
须藤 systemctl 启动 v4l2rtspserver
将摄像机图像添加到 Surveillance Station
您可以通过手动指定摄像机轻松使用 Surveillance Station 中的摄像机图像。使用此软件,图像的延迟似乎非常有限。而在 VLC 播放器中大约是两秒钟,而在 Surveillance Station 中的延迟只有大约一秒钟。这看起来很多,但从 Raspberry Pi 进行流式传输的许多其他方法通常会有 4 秒或更长时间的更大延迟。