| 名称 | 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。