树莓派5-学习笔记5:树莓派+群辉NAS搭建个人监控中心

系列文章目录

树莓派5-学习笔记1:系统的烧录与安装
树莓派5-学习笔记2:配置VNC远程桌面
树莓派5-学习笔记3:系统更新与备份
树莓派5-学习笔记4:摄像模块安装、调试与网络摄像头的测试(imx219非原厂)
树莓派5-学习笔记5:树莓派+群辉NAS搭建个人监控中心



前言

准备过程与希望的效果:
1)树莓派+摄像头;
2)开机就可以自动联网推流;
3)可以实时查看摄像监控画面,监控画面存到NAS上。
在这里插入图片描述


1. 树莓派+摄像头

这个已经调试完成,不说了,略过。
调试过程可以看这个链接:https://blog.youkuaiyun.com/sinat_20659395/article/details/146190645?spm=1001.2014.3001.5501

2. 设置开机自动推送视频流,验证下效果

1)先写一个最简单的脚本,就叫camera-udp.sh

#!/bin/bash
rpicam-vid -n -t 0 --libav-format mpegts -o udp://224.0.0.10:8858

2)修改一下权限,让脚本可执行。

chmod +x /home/ixidor/Desktop/camera-udp.sh

在用ls -lh命令确认一下,权限是执行的。
在这里插入图片描述
3)创建一个新的systemd服务器,来实现开机启动。名字就叫testscript.service。

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

接复制粘贴下面内容:

[Unit]
Description=My Custom Script
After=network.target

[Service]
Type=simple
ExecStart=/home/ixidor/Desktop/camera-udp.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

在“ExecStart=”,的后面写上刚才创建的脚本路径就行了。
Ctrl+O保存,Ctrl+X退出。

4)使用systemctl start 命令启动服务

sudo systemctl start testscript.service

5)使用systemctl enable 命令设置服务开机自动启用

sudo systemctl enable testscript.service

6)使用systemctl status 命令检查服务状态

sudo systemctl status testscript.service

在这里插入图片描述
检查确认状态都是对的,服务正常启动。

7)重启树莓派进行验证。

  1. 树莓派直接断电重启;
  2. 局域网电脑VLC拉流测试:刚才脚本里写得是组播流,ip地址224.0.0.10,端口是8858。
  3. 局域网内,在电脑上打开VLC,打开网络串流,对话框中输入:udp://@224.0.0.10:8858。
    在这里插入图片描述
  4. 可以看到直播画面,测试通过。开机自动推流成功。
    在这里插入图片描述

3. 换一种方式实现:python+VLC+RTSP推流

因为群辉NAS上自带的SurveillanceStation不支持UDP推流,所以还得换一下实现方式。
1)新建一个python脚本:rtsp_test4.py

import subprocess
import logging
import signal

class VLCRTSPStreamer:
    def __init__(self,
                 resolution=(640,480),
                 framerate=30,
                 rtsp_port=8554,
                 stream_name="stream1"):
        self.camera_cmd = [
            "rpicam-vid",
            "-t", "0",
            "-n",
            "--width", str(resolution[0]),
            "--height", str(resolution[1]),
            "--framerate", str(framerate),
            "--codec", "H264",
            "--libav-format", "mpegts",
            "-o", "-"
        ]

        self.vlc_cmd = [
            "cvlc",
            "stream:///dev/stdin",
            "--sout",
            f"#rtp{{sdp=rtsp://:{rtsp_port}/{stream_name}}}"
        ]

        self.proc_cam = None
        self.proc_vlc = None
        self.logger = logging.getLogger("VLC_Streamer")

    def start(self):
        try:
            self.proc_cam = subprocess.Popen(
                self.camera_cmd,
                stdout=subprocess.PIPE,
                stderr=subprocess.PIPE
            )

            self.proc_vlc = subprocess.Popen(
                self.vlc_cmd,
                stdin=self.proc_cam.stdout,
                stderr=subprocess.PIPE
            )

            self.logger.info("推流服务已启动 PID: %d", self.proc_vlc.pid)

        except Exception as e:
            self.logger.error("启动失败: %s", str(e))

    def stop(self):
        for proc in [self.proc_vlc, self.proc_cam]:
            if proc:
                proc.send_signal(signal.SIGINT)
                proc.wait(timeout=5)
        self.logger.info("服务已停止")

if __name__ == "__main__":
    logging.basicConfig(level=logging.INFO)
    streamer = VLCRTSPStreamer()
    streamer.start()

    try:
        while True:
            pass
    except KeyboardInterrupt:
        streamer.stop()

记住rtsp端口是:8854; stream_name是:stream1,后面要用。

2)修改一下权限,让脚本可执行。

chmod +x /home/ixidor/Desktop/rtsp_test4.py

3)再创建一个新的systemd服务器,来实现开机启动。这次名字叫testscript-camera.service。

sudo nano /etc/systemd/system/testscript-camera.service
[Unit]
Description=Python RTSP Streamer
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/python3 /home/ixidor/Desktop/rtsp_test4.py
Restart=always
User=ixidor

[Install]
WantedBy=multi-user.target

4)使用systemctl stop 和 disable 命令关闭之前的testscript.servic服务
不然两个服务都要开机调研摄像头进行推流,会发生冲突。需要把之前测试用的那个关掉。

