文档版本:V1.0 | 适用系统:Linux 6.1 / Android14 | 适用硬件:C-3576BQ V10 核心板 + M4-R2(ShimetaPi)底板 | 更新日期:2026-10-23
NVR(Network Video Recorder)安防监控方案基于 M4-R2(RK3576)的视频硬件编解码能力(H.264/H.265/VP9 解码,最高 4K@30fps)与 NPU 智能分析能力(6 TOPS),实现网络摄像头接入、视频解码预览、录像存储、回放与智能分析(人形/车辆检测、人脸识别等)。
RK3576 具备多路视频硬件解码能力(具体路数以实际 SDK 与板端实测为准),结合双千兆以太网可接入多个网络摄像头,配合 eMMC / M.2 SSD 存储录像,构成一体化的边缘 NVR。
- 小型监控 NVR:家庭/商铺/园区多路摄像头接入与录像
- 智能安防:人形/车辆检测报警、人脸识别门禁联动
- 视频上云:本地录像 + 关键事件上云备份
- 车牌识别:出入口车牌抓拍与识别
- 工业视频监控:车间/仓库实时监控与事件回溯
| 项目 | 规格 | 来源 |
|---|
| 视频解码 | H.264/H.265/VP9,最高 4K@30fps(多路能力以实测为准) | 参考说明 |
| 视频编码 | H.264/H.265,最高 4K@30fps | 参考说明 |
| NPU | 标称 6 TOPS INT8,智能分析(人形/车辆/人脸) | 参考说明 |
| 存储 | eMMC 32GB+ / TF 卡(SD3.0,最高 128GB)/ M.2 SSD(NVMe) | 已验证 |
| 网络 | 双路千兆以太网(GMAC0/GMAC1),接入网络摄像头 | 已验证 |
| 显示 | HDMI / MIPI DSI / eDP,本地预览 | 已验证 |
注意:多路并发解码路数、单路码流能力与录像写入带宽需在板端实测(待板上验证),以实际 SDK 与物料为准。
| 系统 | 适用场景 | 说明 |
|---|
| Linux | 轻量 NVR、命令行/脚本管理、可裁剪 | 启动快、资源占用低,适合固定功能设备 |
| Android14 | 带触摸屏的本地预览/操作终端 | 交互友好,适合带屏监控终端 |
+-------------------------------------------------------------+
| 应用层(Application) |
| 录像管理 | 实时预览 | 回放 | 智能分析 | 事件报警 |
+-------------------------------------------------------------+
| 中间件层(Middleware) |
| RTSP/RTP | GStreamer | RKNN(智能分析) | 存储管理 |
+-------------------------------------------------------------+
| 系统层(System) |
| Linux/Android | MPP 编解码 | V4L2 | DRM 显示 | NPU |
+-------------------------------------------------------------+
| 硬件层(Hardware) |
| RK3576 SoC | 双千兆以太网 | eMMC/TF/M.2 | HDMI |
+-------------------------------------------------------------+
网络摄像头 ──> RTSP 取流 ──> MPP 硬件解码 ──> 智能分析(NPU) ──> 显示预览
└──> H.264/H.265 编码 ──> 录像存储(eMMC/TF/M.2)
| 模块 | 说明 |
|---|
| 取流 | RTSP/RTMP 拉流(GStreamer),支持多路接入(路数以实测为准) |
| 解码 | MPP 硬件解码(H.264/H.265/VP9,4K@30fps 上限) |
| 录像 | 本地录像与分段存储,支持循环覆盖 |
| 智能 | NPU 人形/车辆/人脸检测,事件触发报警 |
| 回放 | 按时间段/事件检索回放 |
| 网络 | 双千兆以太网接入与上云 |
| 类别 | 名称/型号 | 数量 | 说明 |
|---|
| 核心板 | C-3576BQ V10(RK3576) | 1 | 4GB LPDDR5 + eMMC |
| 底板 | M4-R2(ShimetaPi) | 1 | 双千兆、存储、显示接口 |
| 存储(可选) | M.2 SSD(NVMe) | 1 | 扩容录像存储 |
| 摄像头 | 网络摄像头(RTSP/ONVIF) | 1+ | 监控输入源 |
| 显示屏 | HDMI 显示器 或 MIPI DSI 屏 | 1 | 本地预览(可选) |
| 电源 | 5V 适配器(典型 5V,最大 5.5V,电流 4A) | 1 | 供电 |
# 查看存储设备
lsblk
# 格式化并挂载 TF 卡(以实际设备节点为准)
mkfs.ext4 /dev/mmcblk1p1
mount /dev/mmcblk1p1 /mnt/nvr
# 从网络摄像头拉流并硬件解码显示
gst-launch-1.0 rtspsrc location=rtsp://user:pass@192.168.1.100/stream1 \
latency=0 ! rtph264depay ! h264parse ! mppvideodec ! \
videoconvert ! autovideosink
# 拉流解码后编码写入文件(以实际场景调整)
gst-launch-1.0 rtspsrc location=rtsp://user:pass@192.168.1.100/stream1 \
latency=0 ! rtph264depay ! h264parse ! mppvideodec ! \
mpph264enc ! h264parse ! mp4mux ! filesink location=/mnt/nvr/rec.mp4
说明:具体编码插件名与参数以实际 SDK 的 GStreamer 插件为准(待板上验证)。
| 码率 | 单路每天容量(约) | 说明 |
|---|
| 2 Mbps | 约 21.6 GB | 720p 场景常用码率 |
| 4 Mbps | 约 43.2 GB | 1080p 场景常用码率 |
实际码率与容量以摄像头配置与录像策略为准,以上为估算参考;存储规划需结合路数与留存天数。
import gi
gi.require_version('Gst', '1.0')
from gi.repository import Gst
Gst.init(None)
# 创建 RTSP 拉流 + 硬件解码 + 录像管道
pipeline = Gst.parse_launch(
'rtspsrc location=rtsp://user:pass@192.168.1.100/stream1 latency=0 ! '
'rtph264depay ! h264parse ! mppvideodec ! '
'mpph264enc ! h264parse ! mp4mux ! filesink location=/mnt/nvr/rec.mp4'
)
pipeline.set_state(Gst.State.PLAYING)
# 等待 EOS 或错误
bus = pipeline.get_bus()
msg = bus.timed_pop_filtered(
Gst.CLOCK_TIME_NONE,
Gst.MessageType.EOS | Gst.MessageType.ERROR
)
pipeline.set_state(Gst.State.NULL)
NPU 智能分析示例与部署流程见人脸检测与识别与目标检测部署(YOLOv5-v7-v8)。典型流程:解码帧 → RGA 缩放 → RKNN 推理 → 后处理(检测框/识别结果)→ 触发录像标记或报警。
| 问题 | 处理方法 |
|---|
| 无法拉流 | 检查摄像头 RTSP 地址、用户名密码与网络连通(见网络连接问题) |
| 视频播放卡顿 | 确认使用硬件解码(mppvideodec),检查码流规格与网络带宽 |
| 多路并发性能不足 | 降低单路分辨率/帧率,确认并发路数上限(以板端实测为准) |
| 录像文件无法播放 | 检查 mp4mux/编码参数,录像过程中异常退出可能导致文件损坏 |
| 存储空间不足 | 规划码率与留存天数,启用循环覆盖或扩容 M.2 SSD |
| 智能分析误报/漏报 | 调整检测阈值与模型输入尺寸,检查光照与画面角度 |