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".
WARNING! There is a cricical error in the DeepStream 7.0 Installation Instructions.
Under the section Install librdkafka, the following instructions
$ sudo mkdir -p /opt/nvidia/deepstream/deepstream/lib
$ sudo cp /usr/local/lib/librdkafka* /opt/nvidia/deepstream/deepstream/lib
Must be replaced with.
$ sudo mkdir -p /opt/nvidia/deepstream/deepstream-7.0/lib
$ sudo cp /usr/local/lib/librdkafka* /opt/nvidia/deepstream/deepstream-7.0/lib
See Error in DeepStream 7.0 installation instructions - symlink fails to create for more information.
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
- Branch
- Component
- Custom Component
- Pad Probe Handler
- ODE Trigger
- ODE Accumulator
- ODE Acton
- ODE Area
- ODE Heat-Mapper
- Display Type
- Mailer
- WebSocket Server
- Message Broker
- Info API
- Examples
- Basic Inference Pipelies
- Multiple Sources, Tilers, and Demuxers
- Advanced Inference Pipelies
- Smart Recording
- Object Detection Event (ODE) Services
- Encoding Frames to JPEG
- Dewarping and Segmentation
- Dynamic Pipelines
- Custom Components
- Working with OpenCV
- Diagnostics and Utilites
- Tkinter Reference App
- HTML WebRTC Client
- Using VS Code
- Logging and Debugging