Best for
- User wants to deploy the pipeline server container (Docker Compose or Helm)
- User needs to start/stop/monitor pipeline instances via the REST API
- User wants to configure pipeline definitions in config.json
open-edge-platform/edge-ai-libraries/microservices/dlstreamer-pipeline-server/.github/skills/dlsps-user/SKILL.md
Deploy and operate DL Streamer Pipeline Server — a microservice that wraps DL Streamer pipelines behind a REST API for containerized, no-code operation. Use this skill whenever a user wants to: deploy the pipeline server via Docker Compose or Helm; start, stop, or monitor pipeline instances through the REST API; configure pipeline definitions in config.json; publish inference metadata over MQTT, OPC UA, InfluxDB, S3, or ROS2; set up GPU/NPU device access for the container; troubleshoot service-l
Decision brief
Set up and operate the DL Streamer Pipeline Server microservice for real-time video analytics — from starting the container through pipeline management via the REST API.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/open-edge-platform/edge-ai-libraries --skill "microservices/dlstreamer-pipeline-server/.github/skills/dlsps-user"Inspect the Agent Skill "dlsps-user" from https://github.com/open-edge-platform/edge-ai-libraries/blob/4ee15c40c9ea483d105b3a5f4d51d5bde2879a1b/microservices/dlstreamer-pipeline-server/.github/skills/dlsps-user/SKILL.md at commit 4ee15c40c9ea483d105b3a5f4d51d5bde2879a1b. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Gather requirements from user prompt (source, device, output type) 2. Start the service (cd .../docker && docker compose up) 3. POST to /pipelines/{name}/{version} with source + destination + parameters 4. Show RTSP URL, status-check command, and stop command
Not this skill: If the user wants to write new DL Streamer applications, create custom GStreamer pipelines from scratch, or develop Python/C++ video analytics code, use the dlstreamer-coding-agent skill instead.
Review the “Architecture at a Glance” section in the pinned source before continuing.
Base URL: http://localhost:8080
Response: Pipeline instance ID string, e.g. "a6d67224eacc11ec9f360242c0a86003"
Permission review
The documentation asks the agent to create, modify, or delete local files.
| `file` | Write JSON-lines to a file | `path`, `format` |The documentation asks the agent to read local files, directories, or repositories.
Read the matching example file — it contains the exact compact response format to follow:Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 156 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Set up and operate the DL Streamer Pipeline Server microservice for real-time video analytics — from starting the container through pipeline management via the REST API.
Preview: This skill is in preview — share feedback to help improve it.
config.jsonRENDER_GID, device plugins)Not this skill: If the user wants to write new DL Streamer applications, create custom GStreamer pipelines from scratch, or develop Python/C++ video analytics code, use the
dlstreamer-coding-agentskill instead.
REST API (port 8080, OpenAPI 3.0 / Connexion)
│
▼
Pipeline Manager (lifecycle: start / stop / status)
│
▼
GStreamer Engine + DL Streamer Plugins
│
├── Decode: CPU or GPU (decodebin3) │ GPU (vah264dec) │ CPU (avdec_h264)
├── Inference: gvadetect / gvaclassify (CPU, GPU, NPU)
└── Publish: MQTT │ OPC UA │ S3 │ InfluxDB │ ROS2 │ File
│
▼
Output: RTSP stream │ WebRTC stream │ metadata files
Base URL: http://localhost:8080
| Method | Endpoint | Purpose |
|---|---|---|
| GET | /pipelines | List available pipeline definitions |
| GET | /pipelines/{name}/{version} | Get a pipeline description |
| POST | /pipelines/{name}/{version} | Start a new pipeline instance |
| DELETE | /pipelines/{instance_id} | Stop a running pipeline |
| GET | /pipelines/status | Get status of all running pipelines |
| GET | /pipelines/{instance_id}/status | Get status of a specific instance |
| GET | /models | List available models |
{
"source": {
"uri": "file:///path/to/video.avi",
"type": "uri"
},
"destination": {
"metadata": {
"type": "file",
"path": "/tmp/results.jsonl",
"format": "json-lines"
},
"frame": {
"type": "rtsp",
"path": "my-stream-name"
}
},
"parameters": {
"detection-properties": {
"model": "/path/to/model.xml",
"device": "CPU"
}
}
}
Response: Pipeline instance ID string, e.g. "a6d67224eacc11ec9f360242c0a86003"
type value | Description | Extra fields |
|---|---|---|
file | Write JSON-lines to a file | path, format |
mqtt | Publish to MQTT broker | topic, publish_frame (bool) |
opcua | Publish via OPC UA | server configured by env vars |
s3 | Write to S3/MinIO | configured by env vars |
influxdb | Write to InfluxDB | configured by env vars |
type value | Description | Access URL |
|---|---|---|
rtsp | RTSP stream | rtsp://<host>:8554/<path> |
webrtc | WebRTC stream | http://<host>:8889 |
Pipeline definitions live in a config.json mounted into the container:
{
"config": {
"pipelines": [
{
"name": "my_pipeline",
"source": "gstreamer",
"queue_maxsize": 50,
"pipeline": "{auto_source} ! decodebin3 ! videoconvert ! gvadetect name=detection model-instance-id=inst0 ! queue ! gvafpscounter ! gvametaconvert add-empty-results=true name=metaconvert ! gvametapublish name=destination ! appsink name=appsink",
"parameters": {
"type": "object",
"properties": {
"detection-properties": {
"element": {
"name": "detection",
"format": "element-properties"
}
}
}
},
"auto_start": false
}
]
}
}
| Element | Purpose |
|---|---|
{auto_source} | Auto-detect source based on REST request |
udfloader | Load Python User Defined Functions |
appsink | Application sink (required, name=appsink) |
For DL Streamer inference, decode and metadata conversion and publishing elements see the dlstreamer-coding-agent skill.
| Mistake | Correct |
|---|---|
| Using RTSP/MQTT with GPU pipeline without buffer conversion | Add vapostproc ! video/x-raw before appsink |
| RTSP streaming with UDF loader (RGB/BGR format) | Add videoconvert ! video/x-raw, format=(string)NV12 before appsink |
Forgetting RENDER_GID for GPU/NPU | Export RENDER_GID=$(stat -c "%g" /dev/dri/render* | head -1) before compose |
| Using wrong port | REST API is on port 8080, RTSP on 8554 |
| Not volume-mounting custom config | Mount via -v ../configs/my_config/config.json:/home/pipeline-server/config.json |
| Assuming NPU requires different container | Same container — set device=NPU |
Read the matching example file — it contains the exact compact response format to follow:
| File | Covers |
|---|---|
| example-prompts/detect-on-video-file.md | Run object detection on a local video file with CPU, stream results via RTSP |
| example-prompts/gpu-inference-mqtt.md | GPU-accelerated inference with MQTT metadata publishing |
cd .../docker && docker compose up)/pipelines/{name}/{version} with source + destination + parametersGPU/NPU rules:
For GPU/NPU inference or decodeing devices see the dlstreamer-coding-agent skill.
vapostproc ! video/x-raw before appsinkRead reference files only when needed for advanced configuration details:
Every final answer must include: startup command, the curl POST with device and frame destination,
the RTSP URL (rtsp://host:8554/stream-name), a status-check command (GET /pipelines/status),
and a stop command (DELETE /pipelines/{instance_id}). Keep responses compact — use single-line
JSON in curl commands when the body is short.
Frequently asked questions
Set up and operate the DL Streamer Pipeline Server microservice for real-time video analytics — from starting the container through pipeline management via the REST API.
The source record exposes this install command: npx skills add https://github.com/open-edge-platform/edge-ai-libraries --skill "microservices/dlstreamer-pipeline-server/.github/skills/dlsps-user". Inspect the command and pinned source before running it.
Static rules flagged write-files, read-files in the source; the page lists the matching lines and excerpts.
Alternatives
NVIDIA/skills
Use this skill when the user wants to deploy, run, debug, tear down, or call the REST API of the RTVI-CV 2D detection / tracking microservice. Trigger when the user says things like 'deploy rtvi-cv', 'start warehouse 2d', 'add a stream', 'check rtvi-cv health', or 'stop the perception container'. Not for VLM, embedding, or analytics — use the matching vss-* skill.
UiPath/skills
UiPath Coded Apps — scaffold, build, run, and deploy Coded Web Apps and Coded Action Apps: React/TypeScript apps that call UiPath Cloud APIs via the `@uipath/uipath-typescript` SDK and ship to Automation Cloud (push/pull to Studio Web, pack, publish, deploy, OAuth-PKCE). Also generates live analytics & governance dashboards from a plain-language request, wired to tenant data via the Insights real-time API, with edit and deploy flows. For RPA→uipath-rpa, Python agents→uipath-agents, Maestro flows
NVIDIA/skills
Deploy and operate the RTVI-CV-3D microservice as MV3DT (`MODE=mv3dt`): per-camera DeepStream perception plus BEV Fusion over calibrated cameras. Supports the bundled sample dataset, custom video files, and RTSP streams, and chains to `vss-generate-video-calibration` when calibration is missing. Use `vss-deploy-profile` for the full warehouse blueprint and `vss-deploy-detection-tracking-2d` for single-camera 2D detection.
datarobot-oss/datarobot-agent-skills
Tools and guidance for making predictions with DataRobot deployments, including real-time predictions, batch scoring, prediction dataset generation, and prediction explanations (SHAP/XEMP). Use when making predictions, running batch scoring, generating prediction datasets, or explaining individual predictions from a deployment.