DeepStream9.0 service-maker

service-maker在前几个版本就推出了,DeepStream9.0做了增强:

  • Added Pyservice maker support for Smart-Recording(就是实时录制码流)

如果你用过 NVIDIA DeepStream,应该很熟悉它的典型开发方式:围绕 GStreamer 元素搭建 pipeline,配置 nvstreammuxnvinfernvtrackernvmsgconvnvmsgbroker 等插件,再处理 metadata、pad、probe 和生命周期问题。它性能强,但上手成本并不低。

DeepStream Service Maker 正是为了解决这个问题而出现的。根据 NVIDIA 官方介绍,Service Maker 是构建在 DeepStream SDK 之上的高层抽象层,目标是把实时多媒体处理和 AI 推理应用的开发复杂度降下来,让开发者把更多精力放在业务逻辑上,而不是底层 GStreamer/GLib 细节上。官方文档甚至将开发时间的变化描述为"从数天缩短到数小时":What is Deepstream Service Maker

本地 service-maker 目录也印证了这一点。它提供了 C++ 示例、Python pipeline_api 示例、Python flow_api 示例,以及一组可复用的 runtime modules,比如 FPS 测量、延迟测量、消息 metadata 注入、Smart Recording 动作、视频 feeder/receiver 等。

1. C++:把 GStreamer 封装成对象化 API

Service Maker 的 C++ API 不是让你直接操作裸 GStreamer pipeline,而是通过 PipelineBufferProbe、metadata observer 等对象封装常见操作。

例如本地 sources/apps/cpp/deepstream_test1_app 中,应用可以用链式方式添加元素、连接元素、挂载 probe:

Pipeline pipeline("deepstream-test1");

pipeline.add("filesrc", "src", "location", file)

.add("h264parse", "parser")

.add("nvv4l2decoder", "decoder")

.add("nvstreammux", "mux", "batch-size", 1)

.add("nvinfer", "infer", "config-file-path", CONFIG_FILE_PATH)

.link("src", "parser", "decoder")

.attach("infer", new BufferProbe("counter", new ObjectCounter))

.start()

.wait();

这种写法保留了 DeepStream 原有插件体系的能力,但减少了很多样板代码。

2. Python Pipeline API:保留控制力,同时更易写

Python pipeline_api 更像是 C++ Pipeline API 的 Python 绑定。它适合熟悉 DeepStream pipeline 结构、但希望用 Python 快速开发的人。

sources/apps/python/pipeline_api/deepstream_test1_app 中,示例既支持直接用代码拼 pipeline,也支持从 YAML 配置加载 pipeline。你仍然可以明确添加 filesrch264parsenvv4l2decodernvstreammuxnvinfernvosdbin、sink 等元素,并手动控制 link、probe 和属性。

这类 API 的优势是控制粒度高,适合需要精细调参、接入自定义模型、调试 metadata 或复刻传统 DeepStream sample app 的场景。

3. Python Flow API:面向任务的"声明式"写法

Service Maker 最值得关注的是 Python Flow API。它把 pipeline 进一步抽象成任务链,让代码更接近"我要做什么",而不是"每个 GStreamer 元素怎么接"。

比如本地 flow_api/deepstream_test1_app 中,一个检测、计数、渲染流程可以写成:

pipeline = Pipeline("deepstream-test1")

flow = Flow(pipeline).batch_capture(stream_file_path).infer(CONFIG_FILE_PATH)

flow.attach(what=Probe("counter", ObjectCounterMarker())).render()()

到了 deepstream_test2_app,同样可以自然扩展为检测、跟踪、二级分类和渲染:

flow = Flow(pipeline).batch_capture(stream_file_path).infer(PGIE_CONFIG_FILE_PATH)

flow = flow.track(ll_config_file=TRACKER_LL_CONFIG_FILE, ll_lib_file=TRACKER_LL_LIB_FILE)

flow = flow.infer(config=SGIE1_CONFIG_FILE_PATH)

flow = flow.infer(config=SGIE2_CONFIG_FILE_PATH)

flow.attach(what=Probe("counter", ObjectCounterMarker())).render()()

这就是 Flow API 的核心价值:用更 Pythonic 的方式表达视频 AI 任务。

4. 不只是推理:还覆盖生产级能力

本地样例并不只停留在"视频输入 + 模型推理 + 显示结果"。deepstream_test5_app 展示了更接近生产环境的能力组合:

  • 多路视频输入与 batch 处理
  • 主检测模型和二级分类模型
  • 多目标跟踪
  • FPS、延迟、OSD 等监控 probe
  • Kafka 消息发布
  • Smart Recording
  • 静态源和动态源管理

此外,deepstream_appsrc_test_app 展示了 BufferProviderBufferRetriever:前者可以把用户数据注入 DeepStream pipeline,后者可以从 pipeline 中取出 buffer 数据。这对接入自定义前处理、外部算法、PyTorch tensor 或跨进程处理都很有用。

5. Runtime Module:让自定义能力模块化

Service Maker 还提供 runtime module 机制。本地 sources/modules 目录下可以看到多个共享库模块,例如 measure_fps_probemeasure_latency_probeadd_message_meta_probekitti_dump_probesample_video_feeder 等。

这些模块通过 CMake 链接 nvds_service_makernvds_service_maker_utils,并使用 Service Maker 的自定义工厂宏注册能力。这样应用可以像使用标准组件一样加载自定义 probe、feeder、receiver 或 action。

这对于团队开发尤其重要:底层 C++ 高性能逻辑可以封装成模块,上层 Python 应用只负责组合业务流程。

结语

DeepStream Service Maker 并不是替代 DeepStream,而是给 DeepStream 加了一层更适合工程开发的抽象。

如果你需要极致控制,可以使用 C++ API 或 Python Pipeline API;如果你更关注快速实现业务,可以使用 Python Flow API;如果你要把自定义处理逻辑沉淀成可复用能力,可以使用 runtime module。对于视频分析、智能交通、工业视觉、边缘 AI 和多路流媒体推理应用来说,Service Maker 的价值在于:保留 DeepStream 的性能和插件生态,同时显著降低开发复杂度。

相关推荐
回眸&啤酒鸭2 天前
【回眸】Minicart 电商购物车核心功能落地指南
人工智能
一隅论数智2 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
AI的探索之旅2 天前
97 个 OpenCV 实例(三十):双目立体,从标定到点云
人工智能·opencv·计算机视觉
AlbertZein2 天前
Step-5-Preview 上手实测:3D 游戏、金融分析、网页设计一次跑完
人工智能·aigc
LaughingZhu2 天前
Product Hunt 每日热榜 | 2026-09-19
人工智能·深度学习·神经网络·搜索引擎·百度
美狐美颜SDK开放平台2 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
wukangjupingbb2 天前
智能网联汽车安全能力框架
人工智能
龙亘川2 天前
明月照湾区,智启新赛道:从顶流文旅IP盛会看智慧文旅升级路径
人工智能·智慧城市·开源软件·数据可视化
飞猫的边缘AI2 天前
边缘AI应用:家用AI摄像头怎么做数据训练?
人工智能·边缘计算·ai算法·边缘ai