适用:RK3588 工业算力盒(NPU 标称 6TOPS@INT8)、海康 / 大华 / 宇视 IPC、H264/H265 摄像头,整套链路:RTSP 拉流→硬件解码→NPU 推理→结果输出 / 告警 / 二次 RTSP 推流。

一、前期准备(硬件 + 网络 + 参数)
1. 硬件清单
6TOPS 算力盒:RK3588(标配 6TOPS INT8 NPU、VPU 硬解 H264/H265 4K)、双网口最佳(LAN1 上网、LAN2 接监控交换机)
POE 网络 IPC(海康 / 大华)、千兆交换机、PC 调试电脑
2.IP 网段规划(必做,90% 对接失败是网段不通)
1. 摄像头:静态 IP 192.168.1.XX,网关192.168.1.1,子网 [255.255.255.0](255.255.255.0)
2. 算力盒网口 2(接监控交换机):静态 IP 192.168.1.100(同摄像头网段);网口 1 配置办公网 IP 用于远程管理
3. PC 调试网卡:同网段192.168.1.X,关闭防火墙
3. 获取摄像头 RTSP 地址(关键)
品牌 | RTSP 标准地址格式 | 示例 |
海康 | rtsp:// 账号:密码 @IP:554/Streaming/Channels/101 | rtsp://admin:123456@[192.168.1.60:554/Streaming/Channels/101](192.168.1.60:554/Streaming/Channels/101) |
大华 | rtsp:// 账号:密码 @IP:554/cam/realmonitor?channel=1&subtype=0 | rtsp://admin:123456@[192.168.1.61:554/cam/realmonitor?channel=1](192.168.1.61:554/cam/realmonitor?channel=1)&subtype=0 |
通用 ONVIF | rtsp:// 账号:密码 @IP:554/stream | rtsp://admin:123@[192.168.1.62:554/stream](192.168.1.62:554/stream) |
默认端口 554,优先 TCP 拉流,避免 UDP 丢包卡顿
4. 盒子系统环境(RK3588 原厂 Ubuntu/Debian)
预装依赖(出厂精简系统手动安装)
# 更新源+安装流媒体+推理依赖
sudo apt update && sudo apt install gstreamer1.0* ffmpeg python3-opencv build-essential
# RKMP硬解码库(RK3588专用,实现VPU硬件解码,降CPU占用)
sudo apt install rockchip-mpp librga-dev
6TOPS 算力盒标配:RKNN Runtime(NPU 推理库)、RKNN-Toolkit2(PC 端模型转 RKNN)
二、第一步:测试 RTSP 连通性(PC→盒子两级验证)
1.PC 端 VLC 先验证摄像头 RTSP 可用
打开 VLC→媒体→打开网络串流,填入 RTSP 地址,勾选RTSP 通过 TCP,能出画面 = 摄像头流正常。
2. 算力盒 FFmpeg 命令拉流测试(验证网络通畅)
# TCP强制拉流,10秒测试,能打印码率、分辨率即连通成功
ffmpeg -rtsp_transport tcp -i "rtsp://admin:123456@192.168.1.60:554/Streaming/Channels/101" -t 10 -f null -
报错:Connection refused→IP / 账号密码错误 / 交换机不通
报错:timeout→网线 / 网段错误
三、方案 1:GStreamer+RKMP 硬解码拉流(工程量产首选,硬件解码不占 CPU,适配 6TOPS 多路并发)
RK3588 用mppvideodec调用 VPU 硬解 H264/H265,1080P 单路解码 CPU<5%,6TOPS 盒子稳定跑 8~12 路 1080P YOLOv8n
1. 低延迟 GST 拉流管道(直接取 BGR 帧送入 NPU 推理)
# 终端测试拉流+解码输出帧(可替换appsink对接Python/C++推理)
gst-launch-1.0 rtspsrc location="rtsp://admin:123456@192.168.1.60:554/Streaming/Channels/101" latency=0 protocols=tcp ! rtph264depay ! h264parse ! mppvideodec ! videoconvert ! video/x-raw,format=BGR ! appsink drop=true sync=false
参数说明
latency=0:关闭 RTSP 缓存,控制延迟 < 200ms(安防刚需)
protocols=tcp:强制 TCP 传输,杜绝丢花屏
mppvideodec:RK3588 硬件解码器(核心,6TOPS 盒子标配)
drop=true sync=false:丢落后帧,保证实时推理
2.Python OpenCV+GST 读取 RTSP 帧(对接 NPU 推理代码)
import cv2
# 拼接GST管道
rtsp_url = "rtsp://admin:123456@192.168.1.60:554/Streaming/Channels/101"
gst_pipe = f'rtspsrc location={rtsp_url} latency=0 protocols=tcp ! rtph264depay ! h264parse ! mppvideodec ! videoconvert ! video/x-raw,format=BGR ! appsink drop=true sync=false'
cap = cv2.VideoCapture(gst_pipe, cv2.CAP_GSTREAMER)
# 循环取帧送入RKNN NPU推理
while cap.isOpened():
ret,frame = cap.read()
if not ret:
cap.release()
cap = cv2.VideoCapture(gst_pipe,cv2.CAP_GSTREAMER)
continue
# 此处调用RKNN推理接口,frame送入6TOPS NPU做目标检测
四、方案 2:FFmpeg 简易拉流(快速调试,原型验证)
适合新手快速跑通链路,缺点多路并发 CPU 偏高
# FFmpeg拉RTSP→转raw帧管道输出
ffmpeg -rtsp_transport tcp -flags low_delay -i "rtsp://xxx" -pix_fmt bgr24 -f rawvideo pipe:
五、第二步:YOLO 模型适配 6TOPS NPU(RKNN 量化部署,6TOPS 性能最大化)
RK3588 6TOPS INT8:YOLOv8n 1080P 单路推理 25\35FPS,v8s 15\22FPS,是多路并发基准
1.PC 端模型转换(RKNN-Toolkit2)
1. PyTorch 导出yolov8n.pt→yolov8n.onnx
2. RKNN-Toolkit2 量化:FP32→INT8(适配 NPU 6TOPS 算力,提速 3~4 倍),输出yolov8n.rknn
3. 把.rknn模型传到算力盒/home/models/目录
2. 盒子端 RKNN Runtime 加载 NPU 推理(核心链路)
from rknn.api import RKNN
# 初始化RKNN绑定6TOPS NPU
rknn = RKNN()
rknn.load_rknn('./yolov8n.rknn')
rknn.init_runtime(target='rk3588',core_mask=0b1111) # 启用全部NPU核心(6TOPS)
# 传入GST获取的frame做推理
infer_res = rknn.inference(inputs=[frame])
# 后处理:解析检测框、置信度,画框、触发告警
六、第三步:结果输出 3 种落地方式(实操常用)
1. 本地 HDMI 显画面(盒子接显示器实时预览带检测框画面)
修改 GST 管道末尾appsink→waylandsink
gst-launch-1.0 xxx ! videoconvert ! waylandsink sync=false
2. 识别结果二次 RTSP 推流(后端 NVR/VLC 拉智能流)
算力盒部署mediamtx轻量 RTSP 服务(默认 8554 端口),推理画框后编码推流:
# 处理后画面H265编码推本地RTSP:rtsp://盒子IP:8554/ai_stream
ffmpeg -f rawvideo -pix_fmt bgr24 -s 1920x1080 -r25 -i pipe: -c:v h265_rkmpp -rtsp_transport tcp rtsp://127.0.0.1:8554/ai_stream
3. 告警推送(HTTP/MQTT)
识别到人 / 车越界后,抓拍图片 + 告警信息 POST 上传平台。
七、6TOPS 算力盒多路并发配置参考(RK3588 实测)
算法型号 | 单路 1080P 算力占用 | 6TOPS 最大并发路数 | 推荐码率 |
YOLOv8n(INT8) | 0.4~0.5TOPS | 10~12 路 | 2Mbps H265 |
YOLOv8s(INT8) | 0.8~1TOPS | 5~6 路 | 2Mbps H265 |
人形检测轻量化 | 0.3TOPS | 15 路 | 1.5Mbps H264 |
优化:摄像头子码流 720P@15fps,可再提升 30% 并发数量
八、常见故障排查(现场高频问题)
1. RTSP 频繁断流、花屏:加-rtsp_transport tcp强制 TCP,IPC 改成 H265 编码降低码率
2. CPU 满载、NPU 闲置:未启用 mppvideodec 硬解,改用 GST+RKMP 硬件解码
3. NPU 推理帧率低,跑不满 6TOPS:模型未 INT8 量化,用 RKNN-Toolkit 量化为 INT8
4. 能拉流但无推理画面:分辨率不匹配,统一 IPC 输出 1920×1080
九、成品商用盒子 Web 配置捷径(自带管理后台无需敲代码)
工业成品 6TOPS AI 盒子自带 WEB(IP:80)
1. 登录后台→视频通道→新增 RTSP 通道,粘贴 IPC RTSP 地址
2. 算法管理→绑定 YOLO 人形 / 车辆算法,开启 NPU 推理
3. 输出配置:开启 RTSP 推流、告警推送,保存即上线
需求留言: