A library of on-demand DeepStream Pipeline services. Written in C++ 17 with an extern "C"
API, The DeepStream Services Library (DSL) can be called from both C/C++ and Python applications.
#include <DslApi.h>
// New V4L2 Source
uint retval = dsl_source_v4l2_new(L"my-web-cam-1", L"/dev/video0");
from dsl import *
# New V4L2 Source
retval = dsl_source_v4l2_new('my-web-cam-1', '/dev/video0')
DSL is built on the NVIDIA® DeepStream SDK, "A complete streaming analytics toolkit for AI-based video and image understanding, as well as multi-sensor processing.",
The DeepStream SDK and DSL use the open source GStreamer, "An extremely powerful and versatile framework for creating streaming media applications".
The latest releases (v0.28.alpha
and v0.29.alpha
) were developed to support DeepSteam 6.3 and 6.4. However, there are several critical NVIDIA bugs that affect DSL's behavior. We are currently waiting on an ETA for a new DeepStream release (hopefully for NVIDIA GTC 2024 | March 18–21). Issues include:
- Pipelines with new
nvstreammux
andnvstreamdemux
fail to play correctly in DS 6.3 - Unable to record with deepstream-testsr example on Jetson Orin Nano with DeepStream 6.4
- Pipelines with jpegenc and multifilesink produce invalid jpeg files in DS 6.4
- DeepStream can’t decode certain H265 streams properly
- There are other New nvstreammux issues that still need to be reported.
IMPORANT! There are breaking changes in the most recent release. Please read the Release Notes carefully.
DSL is released under the MIT License. Contributions are welcome and greatly appreciated. Please review our code of conduct.
Please report issues!
Master
is always the latest release and is only updated once per release.Develop
is the next release currently in development. The branch will be named with the next release label.Feature
all work is done on feature branches, named for the feature under development.
All pull requests should be made against the current Develop
branch.
Come join us on Discord, an informal place to chat, ask questions, discuss ideas, etc.
- Release Notes
- Overview
- Installing Dependencies
- Building and Importing DSL
- API Reference
- Pipeline
- Player
- Source
- Tap
- Video Dewarper
- Preprocessor
- Inference Engines and Servers
- Multi-Object Tracker
- Segmentation Visualizer
- Tiler
- Demuxer and Splitter
- Remuxer
- On-Screen Display
- Sink
- Pad Probe Handler
- ODE Trigger
- ODE Accumulator
- ODE Acton
- ODE Area
- ODE Heat-Mapper
- Display Type
- Branch
- Component
- Mailer
- WebSocket Server
- Message Broker
- Info API
- Examples
- Using VS Code
- Logging and Debugging