DeepStream流水线生成器Skill deepstream-generate-pipeline

本技能是一个用于构建NVIDIA DeepStream GStreamer流水线的交互式助手,可自动生成并验证gst-launch-1.0命令。支持本地视频/图片、RTSP、USB摄像头、多路流输入,主/次推理(nvinfer/Triton)、跟踪器(NvDCF/IOU/DeepSORT等),以及显示/保存/RTSP输出,适用于视频智能服务(VSS)、边缘视频视觉等场景。关键词:DeepStream、GStreamer、流水线生成、视频推理、目标检测、多流处理、RTSP、nvinfer、NvDCF、gst-launch、Jetson、dGPU、视频分析。

视频智能服务(VSS) 0 次安装 0 次浏览 更新于 9/6/2026
名称 deepstream-generate-pipeline
描述 交互式构建DeepStream GStreamer流水线。当用户询问关于视频/图像推理、检测、跟踪或流媒体的流水线时使用——包括自然短语,如 pipeline to infer on image、run inference on video、detect objects in stream、save inference output、deepstream pipeline、gst-launch pipeline、process video with detection、build a pipeline,或任何涉及GStreamer/DeepStream元素(nvinfer、nvstreammux、nvtracker等)的请求。 owner: NVIDIA CORPORATION service: deepstream
版本 1.0.0 reviewed: 2026-04-27
开源协议 CC-BY-4.0 AND Apache-2.0

DeepStream流水线构建器

为NVIDIA DeepStream SDK生成可直接运行的gst-launch-1.0流水线。通过交互式问卷收集需求,并使用带有结构元数据加权的BM25检索后端完成流水线装配,支持对270多个已验证流水线的相似度搜索,零外部依赖。

前提条件

  • Python:3.8+(仅标准库,无需pip包)
  • DeepStream SDK:安装在 /opt/nvidia/deepstream/deepstream/(用于gst-inspect-1.0验证和元素检查)
  • GStreamer:gst-launch-1.0和gst-inspect-1.0位于PATH(随DeepStream安装)
  • 平台:x86 dGPU(T4、A100、L40、RTX等)或aarch64架构的Jetson(Orin、Xavier、Nano)/ SBSA(Grace、GH200)

使用示例

  • 完全指定:在jetson上对4个rtsp流进行检测和跟踪并显示(跳过大多数问题)
  • 部分指定:给我一个用于图像推理的流水线(询问剩余问题)
  • 最少指定:构建一个流水线(询问全部7个问题)

支持的配置

参数选项包括:

  • 输入:本地视频(mp4/h264/h265)、本地图像(jpg/png)、RTSP流、USB摄像头、测试图案
  • 推理:无、主推理(nvinfer)、主+次推理、带预处理器、Triton(nvinferserver)
  • 跟踪器:无、NvDCF、IOU、NvSORT、DeepSORT
  • 输出:显示(dGPU/Jetson)、保存(JPG/PNG/MP4/H264)、RTSP输出、fakesink
  • 平台:x86 dGPU或aarch64 Jetson / SBSA
  • 附加操作:调整大小、旋转/翻转、裁剪、颜色格式转换

脚本

  • scripts/generate_pipeline.py:BM25检索引擎,对data/data.csv中的流水线评分排序,支持json/compact/summary格式
  • scripts/validate_pipeline.py:4阶段验证器,支持json/summary格式
  • scripts/lint_data.py:流水线CSV数据质量检查器,–fix自动修复

工作流

步骤1 收集需求

根据references/requirement-extraction.md中的推断表、问题库、自动OSD和附加操作规则,向用户询问未知项,不静默默认tracker/sink/platform等。

步骤2 构建自然语言查询

根据用户选择构造描述性查询字符串,如:请提供一条GStreamer流水线,在单个mp4视频上执行主推理并显示输出。

步骤3 运行生成脚本

执行python3 <skill-path>/scripts/generate_pipeline.py,使用构造的查询和参数,始终传–format compact。脚本会返回置信度(high/medium/low)和最佳匹配流水线。

步骤4 验证流水线

运行python3 <skill-path>/scripts/validate_pipeline.py “<assembled_pipeline>” --format summary。验证器检查:语法、元素存在性、DeepStream属性、实时链接。最多修复2次,失败则按原样展示但给出警告。

步骤5 展示流水线

输出必须为:单行状态徽章、单行gst-launch-1.0 bash命令、按阶段分组的表格、建议列表。所有路径使用字面绝对路径,无shell变量、无反斜杠续行、不调用Write工具。若默认路径缺失,在徽章上方显示⚠并提醒用户更换自己的路径。

步骤6 提供优化

询问用户是否调整流数量、跟踪器、输出方式或平台。若修改,只需更新变化的参数并重新生成。

步骤6.5 保存脚本

仅当用户明确要求时,默认保存到/tmp/pipeline.sh,内容为单行gst-launch命令,并告知用户用bash <path>运行。

流水线组装规则

若脚本不可用,按照references/assembly-rules.md中的规则使用源元素、多流模式、推理链、跟踪器配置、输出元素和附加操作。

错误处理

  • generate_pipeline.py返回confidence low:使用组装规则而非检索示例
  • validate_pipeline.py报告未知元素:检查DeepStream/GStreamer安装及PATH
  • 验证失败超过2次:展示当前流水线并保留警告
  • 脚本缺失:检查技能目录是否正确符号链接到.claude/skills或.cursor/skills

测试

运行python3 -m unittest discover -s <skill-path>/tests -v,包括BM25检索单元测试、验证器单元测试、20+黄金回归测试、CSV数据质量检查。

安全、限制与注意

安全状态、已知限制和操作说明见references/security-and-limitations.md。