Agent Skills
返回列表
💻

DeepStream 流水线开发

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/deepstream-dev。

技能介绍

要解决什么问题

DeepStream 把 GStreamer 插件、TensorRT 推理和 NVMM 零拷贝串成一条视频分析流水线,但属性名、Pad 模板、配置段命名和 Python 元数据 API 与直觉不一致。动态 ONNX、Ultralytics YOLO 不同代次的输出形状、Tee 拆分后的 async=0、venv 里缺失 pyservicemaker 等问题,往往在运行时才以 PAUSED 卡住、Probe 失败或框位倾斜等形式暴露。

技能如何工作

激活后在生成代码之前先阅读技能附带的参考文档,而不是凭记忆拼插件。技能给出 SDK 版本与典型阶段(Source → nvstreammux → nvinfer → OSD/Sink),并强调最小流水线:跟踪器、分析、Kafka 等仅在用户明确请求时加入。

核心约定包括:

  • 默认用 nvurisrcbin 处理本地文件、HTTP 与 RTSP;RTSP 需 live-source=1 与 sink sync=0
  • 元数据用 .frame_items / .object_items 迭代,不要对迭代器使用 len()
  • Pad 请求使用 "sink_%u" 模板
  • nvinfer 配置里段名必须是 property;动态 ONNX 需 infer-dims=C;H;W
  • YOLO v8/v11 与 v10/v26+ 的 cluster-mode 必须与输出张量形状匹配

文档索引覆盖插件属性、Service Maker API、用例流水线、Kafka、nvinfer/nvtracker 配置与排错表。

适用边界

技能面向 Ubuntu 24.04 上 DeepStream 栈(文档中列出的 GStreamer/CUDA/TensorRT 版本)。它不替代官方安装文档;复杂自定义协议适配、容器镜像细节需对照 references/ 中对应章节。用户未要求的 GIE、跟踪或消息代理不应默认写入流水线。

使用场景

  • 在 Ubuntu/Jetson 上从 RTSP 或本地 MP4 拉流,搭一条含 nvstreammux 与 nvinfer 的最小检测流水线并正确显示 OSD
  • 把 Ultralytics 导出的动态 ONNX 写入 nvinfer 配置,按 v8/v11 或 v10/v26+ 选对 cluster-mode 与 infer-dims
  • 用户明确要求跨帧 ID 或越线计数时,再按需插入 nvtracker 或 nvdsanalytics,避免默认堆满插件
  • 检测事件要进 Kafka 时,用 tee 分流并在 nvmsgbroker 前确认其为终端 sink,同时处理所有 sink 的 async=0

适合人员

  • 负责路口/园区多路摄像头接入,需要在 DeepStream 里统一用 nvurisrcbin 与 live-source 参数的同事
  • 维护 Primary_Detector 或自训 ONNX,经常改 nvinfer property 段并排查 TensorRT 维度错误的算法工程师
  • 用 Python Service Maker 写 probe 与元数据逻辑,却在 venv 里反复遇到 pyservicemaker 导入失败的后端开发
  • 要把 nvds 元数据经 nvmsgconv 推到消息队列,需要对照 Kafka 参考避免流水线卡在 PAUSED 的集成工程师