Deep Learning Streamer (DL Streamer)

July 3, 2026 · View on GitHub

Deep Learning Streamer (DL Streamer)

Hardware-accelerated video analytics pipelines — CPU, GPU and NPU, from a single line of code to production-grade edge AI

License: MIT Ubuntu Windows OpenVINO GStreamer Docker Part of Open Edge Platform

DL Streamer sample outputs

Get StartedRun Your PipelineSamplesElementsDocumentationContributing


What is DL Streamer?

DL Streamer is an open-source media analytics framework built on GStreamer. It lets you build video and audio intelligence pipelines — from a simple object detection command line to a multi-stream, multi-sensor production deployment, all with minimal code.

  • Powered by OpenVINO™ for optimized inference on Intel CPU, GPU, and NPU.
  • Pipelines are described as simple strings (or Python/C++ code) and executed with full hardware acceleration.
  • Ships with 30+ ready-to-run samples covering detection, classification, tracking, VLMs, LiDAR and more.
  • Part of the Intel Open Edge Platform.

Why DL Streamer?

BenefitDetails
One-line pipelinesBuild a working detection pipeline in a single gst-launch-1.0 command
Hardware accelerationTargets CPU, GPU, and NPU on Intel platforms from a single codebase
VLM & GenAI readyRun Vision-Language Models (MiniCPM-V, CLIP, Whisper) in a GStreamer pipeline
GstAnalytics complianceSupports the GStreamer industry metadata standard for interoperability with other GStreamer-based tools
Messaging integrationPublish inference results directly to MQTT or Kafka with built-in elements — no extra code required
Python-first extensibilityAdd custom logic as Python callbacks or full Python GStreamer elements — no C++ required
Multi-stream, multi-sensorMux/demux dozens of RTSP streams, LiDAR frames, and radar point clouds in one process
Geti™, Ultralytics & HuggingFace supportDeploy models from Geti™ Studio, Ultralytics, Hugging Face, or any ONNX/OpenVINO IR model directly

Quick Start - Installation

Step 1 — Install GPU/NPU drivers (required for Docker and native install)

cd ~
wget https://raw.githubusercontent.com/open-edge-platform/dlstreamer/main/scripts/DLS_install_prerequisites.sh
chmod +x DLS_install_prerequisites.sh
./DLS_install_prerequisites.sh

This script detects your Intel GPU/NPU, installs the correct drivers for Ubuntu 22.04 or 24.04, and adds your user to the required groups. Use --reinstall-npu-driver=yes to force-reinstall the NPU driver. Run ./DLS_install_prerequisites.sh --help for all options.

Step 2 — Install DL Streamer

Option A — Docker (recommended, zero setup):

# Run once on the host to allow X11 forwarding from containers
xhost +local:docker

docker run -it --rm \
  --device /dev/dri \
  --group-add $(stat -c "%g" /dev/dri/render*) \
  -e DISPLAY=$DISPLAY \
  -e XDG_RUNTIME_DIR=/tmp \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  intel/dlstreamer:latest

To use the NPU, also add --device /dev/accel --group-add $(stat -c "%g" /dev/accel/accel*) -e ZE_ENABLE_ALT_DRIVERS=libze_intel_npu.so to the docker run command.

Option B — Native install (Ubuntu 24.04):

sudo -E wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/intel-gpg-archive-keyring.gpg > /dev/null
sudo -E wget -O- https://apt.repos.intel.com/edgeai/dlstreamer/GPG-PUB-KEY-INTEL-DLS.gpg | sudo tee /usr/share/keyrings/dls-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/dls-archive-keyring.gpg] https://apt.repos.intel.com/edgeai/dlstreamer/ubuntu24 ubuntu24 main" | sudo tee /etc/apt/sources.list.d/intel-dlstreamer.list
sudo bash -c 'echo "deb [signed-by=/usr/share/keyrings/intel-gpg-archive-keyring.gpg] https://apt.repos.intel.com/openvino ubuntu24 main" | sudo tee /etc/apt/sources.list.d/intel-openvino.list'
sudo apt update && sudo apt-get install -y intel-dlstreamer

Full installation guide: Install Guide for Ubuntu | Windows


Quick Start - Run Your Pipeline

Step 1 — Set up models and environment (inside the container or on a native install):

cd ~
python3 -m venv .dls-venv && source .dls-venv/bin/activate
pip install openvino==2026.2.0 nncf==3.0.0 ultralytics==8.4.57
python3 /opt/intel/dlstreamer/scripts/download_models/download_ultralytics_models.py \
  --model yolo11n.pt \
  --outdir ~/models/yolo11n \
  --int8
