X

群晖 Surveillance Station 安装 USB 摄像头

鱼眼看世界

December 19, 2024 via CLOUDUH

群晖 Surveillance Station 安装 USB 摄像头

Abstract

本文介绍了如何使用群晖 Virtual Machine Manager 创建 Liunx 虚拟机,使用 GitHub 开源的 mjpg-streamer 方案构建网络摄像头。通过Systemd Service 设置了自动重启的,解决了摄像头可能意外中断的问题。

收拾屋子找到了毕业哥们剩下来的 USB鱼眼摄像头,想着不如想个办法把他用起来,正好最近准备做实验,需要搞一个监控 24 小时盯着,查阅了一下网上的资料感觉还是比较简单的,在此基础上又做了一个自动化,也算是成本比较低的方案了。

1 安装 Linux 虚拟机

鉴于群晖这个小不点处理器的能力,安装相比 Ubuntu 更加轻量化的 Linux Mint 是个更佳的选择,尤其是 Linux Mint 提供了 Xfce Edition 这种更加轻量化的版本。

1.1 下载 Mint 镜像

访问官方下载网站,选择下载 Xfce Edition 版本:Download Linux Mint 22 - Linux Mint

找到中国的镜像,根据实际情况选择一个进行下载。

下载完成后将镜像文件上传到 NAS 中某个文件夹内。

1.2 创建虚拟机

在 DSM 中安装 Virtual Machine Manager

创建存储器,如果你的 NAS 有固态,尽量将存储器设置在固态上,能够运行更快而且不会让硬盘一直响。

这里是存储空间是系统运行所必需的空间,不是监控视频存储的空间。

创建虚拟机,勾选 Linux 选项,进行下一步。

选择刚才的存储空间,进行下一步。

设置虚拟机名称,设置 2个 CPU 和 2 GB 的内存空间,进行下一步。

设置虚拟硬盘大小,一般来说够装系统的就够了,没必要太大。

同样这里的虚拟盘大小只是虚拟机运行的空间,不是监控的保存空间。

网络设置默认即可。

启动 ISO 文件选择刚才上传到 NAS 上的 Mint 的镜像文件,串行端口和 USB 控制器选择打开,USB 设备选择插入 NAS 上的 USB 摄像头的名字,然后继续下一步

勾选你要管理的本地用户管理员

最后确认信息后,勾选创建后开启虚拟机,点击完成创建虚拟机。

另外将 Virtual Machine Manager 设置成当虚拟机关机设置为暂停,这样能够提高启动速度。

1.3 安装 Linux 系统

选择刚刚创建的虚拟机,点击连接,跳出新的浏览器页面远程操作。

双击打开安装 Install Linux Mint 的图标,选择简体中文后继续。

这种无关的内容就一直继续就可以了

安装大概需要半个小时,等待安装完成,重新进入系统即可。

需要将电源管理器设置为不休眠不锁屏不注销,每个版本可能存在差异,总之关闭所有相关的选项。

需要知道当前虚拟机的 IP 地址,是下面绑定为网络摄像头的关键步骤,可以在终端输入进行查询。

ifconfig

这里建议通过路由器进行固定 IP 的设置,因为当前的 IP 大概率是 DHCP 分配的。大家根据自己路由器的情况将虚拟机的 MAC 和一个固定 IP 绑定,否则可能会出现来回变 IP 的情况。

2 安装 mjpg-streamer

2.1 部署所需必要环境

在 GitHub 下载源代码:GitHub: mjpg-streamer

将安装包解压到虚拟机的某个位置,最好是路径越简单越好,这里我是改了文件夹名。

打开终端,部署环境的代码如下,一步一步运行即可,这里我已经安装过了。

sudo apt-get install cmake libjpeg8-dev
sudo apt-get install gcc g++

在终端 CD 到你的文件夹,运行代码,代码如下:

sudo -i
cd /home/clouduh/streamer
./mjpg_streamer -o "output_http.so -p 2345 -w 192.168.1.90" -i "input_uvc.so -d /dev/video0 -y"

其中 2345192.168.1.90 为端口和虚拟机 IP 地址,前者可以根据自己的需求自行设定,后者必需跟前面设置的固定 IP 相匹配。运行后显示,这样就意味着没问题了。

在浏览器中输入 192.168.1.90:2345 查看设置好的网络摄像头画面。

2.2 设置自启动的系统服务

这个方案虽然比较好,但是可能由于硬件和系统的差异性导致了一定的不稳定性,他会间接性地出现错误,解决办法是重新运行上述代码就可以解决这个问题,但监控的意义在于自动,如果一直掉线需要手动重启那就失去了设置的意义了。

打开终端,依次运行以下代码,创建系统服务。

sudo nano /etc/systemd/system/streamer.service

在新的窗口写入以下内容:

[Unit]
Description=Streamer Service
After=network.target

[Service]
Type=simple
ExecStart=/home/clouduh/streamer/mjpg_streamer -o "output_http.so -p 2345 -w 192.168.1.90" -i "input_uvc.so -d /dev/video0 -y"
Restart=always
RestartSec=5
WorkingDirectory=/home/clouduh/streamer
User=root

[Install]
WantedBy=multi-user.target

按 Ctrl+0 保存文件,然后按 Ctrl+X 退出编辑。

运行下面代码,重新加载配置并设置开机重启:

sudo systemctl daemon-reload
sudo systemctl start streamer.service
sudo systemctl enable streamer.service

运行一下代码查看当前的状态:

sudo systemctl status streamer.service

3 设置 Surveillance Station

在 DSM 中的套件中心安装 Surveillance Station。

在网络摄像头里添加摄像头,信息就是刚才的 IP 地址端口号。

添加摄像头后即可看到画面的信息。

这里我把摄像头拔了,所以显示离线。

在录制中查看历史的录制文件。