The DeepStream Services Library (DSL) is built on the NVIDIA® DeepStream SDK and requires all SDK components and prerequisites to be installed and verified.
Please consult the NVIDIA DeepStream Quick Start Guide for complete Installation Instructions.
The following installation instructions are specific to NVIDIA® DeepStream Versions 6.4 and 7.0 on Ubuntu 22.04.
- Base Install - Jetson and dGPU
- Additional WebRTC Sink Dependencies
- Enabling Extended Image Services (Optional)
- Enabling Interpipe Services (Optional)
- Documentation and Debug Dependencies (Optional)
Enter the following command to install the minimal requirements to build DSL
sudo apt update && sudo apt-get install \
libgstrtspserver-1.0-dev \
gstreamer1.0-rtsp \
libapr1 \
libapr1-dev \
libaprutil1 \
libaprutil1-dev \
libgeos-dev \
libcurl4-openssl-dev
The same as above, but without using sudo
apt update && apt-get install \
libgstrtspserver-1.0-dev \
gstreamer1.0-rtsp \
libapr1 \
libapr1-dev \
libaprutil1 \
libaprutil1-dev \
libgeos-dev \
libcurl4-openssl-dev
Enter the following command to install the additional WebRTC Sink dependencies.
sudo apt-get install \
libjson-glib-dev \
libsoup-gnome2.4-dev \
libgstreamer-plugins-bad1.0-dev \
libnice-dev \
gstreamer1.0-nice
The same as above, but without using sudo
apt-get install \
libjson-glib-dev \
libsoup-gnome2.4-dev \
libgstreamer-plugins-bad1.0-dev \
libnice-dev \
gstreamer1.0-nice
After installation, enter the following command to update the json-glib-1.0 package.
pkg-config --cflags json-glib-1.0
To enable the WebRTC Sink Component, search for the following section in the DSL Makefile and set the BUILD flag to true.
# To enable the WebRTC Sink component (requires GStreamer >= 1.20)
# - set BUILD_WEBRTC:=true
BUILD_WEBRTC:=true
DSL provides a choice of using FFmpeg or OpenCV to implement the Extended Images Services, which include:
- Streaming Image Source
- Object and Frame Capture ODE Actions.
- Frame Capture Sink
Building with FFmpeg on Ubuntu 22.04 requires the following development libraries to be installed.
sudo apt-get install \
libavformat-dev \
libswscale-dev
To use FFmpeg within a DeepStream Docker Container, you must clone, build, and install the latest version of the FFmpeg development libraries. Copy and execute each of the following commands, one at a time, to setup the required dependencies.
$ mkdir ~/ffmpeg; cd ~/ffmpeg
$ git clone https://github.com/FFmpeg/FFmpeg.git
$ cd FFmpeg
$ ./configure --enable-shared --disable-lzma
$ make
$ sudo make install
Copy and execute the following command to install the OpenCV development library (as an alternative to using FFmpeg).
sudo apt-get install -y libopencv-dev
There are insufficient dependencies in the Docker container to install and use libopencv-dev as show above. Using OpenCV in a Docker container is not recommended!
To enable the Extended Image Services, search for the following section in the DSL Makefile and set the appropriate BUILD_WITH flag to true.
# To enable the extended Image Services, install either the FFmpeg or OpenCV
# development libraries (See /docs/installing-dependencies.md), and
# - set either BUILD_WITH_FFMPEG or BUILD_WITH_OPENCV:=true (NOT both)
BUILD_WITH_FFMPEG:=false
BUILD_WITH_OPENCV:=false
The Interpipe Sink and Source are optional/conditional DSL components. To enable, you will need to build and install the RidgeRun plugins. Then update the DSL Makefile to include/build the DSL Sink and Source components. Search for the following section and set BUILD_INTER_PIPE
to true
,
# To enable the InterPipe Sink and Source components
# - set BUILD_INTER_PIPE:=true
BUILD_INTER_PIPE:=true
Doxygen requires dot to convert calling graphs to .png files and Pipeline graphs can be generated using dot as well
sudo apt-get install graphviz imagemagick
To install Doxygen on Ubuntu
sudo apt-get install doxygen
- Installing Dependencies
- Building and Importing DSL
- Overview
- List of all Services
- Pipeline
- Player
- Source
- Tap
- Dewarper
- Preprocessor
- Inference Engine and Server
- Tracker
- Segmentation Visualizer
- Tiler
- Demuxer and Splitter Tees
- Remuxer
- On-Screen Display
- Sink
- Branch
- Component
- GST Element
- Pad Probe Handler
- ODE Trigger
- ODE Accumulator
- ODE Action
- ODE Area
- ODE Heat-Mapper
- Display Type
- Mailer
- WebSocket Server
- Message Broker
- Info API