source /opt/intel/dlstreamer/scripts/setup_dls_env.sh

Step 2 — Run the pipeline. Change device=GPU to device=CPU or device=NPU — no other code changes needed.

gst-launch-1.0 \
  urisourcebin buffer-size=4096 uri=https://videos.pexels.com/video-files/1192116/1192116-sd_640_360_30fps.mp4 ! \
  decodebin3 ! \
  gvadetect model=~/models/yolo11n/yolo11n_int8_openvino_model/yolo11n.xml device=GPU ! \
  queue ! \
  gvawatermark ! \
  gvafpscounter ! \
  videoconvert ! autovideosink sync=false

Output to JSON (works everywhere, including headless Docker):

gst-launch-1.0 \
  urisourcebin buffer-size=4096 uri=https://videos.pexels.com/video-files/1192116/1192116-sd_640_360_30fps.mp4 ! \
  decodebin3 ! \
  gvadetect model=~/models/yolo11n/yolo11n_int8_openvino_model/yolo11n.xml device=GPU ! \
  queue ! \
  gvafpscounter ! \
  gvametaconvert format=json ! \
  gvametapublish file-format=json-lines file-path=output.json ! fakesink async=false

Python API

Create a file detect.py:

import gi
gi.require_version("Gst", "1.0")
from gi.repository import Gst
import os

Gst.init([])

video_url = "https://videos.pexels.com/video-files/1192116/1192116-sd_640_360_30fps.mp4"
model = os.path.expanduser("~/models/yolo11n/yolo11n_int8_openvino_model/yolo11n.xml")
pipeline = Gst.parse_launch(f"""
    urisourcebin buffer-size=4096 uri={video_url} !
    decodebin3 !
    gvadetect model={model} device=GPU !
    queue !
    gvafpscounter !
    gvametaconvert format=json !
    gvametapublish file-format=json-lines file-path=output_from_python.json ! fakesink async=false
""")

pipeline.set_state(Gst.State.PLAYING)
bus = pipeline.get_bus()
bus.timed_pop_filtered(Gst.CLOCK_TIME_NONE, Gst.MessageType.EOS | Gst.MessageType.ERROR)
pipeline.set_state(Gst.State.NULL)

Then run it and wait for results:

python3 detect.py
# Detection results are written to output_from_python.json as the pipeline processes frames
# Each line is a JSON object with detected objects, labels, and bounding boxes
cat output_from_python.json

If any Python dependencies are missing, refer to the Python dependencies install guide.


DL Streamer Elements

CategoryKey Elements
Inferencegvadetect · gvaclassify · gvainference · gvagenai · gvaaudiotranscribe
Analyticsgvatrack · gvaanalytics · gvastreammux / gvastreamdemux · gvamotiondetect
Outputgvawatermark · gvametaconvert · gvametapublish · gvafpscounter
3D / Sensorsg3dlidarparse · g3dinference · g3dradarprocess

Full elements reference →


Samples

30+ samples across Python, C++, and gst-launch command lines:

CategorySamples
DetectionYOLO detection, Face detection + classification, Depth estimation
Segmentation & PoseInstance segmentation, Human pose estimation
TrackingVehicle & pedestrian tracking, Vehicle counter with tripwires
VLM / GenAIVLM video summarization, VLM alerts, VLM self-checkout
Multi-streamMulti-camera deployment, Stream mux/demux
3D SensorsLiDAR parsing, PointPillars 3D detection, Radar processing
IntegrationONVIF camera discovery, Geti™ model deployment, Metadata to MQTT/Kafka
Python extensibilityCustom Python GStreamer elements, Smart NVR with recording

Browse all samples →


Supported Platforms

HardwareCPUGPUNPU
Intel Core Ultra series 1–3 (Meteor / Lunar / Arrow / Panther Lake)
Intel Arc discrete GPU (Alchemist, Battlemage)
11th–13th Gen Intel Core

Operating systems: Ubuntu 22.04 / 24.04, Windows 11.

Full system requirements →


Documentation

ResourceLink
Get Started (tutorial + install)Get Started
Developer GuideDeveloper Guide
Elements ReferenceElements Reference
API ReferenceAPI Reference
Metadata GuideMetadata Guide
Supported ModelsSupported Models

Contributing

We welcome contributions! Please read CONTRIBUTING.md and follow the Code Style Guide.

For security issues, see SECURITY.md.


License

DL Streamer is licensed under the MIT License.


Intel, the Intel logo, OpenVINO, OpenVINO logo, Intel Geti, Intel Core, Intel Arc, and Intel Iris are trademarks of Intel Corporation or its subsidiaries. GStreamer is a trademark of the GStreamer project.