Samples#
DL Streamer ships with 40+ ready-to-run samples that turn common media-analytics tasks into working pipelines you can launch in minutes. They are the fastest way to see an element or a full use case in action, and a great starting point to copy from when building your own application.
Each sample lives in its own folder with a README.md and a run script. Browse them
online in the
samples directory on GitHub
or, after installation, under /opt/intel/dlstreamer/samples.
Looking for a specific element? See the Elements page — most elements are demonstrated by one or more of the samples listed below.
How to run#
Install DL Streamer first — see the Get Started guide.
Download the models the samples use with the conversion scripts under scripts/download_models. They export models from Hugging Face, Ultralytics, TIMM and other sources to OpenVINO IR:
download_hf_models.py— Hugging Face models (VLMs, CLIP, Whisper, …).download_ultralytics_models.py— Ultralytics YOLO models.download_timm_models.py— TIMM image-classification models.download_other_models.sh— other helper models (e.g.centerface,hsemotion,deeplabv3,mars-small128).
See the download_models README for prerequisites, per-script requirements files and usage examples. Each sample’s own
README.mdlists the exact model(s) it needs (see the Models column below).Samples with C/C++ code provide a
build_and_run.sh; other samples provide a.shscript that builds and runs agst-launch-1.0or Python command line.
Platform support: Samples target Linux (Ubuntu 22.04/24.04) by default. A subset also ships a Windows variant (PowerShell/
.batscripts, D3D11/ksvideosrcbackends). See the Windows samples folder.
The Language column below indicates how each sample is implemented:
CLI (gst-launch command line), Python, or C++. The Models column lists the
default model(s) each sample runs — many samples let you swap in your own.
Find a sample by what you want to do#
Object detection, classification & segmentation#
Preview |
Sample |
What it demonstrates |
Key elements |
Models |
Language |
|---|---|---|---|---|---|
|
Object detection and classification with publicly available YOLO models |
|
|
CLI |
|
— |
Detect faces and estimate age, gender, emotions and facial landmarks |
|
|
CLI |
|
|
Instance segmentation via the |
|
|
CLI |
|
— |
Full-frame human pose estimation |
|
|
CLI |
|
— |
YOLO11n detection followed by Depth Anything V2 depth estimation on detected regions |
|
|
CLI |
|
— |
YOLO detector combined with an optical character recognition model |
|
|
CLI |
|
|
Search a video for user-defined objects using an open-vocabulary model (YOLOE) |
|
|
Python |
|
|
Deploy Geti™-trained models for detection, anomaly detection and classification |
|
Geti™-trained (Padim / STFPM / UFlow) |
CLI |
|
— |
Run detection only over motion ROIs (GPU and CPU paths) |
|
|
CLI |
Object tracking & analytics#
Preview |
Sample |
What it demonstrates |
Key elements |
Models |
Language |
|---|---|---|---|---|---|
— |
Object tracking across frames |
|
|
CLI |
|
|
Count vehicles crossing a virtual line in both directions using tripwires |
|
|
Python |
|
|
Build an NVR with custom analytics and video storage to detect lane-hogging events |
|
|
Python |
|
|
Measures object dwell time and render visual alert when dwell time threshold is exceeded. |
|
|
Python |
Vision-Language Models (VLM) & GenAI#
Preview |
Sample |
What it demonstrates |
Key elements |
Models |
Language |
|---|---|---|---|---|---|
— |
Video summarization with MiniCPM-V |
|
|
CLI |
|
|
Edge alerting pipeline that generates structured JSON alerts per frame with annotated video |
|
Configurable VLM (e.g. |
Python |
|
|
Combine CV object detection with a VLM for item classification, running both locally on edge |
|
|
Python |
|
|
Use a VLM as an additional validation layer for ONVIF-enabled analytics cameras |
|
Configurable VLM |
Python |
|
— |
Generate image embeddings using the Vision Transformer component of a CLIP model |
|
|
CLI |
Audio analytics#
Sample |
What it demonstrates |
Key elements |
Models |
Language |
|---|---|---|---|---|
Audio event detection, converting results to JSON |
|
|
CLI |
|
Speech transcription using an OpenVINO GenAI Whisper model |
|
|
CLI |
3D: LiDAR & radar#
Sample |
What it demonstrates |
Key elements |
Models |
Language |
|---|---|---|---|---|
Complete LiDAR-only 3D detection pipeline |
|
|
CLI |
|
LiDAR parsing pipeline |
|
— (parsing only) |
CLI |
|
Real-time LiDAR capture from a physical device (RoboSense via rs_driver) |
|
|
CLI |
|
Fuse 2D camera detections with 3D LiDAR detections |
|
|
CLI |
|
mmWave radar signal processing with point-cloud detection, clustering and tracking |
|
— (signal processing) |
CLI |
Cameras & input sources#
Preview |
Sample |
What it demonstrates |
Key elements |
Models |
Language |
|---|---|---|---|---|---|
— |
Capture a video stream from a 3D Intel RealSense™ Depth Camera |
|
— (capture only) |
CLI |
|
|
Automatically discover ONVIF cameras on the network and launch pipelines for each |
|
Configurable detector |
Python |
|
— |
Handle video streams from multiple cameras in a single application |
|
|
CLI |
|
— |
Share a single inference pipeline across streams with per-source routing |
|
Configurable detector |
CLI |
Metadata: publishing, access & visualization#
Preview |
Sample |
What it demonstrates |
Key elements |
Models |
Language |
|---|---|---|---|---|---|
— |
Convert inference metadata to JSON and publish to file or Kafka/MQTT |
|
|
CLI |
|
— |
Define the regions on which inference should be performed |
|
|
CLI |
|
— |
Throttle framerate independently of sink sync, without frame duplication or dropping |
|
— |
CLI |
|
|
Attach custom drawing primitives (hexagons, lines, circles, text) and render them |
|
— (drawing only) |
Python |
|
— |
Set a C callback to access frame metadata and visualize inference results |
|
|
C++ |
|
— |
Set a Python callback to access frame metadata and visualize inference results |
|
|
Python |
|
|
Open/close a GStreamer |
|
|
Python |
|
|
Build a detection pipeline, analyze metadata to count objects, and visualize results |
|
|
Python |
Customization & extensibility#
Sample |
What it demonstrates |
Key elements |
Models |
Language |
|---|---|---|---|---|
Write a custom post-processing library that converts emotion-classification outputs to GstAnalytics metadata |
|
|
CLI, C++ |
|
Write a custom post-processing library that converts YOLOv11 tensor outputs to detection metadata |
|
|
CLI, C++ |
|
Customize a pipeline with a Python script for inference post-processing |
|
|
CLI, Python |
|
Use |
|
|
CLI, Python |
|
Build a custom Python GStreamer element using the GstAnalytics metadata API |
|
|
CLI, Python |
|
Build a custom Python GStreamer element to save frames with detected objects |
|
|
CLI, Python |
|
Download models from Hugging Face, export to OpenVINO IR, and run inference |
|
|
Python |
Performance & benchmarking#
Preview |
Sample |
What it demonstrates |
Key elements |
Models |
Language |
|---|---|---|---|---|---|
— |
Measure the performance of single- or multi-channel video analytics pipelines |
|
|
CLI, Python |
|
|
Compare DL Streamer vs. OpenCV + OpenVINO throughput with a YOLO26s INT8 model |
|
|
Python |
Interoperability#
Sample |
What it demonstrates |
Key elements |
Models |
Language |
|---|---|---|---|---|
Run pipelines on DL Streamer and/or NVIDIA DeepStream side by side |
|
|
Python |
Auto-generated reference applications#
These end-to-end reference apps combine multiple elements into complete solutions. Find them under samples/auto_generated_samples.
Sample |
What it demonstrates |
Key elements |
Models |
Language |
|---|---|---|---|---|
DL Streamer equivalent of NVIDIA’s deepstream-test4 with YOLO11n detection and metadata publishing |
|
|
CLI |
|
C++ conversion of NVIDIA’s DeepStream LPR app — license plate detection, tracking and text recognition |
|
YOLOv11, PaddleOCR |
C++ |
|
Detect license plates with YOLOv11 and recognize text with PaddleOCR |
|
|
CLI |
|
Multi-camera analytics with composite WebRTC output, on-demand recording and a 2x2 GPU-accelerated mosaic |
|
|
CLI |
|
Detect and track people using YOLO26m and Deep SORT with a Mars-Small-128 re-ID model |
|
|
CLI |
|
Run 4 YOLO pose models in parallel on the same video and composite results into a 2x2 mosaic |
|
|
CLI |
|
Detect and track workers and use Qwen2.5-VL to verify helmet and harness compliance |
|
|
CLI |
|
Detect people with YOLO11n and record video only when a person is present |
|
|
CLI |














