DeepStream Multi-Stream Video Analytics on NG4500
NeoEdge NG4500(Jetson Orin)上的多路 RTSP 视频分析——单台可同时处理 2–32 路相机,硬解码 + 推理 + 跟踪,产出业务事件并重发布标注 RTSP 流。
1. 方案概述
deepstream 扩展封装了 NVIDIA DeepStream 7.1 SDK(基于 GStreamer 的视频分析流水线),在 Jetson 上提供多路 RTSP 推理。典型部署形态:NeoMind 在 Mac/PC,sidecar 在 NG4500,通过 TCP 远程桥接。
核心能力:
- 多路 RTSP:单台 Jetson Orin NX 8G 可并发 2–32 路 720p/1080p。
- 硬件流水线:NVDEC → TensorRT → 跟踪(NvDCF/NvSORT)→ nvdsanalytics → OSD → NVENC,零拷贝。
- 业务分析:越线、区域入侵、双向计数、停留时长。
- 标注输出:带检测框 / 跟踪 ID / 分析叠加的 RTSP 流,浏览器可看的 MJPEG 缩略图与 JPEG 截图。
- 事件驱动:Detection / LineCross / ROIIntrusion / AnalyticsSnapshot 推送到 NeoMind EventBus,可触发仪表板与自动化。
数据流向:
效果演示(多路 RTSP 实时推理 + 跟踪 + 业务事件叠加):
2. 物料清单(BOM)
| 物料 | 规格 | 用途 | 必需 |
|---|---|---|---|
| NeoMind 平台 | v0.8.0+ | 运行在 Mac/PC,托管扩展 | ✅ |
| deepstream 扩展 | v2.8.0+ | 远程桥接 + 事件路由 | ✅ |
| NG4500 | Jetson Orin NX/Nano/AGX,JetPack 6.x,DeepStream 7.1 | 跑 DeepStream sidecar | ✅ |
| RTSP 相机 | 2–32 路 720p/1080p | 视频源 | ✅ |
| 网络 | NeoMind 与 NG4500 可互通(TCP 9556 等) | 远程桥接 | ✅ |
3. 部署 DeepStream 运行环境(NG4500)
deepstream 扩展的 Python sidecar 只能在 Jetson 上运行(DeepStream SDK 仅 Jetson 可用)。下面在 NG4500 上从零部署一次,分六步。DeepStream SDK 本体的安装细节见 NG4500 DeepStream 指南,扩展自带最全步骤见 INSTALL.md。
全程在 NG4500 上以普通用户操作;Docker 命令依赖
nvidia-container-runtime(JetPack 自带)。
3.1 核对系统环境
| 项目 | 要求 | 核对命令 |
|---|---|---|
| JetPack / L4T | R36.4.3(JetPack 6.1 GA) | cat /etc/nv_tegra_release |
| 内核 | 5.15.x-tegra | uname -r |
| 可用磁盘 | ≥ 20 GB | df -h /var/lib |
| 内存 | ≥ 8 GB(验证于 Orin NX 8GB) | free -h |
3.2 安装 DeepStream SDK 7.1
推荐用官方 Debian 包(最省事)。先装依赖:
sudo apt update
sudo apt install -y libssl1.1 libgstreamer1.0-0 gstreamer1.0-tools \
gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \
gstreamer1.0-libav libgstrtspserver-1.0-0 libjansson4 libyaml-cpp-dev
从 NGC 下载 deepstream-7.1_7.1.0-1_arm64.deb 后安装:
sudo apt-get install ./deepstream-7.1_7.1.0-1_arm64.deb
sudo ldconfig
验证:
deepstream-app --version-all
# deepstream-app version 7.1.0 / DeepStreamSDK 7.1.0 / CUDA 12.6 / TensorRT 10.3
tar 包、SDK Manager 等其它安装方式见 NG4500 DeepStream 指南第 3 节。
3.3 配置 Docker
Orin NX 内核有两个坑必须先处理,否则容器会无限重试或网络不通。
① 存储驱动改 vfs——内核 overlayfs 处理容器内 whiteout 文件会失败,导致 Docker 反复重试塞满磁盘:
sudo tee /etc/docker/daemon.json <<'EOF'
{
"storage-driver": "vfs",
"default-runtime": "nvidia",
"runtimes": {
"nvidia": { "path": "nvidia-container-runtime", "runtimeArgs": [] }
}
}
EOF
sudo systemctl restart docker