rtvi-cv-scaffold-vss-service

Scaffold a DeepStream YOLO26 microservice that publishes detection metadata to VSS via Kafka mdx-raw.

3.2k|370|Updated Feb 25, 2026
One-click install
npx skills add https://github.com/NVIDIA/skills --skill rtvi-cv-scaffold-vss-service
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: rtvi-cv-scaffold-vss-service
Source: https://github.com/NVIDIA/skills/tree/main/skills/rtvi-cv-scaffold-vss-service
Command: npx skills add https://github.com/NVIDIA/skills --skill rtvi-cv-scaffold-vss-service

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve?

Building a custom perception microservice that integrates with NVIDIA VSS (Video Search and Summarization) requires getting many integration details exactly right: the Kafka mdx-raw topic, protobuf payload type 2, nvmsgconv/nvmsgbroker wiring, host networking, and VSS Search/Alerts profile flags. This Skill generates a runnable, contract-compliant microservice repo instead of leaving engineers to assemble it by hand.

Core Features & Use Cases

  • Scaffold generation: Produces a complete repo with Dockerfile, DeepStream pipeline configs (YOLO26 pgie, NvDCF tracker, msgconv/msgbroker), Compose file with VSS profile gates, Python adapter, unit tests, and a Kafka smoke-test tool.
  • Fixed VSS integration contract: Encodes the non-negotiable elements (mdx-raw topic, msg-conv-payload-type=2, libnvds_kafka_proto.so, host networking) so downstream Search, Alerts, and Behavior Analytics consume the output without changes.
  • Segmentation extension guidance: Documents the msgconv wrapper pattern for adding frame-mask payloads while preserving the base object contract.
  • Use Case: A customer wants to replace VSS's default RT-DETR perception with their own YOLO26 detector on their hardware. The Skill scaffolds the service, runs host-only unit tests, and explains exactly which customer assets (ONNX, labels, parser .so) are required before live deployment.

Quick Start

Ask your agent to scaffold a custom RTVI CV microservice that runs YOLO26 in DeepStream and publishes object metadata to Kafka so VSS Search and Alerts profiles can consume it.

Frequently Asked Questions about rtvi-cv-scaffold-vss-service

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a custom perception microservice for NVIDIA VSS?

Run the scaffold script with a service name, output directory, class count, and target VSS profiles. It generates a DeepStream pipeline with YOLO26 inference, NvDCF tracking, and Kafka publication to mdx-raw, plus Compose files gated by the bp_developer_search_2d and bp_developer_alerts_2d_cv profiles.

How do I integrate a custom DeepStream detector with VSS Search and Alerts?

Publish protobuf payload type 2 to the mdx-raw Kafka topic using nvmsgconv and nvmsgbroker with libnvds_kafka_proto.so, over host networking. The generated service starts as a separate Compose application after the VSS kafka-topic-init-container completes.

Can the live VSS integration run without a trained YOLO26 ONNX model?

No. Scaffolding and host-only unit tests work with placeholders, but the live DeepStream app requires the customer-supplied ONNX export, a labels file matching num-detected-classes, and a compiled parser library exposing NvDsInferParseYolo26.

Why must the service publish to the mdx-raw Kafka topic?

VSS downstream consumers including vss-search-analytics, vss-behavior-analytics, and vss-video-analytics-api are pinned to mdx-raw. Publishing to any other topic silently produces an empty search index and no behavior analytics output.

When should I use rtvi-cv-customize-model instead of this scaffold?

Use rtvi-cv-customize-model when you only want to swap the detector inside the stock vss-rt-cv perception container. Use this scaffold when you need a new standalone microservice repo with its own pipeline, tests, and deployment lifecycle.

Does the Kafka smoke test validate the protobuf payload schema?

No. The kafka_smoketest.py tool only confirms a non-empty message arrived on mdx-raw within the timeout. To validate the nv.Frame schema, decode the payload with the nv.Frame proto and assert sensorId, objects, bbox, and tracking IDs explicitly.