用途:面向 NVIDIA DeepStream SDK 9.0 开发,使用 Python pyservicemaker API 构建视频分析流水线,覆盖 GStreamer 视频处理与 TensorRT 推理。典型流水线为 Source → Stream Muxer → Inference → [Tracker] → OSD → Renderer,方括号内组件仅在用户明确要求时添加。
主要能力与用法:源优先用 nvurisrcbin,可统一处理 RTSP、HTTP 和本地文件;本地路径需转为 file:// 加绝对路径。批处理用 nvstreammux,推理用 nvinfer 或 nvinferserver。元数据通过 .frame_items 和 .object_items 迭代访问,二者是迭代器而非列表,不能用 len(),且只能消费一次。请求 pad 用 "sink_%u" 模板。异步处理需克隆 buffer。队列类型必须匹配:queue.Queue 配 threading.Thread,multiprocessing.Queue 配 multiprocessing.Process。使用 tee 拆分或动态源时,所有 sink 必须设 async=0,否则流水线会停留在 PAUSED。nvinfer 配置 YAML 段名必须为 property,不能用 model。nvmsgbroker 是 sink,其上游需用 tee 分流。measure_fps_probe 不能挂到 sink 元素。动态 ONNX 模型必须加 infer-dims=C;H;W,如 YOLO 640 用 infer-dims=3;640;640;Ultralytics 新模型(v10+)输出 post-NMS,需 cluster-mode 4,旧模型(v8/v11)为 pre-NMS,用 cluster-mode 2。
环境限制:pyservicemaker 系统安装但虚拟环境不可见,venv 内需 pip install /opt/nvidia/deepstream/deepstream/service-maker/python/pyservicemaker*.whl pyyaml。平台检测决定 sink:aarch64 用 nv3dsink,否则用 nveglglessink。技术栈要求 GStreamer 1.24.2、驱动 590+、CUDA 13.1、TensorRT 10.14.1.48,平台为 Ubuntu 24.04(x86_64 与 ARM64/Jetson)。生成代码前应阅读配套参考文档,不要凭记忆编写。