这个监控项目方案是否可行,大家来点评一下

查看 7|回复 0
作者:donaldliang6   
想法
使用老旧笔记本电脑使用 Docker 运行 Frigate NVR™程序来实现监控项目并借助 Rclone 实现定期上传至 115 网盘
传统监控系统基本上是直接被厂商定制化绑定,尤其是提供网络摄像头的各种方案
网盘的功能越来越强大,且支持 api 调用及 rclone 挂载
很多网盘动不动就是送几 T 空间
这些网盘基本都对视频在线预览有很好的支持
监控录像保存的逻辑基本上也是按照天的形式保存
那么只要自动化的将监控文件内容上传到网盘,在需要查监控的时候即可直接打开网盘在线播放,并且理论上数据丢失风险很低
想实时看监控的话,在内网中可以直接访问页面观看
在外网的话也有很多解决方案,frp ?
这样似乎有一个巨大的缺点就是吃上传
粗略计算一下 24 小时下各个质量下的存储占用
[td]画面质量[/td]
[td]单路码率[/td]
[td]5 路总计码率[/td]
[td]24 小时总数据量[/td]
1080P (2MP)
2Mbps
10Mbps
约 105 GB
2K (4MP)
4Mbps
20Mbps
约 211 GB
4K (8MP)
8Mbps
40Mbps
约 422 GB
我来把一天划成工作时间和休息时间
工作时间:8:00 --- 22:00 共计 14 小时
休息时间:22:00 --- 8:00 共计 10 小时
一般家庭宽带的上传拿 30M 来计算
工作时间我们将上传限速 15M ,休息时间满速
工作时间理论可上传:96.26G
休息时间理论课上传:131.8G
理论状态下上传总量:224.06G

对于 8MP 的话那是远远不够了,5 路计算全 4MP 刚刚好,但是可以重点区域 4MP ,非重点区域 2MP
但是时间长了运营商治不治那就不好说了
依赖项目
项目地址
https://github.com/blakeblackshear/frigate
官网
https://frigate.video/
思路
旧笔记本是联想小新 Air15

旧电脑信息:


主板:Manufacturer: LENOVO Product: INVALID


处理器:11th Gen Intel(R) Core(TM) i5-1155G7 @ 2.50GHz


总内存:16167 MB
显卡:Intel(R) Iris(R) Xe Graphics | GameViewer Virtual Display Adapter

刷入主流流行 Linux 发行版本 Debian
安装必要环境与 Docker
配置 rclone
.......
需要准备的材料

备忘录
禁止合盖休眠
编辑文件:
sudo nano /etc/systemd/logind.conf
找到并修改这两行:
HandleLidSwitch=ignore
LidSwitchIgnoreInhibited=no
重启服务:
sudo systemctl restart systemd-logind
开启电池保护
长年插电运行,电池容易鼓包。联想 Ideapad 系列(包括小新)在 Linux 下支持固定在 60% 电量:
echo 1 | sudo tee /sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode
注:路径可能因内核版本略有差异,可以通过
find /sys -name "conservation_mode"
查找具体位置。
HDD 外部硬盘的长效挂载
获取 UUID:执行 sudo blkid 找到你的 HDD 硬盘 UUID 。
修改 fstab:
编辑
/etc/etc/fstab
添加如下行:
UUID=你的 UUID /mnt/cctv ext4 defaults,nofail,noatime 0 2
nofail 参数非常关键:万一硬盘盒没上电,系统依然能正常启动,不会卡在启动界面。
Frigate 核心配置
在 docker-compose.yml 中分配显卡权限:
devices:
  - /dev/dri/renderD128:/dev/dri/renderD128 # 映射 Intel 核显
在 frigate.yml 中优化检测:
ffmpeg:
  hwaccel_args: preset-intel-qsv-h264 # 4 路高清解码毫无压力
detectors:
  ov:
    type: openvino
    device: GPU # 利用 Iris Xe 的 80 个执行单元进行 AI 推理
错峰上传方案:Rclone 动态限速脚本逻辑
针对“今天传前天、白天限速、晚上全速”的构想,建议在 Debian 中使用 Systemd Timer 配合 Rclone:
限速配置:利用 Rclone 内置的 --bwlimit 参数实现时段控制。
逻辑示例
# 白天 06:00 到 23:00 限速 1.5M (12Mbps 左右)
# 晚上 23:00 到 06:00 不限速 (off)
rclone move /mnt/hdd/archive remote:backup \
  --min-age 2d \
  --bwlimit "06:00,1.5M 23:00,off" \
  --delete-empty-src-dirs
在 Frigate 中把“USB 拾音器”和“摄像头”结合
Frigate 内置的 go2rtc 模块可以像“搭积木”一样合并音视频流。
配置逻辑参考 (frigate.yml):
go2rtc:
  streams:
    counter_full_stream:
      - rtsp://admin:[email protected]/h265/main  # 摄像头的视频
      - ffmpeg:device?audio=hw:CARD=Device,DEV=0      # 你的 USB 拾音器音频
效果:Frigate 会实时将这两个不同来源的流压在一起,生成一个带高清音频的录像文件,存入 HDD 硬盘。
拓扑结构
物理层
电力供应层
  • 墙上插座 --> 原装 65W 充电器 --> 拓展坞 PD 口 (100W 支持) --> 笔记本 USB-C
  • 墙上插座 --> 绿联硬盘盒电源适配器 (12V) --> 硬盘盒
  • 墙上插座 --> TP-LINK 交换机电源 --> 交换机

    网络数据层
  • 5 路 IP 摄像头 --> Cat6 类网线 --> TP-LINK SG2210LPF (PoE 供电口 1-8)
  • TP-LINK 交换机 (第 9 号级联口) --> 网线 --> 小米拓展坞 RJ45 千兆网口

    本地外设层 (全部连接至小米拓展坞 USB-A 口)
  • 绿联 3.5 寸硬盘盒 (内置 HDD 硬盘)
  • 海康 DS-VM1 USB 麦克风阵列

    系统逻辑架构
    接入层
  • Video: Frigate 通过 FFmpeg 抓取交换机传来的 RTSP 视频流。
  • Audio: Debian 系统通过 ALSA/PipeWire 驱动识别 USB 麦克风音频设备 (/dev/snd)。

    处理层
  • AI 识别: 利用 i5-1155G7 的 Iris Xe 核显,通过 OpenVino 进行人形/车辆过滤。
  • 混流 (MUX): Go2RTC 模块将 6mm 摄像头的画面与 USB 麦克风的声音实时合并。

    存储层
  • 热数据: 实时视频帧缓存在内存 (SHM) 或自带 NVMe SSD 中
  • 温数据: 24 小时高清录像存入外挂的 HDD 硬盘( UUID 挂载至 /mnt/cctv )
  • 冷数据: 凌晨时段,Rclone 脚本将“昨天”的录像加密上传至云端。
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部