sudo systemctl stop testscript.service
sudo systemctl disable testscript.service

执行完后,再用systemctl status查看状态:
在这里插入图片描述

这样就OK了。

5)使用systemctl start 和 enable 命令设置testscript-camera.service开机自动启动。

sudo systemctl start testscript-camera.service
sudo systemctl enable testscript-camera.service

执行完后,再用systemctl status 查看状态:在这里插入图片描述
显示状态正确。

6)在VLC客户端验证一下RTSP拉流状态正常
还是在之前的VLC客户端上,修改网络URL成:rtsp://192.168.31.236:8554/stream1。
在这里插入图片描述
可以看到直播画面,测试通过。
重启树莓派,再验证一下开机自动推流,再去确认成功。
在这里插入图片描述

4. 配置群辉NAS 的Surveillance Station

1)进入群辉NAS的套件中心
在这里插入图片描述
2)安装 Surveillance Station 和 Surveillance Video Extension 套件

在这里插入图片描述

3)安装完成后,在主菜单就能看到这个 Surveillance Station 图标了。点击图标进入Surveillance Station 页面。
在这里插入图片描述
4)在Surveillance Station 页面内,点击”网络摄像头“图标。
在这里插入图片描述
5)添加一个新的网络摄像机。
步骤:

  1. 点击“新增”;

  2. 点击“手动添加”;

  3. 点击“添加摄像机”;

  4. 名称自己随便起就行,品牌选择:用户自定义;

  5. 类型选择:RTSP;

  6. 路径写rtsp://192.168.31.236:8554/stream1,192.168.31.236是树莓派的地址,8554是RTSP端口号。
    在这里插入图片描述

  7. 点击“新增”按钮,然后直接“下一步”。
    在这里插入图片描述

  8. 如果发现有一个“验证”是告警状态。点击进去看下。
    在这里插入图片描述

  9. 这里提示要输入用户账号和密码,因为之前在树莓派上并没有配置,所以直接点“验证”就行。
    在这里插入图片描述

  10. 点击“验证”后,可以看到窗口刷新了一下,监控画面出来了,状态也显示正常
    在这里插入图片描述

  11. 快速设置,直接下一步。
    在这里插入图片描述

  12. 点击完成。

在这里插入图片描述

  1. 添加成功,配置成功。
    在这里插入图片描述

5. 使用SurveillanceStation的监控中心

1)在SurveillanceStation页面上,直接点击“监控中心”。
在这里插入图片描述
2)直接拖拽刚才新建的摄像头就可以了。
在这里插入图片描述

在这里插入图片描述
**3)可以在对这个摄像头调整一下设置。**在这里插入图片描述

回到网络摄像机那里,点击“编辑”。
在这里插入图片描述

### 树莓派安装和配置NAS的最佳实践 #### 1. 系统准备 树莓派作为一款低功耗、高性能的单板计算机,非常适合用于搭建家庭网络附加存储(NAS)。首先需要为树莓派安装操作系统。推荐使用Raspberry Pi OS Lite版本,因为它轻量且适合服务器用途[^4]。 ```bash sudo apt update && sudo apt upgrade -y ``` 上述命令可以更新系统的包管理器并升级已有的软件包。 #### 2. 配置共享文件夹 为了实现文件共享功能,通常会使用Samba服务来设置共享目录。以下是具体操作: - **安装 Samba** ```bash sudo apt install samba samba-common-bin -y ``` - **创建共享目录** ```bash sudo mkdir /home/pi/shared_folder sudo chmod 777 /home/pi/shared_folder ``` 此命令创建了一个名为`shared_folder`的可读写目录。 - **编辑 Samba 配置文件** 通过修改 `/etc/samba/smb.conf` 文件添加新的共享路径: ```ini [Shared] path = /home/pi/shared_folder browsable = yes writable = yes guest ok = yes read only = no create mask = 0777 directory mask = 0777 force user = pi ``` 保存后重启 Samba 服务以使更改生效: ```bash sudo systemctl restart smbd ``` #### 3. 数据存储扩展 由于树莓派自带的MicroSD卡容量有限,建议连接外部硬盘或U盘作为主要存储介质。可以通过 `blkid` 命令查看挂载设备,并将其自动挂载到指定位置。 例如,假设外接硬盘UUID为`1234-ABCD`,则可以在 `/etc/fstab` 中加入如下条目: ```plaintext UUID=1234-ABCD /mnt/external_drive ext4 defaults,nofail 0 2 ``` 这一步骤确保每次开机时都能正确加载数据卷。 #### 4. 提升性能与安全性 对于长期运行的服务而言,优化系统资源分配以及加强网络安全防护尤为重要。 - **启用SSH远程访问**以便于日常管理和维护。 - **定期备份重要资料**以防意外丢失。 - **限制不必要的端口开放**减少潜在攻击风险。 --- ### 总结 以上就是在树莓派上建立个人NAS的方法概述,涵盖了基础环境布置、资源共享设定直至额外增强措施等多个方面。值得注意的是,尽管本文未提及无线网络适配器相关内容,但如果计划利用此类配件改善连通性,则需参照相应文档完成驱动程序编译安装过程[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值