# deepstream-sop

Gives the agent the layout of NVIDIA's DeepStream SOP microservice, so it can build, debug and time a service that verifies the order of assembly steps.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 694 installs · ★ 3735
- Author: Wind Yuan
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/NVIDIA/skills/tree/HEAD/skills/deepstream-sop/SKILL.md
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/skills/deepstream-sop

## What it does

The skill documents a four-stage `SOPVideoProcessor` pipeline inside a GPU-accelerated FastAPI service. Stage one scores frame boundaries with a GEBD detector and cuts the stream into chunks. Stage two hands those chunks to vLLM running Cosmos Reason 1 or 2, which labels the action in each one. Stage four compares the labels against the expected sequence and reports steps that are missing or out of order.

The agent also gets the internals: Triton CAPI with the DDM model, `nvds_custom_postprocess`, SSE streaming, Kafka output as JSON or Protobuf. Input can be a video file, an RTSP stream or a Basler camera through Pylon, with camera emulation as an option. Everything runs in Docker next to a Kafka container, and requests hit port 8300 at `/v1/chat/completions`. Chunking is a per-request choice: `ddm-net` uses GEBD, while `uniform` makes fixed-length chunks and skips that stage entirely.

Both models are swappable. Point `DDM_MODEL_PATH` at another Triton model directory, or set `VLLM_MODEL_PATH` to a different model. `FRAMES_PER_SIDE` and `SEQUENCE_BATCH` control the DDM temporal window. Generic DeepStream work, object detection or tracking, NIM imports and video summarization fall outside its scope, so the agent won't pick it up for those.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill deepstream-sop -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/deepstream-sop/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/deepstream-sop/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill deepstream-sop -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/deepstream-sop/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill deepstream-sop -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/deepstream-sop/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install NVIDIA/skills deepstream-sop
```

2. **Manually: put the files in place**
- File: `.github/skills/deepstream-sop/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill deepstream-sop -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/NVIDIA/skills --path skills/deepstream-sop
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/deepstream-sop/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill deepstream-sop -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/NVIDIA/skills/tree/HEAD/skills/deepstream-sop/SKILL.md

## When to use it
- confirm an operator followed the assembly steps in order
- find steps that are missing or out of sequence in a recording
- label actions from an industrial camera feed with a VLM
- split a stream into chunks with event boundary detection
- measure latency per chunk instead of per request

## Example prompts
- Run `line_04.mp4` through `/v1/chat/completions` and list any SOP steps that were skipped.
- Bring the service up with Docker compose on a Basler camera and check the operation order on the live feed.
- Why do chunk boundaries differ with `uniform`? Compare it against `ddm-net` and explain.

## Similar
- [skill-creator](https://affpapa.org/en/nevibecode/skills/skill-creator.md) — skill · 414180 installs
- [writing-for-agents](https://affpapa.org/en/nevibecode/skills/writing-for-agents.md) — skill · 466719 installs
- [media-use](https://affpapa.org/en/nevibecode/skills/media-use.md) — skill · 1100000 installs
- [mcp-builder](https://affpapa.org/en/nevibecode/skills/mcp-builder.md) — skill · 130949 installs
- [subagent-driven-development](https://affpapa.org/en/nevibecode/skills/subagent-driven-development.md) — skill · 237746 installs
- [orchestration](https://affpapa.org/en/nevibecode/skills/orchestration.md) — skill · 349800 installs

From the same set: [nvidia/skills](https://affpapa.org/en/nevibecode/by/nvidia/skills.md) — 195 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
