NVIDIA Tegra
NVIDIA DeepStream SDK

Development Guide
4.0 Release


 
Configuration Groups
 
Application Group
Tiled-display Group
Source Group
Streammux Group
Primary GIE and Secondary GIE Group
Tracker Group
OSD Group
Sink Group
Tests Group
The application configuration is divided into groups of configurations for each component and application-specific component. The configuration groups are:
Group
Configuration Group
Application configurations that are not related to a specific component.
Tiled display in the application.
Source properties. There can be multiple sources. The groups must be named as: [source0], [source1],… .
Specify properties and modify behavior of the streammux component.
Specify properties and modify behavior of the primary GIE.
Specify properties and modify behavior of the secondary GIE. The groups must be named as: [secondary-gie0], [secondary-gie1], … .
Specify properties and modify behavior of the object tracker.
Specify properties and modify the on-screen display (OSD) component that overlays text and rectangles on the frame.
Specify properties and modify behavior of sink components that represent outputs such as displays and files for rendering, encoding, and file saving. The pipeline can contain multiple sinks. Groups must be named as: [sink0], [sink1], … .
Diagnostics and debugging. This group is experimental.
Application Group
The application group properties are:
Key
Meaning
Type and Value
Example
Platforms
enable-perf-measurement
Indicates whether the application performance measurement is enabled.
Boolean
enable-perf-measurement=1
dGPU, Jetson
perf-measurement-interval-sec
The interval, in seconds, at which the performance metrics are sampled and printed.
Integer, >0
perf-measurement-interval-sec=10
dGPU, Jetson
gie-kitti-output-dir
Pathname of an existing directory where the application stores primary detector output in a modified KITTI metadata format.
String
gie-kitti-output-dir=/home/ubuntu/kitti_data/
dGPU, Jetson
kitti-track-output-dir
Pathname of an existing directory where the application stores tracker output in a modified KITTI metadata format.
String
kitti-track-output-dir=/home/ubuntu/kitti_data_tracker/
dGPU, Jetson
Tiled-display Group
The tiled-display group properties are:
Key
Meaning
Type and Value
Example
Platforms
enable
Indicates whether tiled display is enabled.
Boolean
enable=1
dGPU, Jetson
rows
Number of rows in the tiled 2D array.
Integer, >0
rows=5
dGPU, Jetson
columns
Number of columns in the tiled 2D array.
Integer, >0
columns=6
dGPU, Jetson
width
Width of the tiled 2D array, in pixels.
Integer, >0
width=1280
dGPU, Jetson
height
Height of the tiled 2D array, in pixels.
Integer, >0
height=720
dGPU, Jetson
gpu-id
GPU to be used by the element in case of multiple GPUs
Integer, ≥0
gpu-id=0
dGPU
nvbuf-memory-type
Type of memory the element is to allocate for output buffers.
0 (nvbuf-mem-default): a platform-specific default type
1 (nvbuf-mem-cuda-pinned): pinned/host CUDA memory
2 (nvbuf-mem-cuda-device): device CUDA memory
3 (nvbuf-mem-cuda-unified): unified CUDA memory
For dGPU: All values are valid.
For Jetson: Only 0 (zero) is valid.
Integer,
0, 1, 2, or 3
nbuf-memory-type=3
dGPU, Jetson
Source Group
The source group specifies the source properties. The DeepStream application supports multiple simultaneous sources. For each source, a separate group with the group names such as source%d must be added to the configuration file. For example:
[source0]
key1=value1
key2=value2
...
 
[source1]
key1=value1
key2=value2
...
The source group properties are:
Key
Meaning
Type and Value
Example
Platforms
enable
Enables or disables the source.
Boolean
enable=1
dGPU, Jetson
type
Type of source; other properties of the source depend on this type.
1: Camera (V4L2)
2: URI
3: MultiURI
4: RSTP
5: Camera (CSI) (Jetson only)
Integer,
1, 2, 3, 4, or 5
type=1
dGPU, Jetson
uri
URI to the encoded stream. The URI can be a file, an HTTP URI, or an RTSP live source. Valid when type=2 or 3. With MultiURI, the %d format specifier can also be used to specify multiple sources. The application iterates from 0 to num-sources 1 to generate the actual URIs.
String
uri=file:///home/ubuntu/source.mp4
uri=http://127.0.0.1/source.mp4
uri=rtsp://127.0.0.1/source1
uri=file:///home/ubuntu/source_%d.mp4
dGPU, Jetson
num-sources
Number of sources. Valid only when type=3.
Integer, ≥0
num-sources=2
dGPU, Jetson
intra-decode-enable
Enables or disables intra-only decode.
Boolean
intra-decode-enable=1
dGPU, Jetson
num-extra-surfaces
Number of surfaces in addition to minimum decode surfaces given by the decoder. Can be used to manage the number of decoder output buffers in the pipeline.
Integer,
≥0 and ≤24
num-extra-surfaces=5
dGPU, Jetson
gpu-id
GPU to be used by the element in case of multiple GPUs.
Integer, ≥0
gpu-id=1
dGPU
camera-id
Unique ID for the input source to be added to metadata. (Optional)
Integer, ≥0
camera-id=2
dGPU, Jetson
camera-width
Width of frames to be requested from the camera, in pixels. Valid when type=1 or 5.
Integer, >0
camera-width=1920
dGPU, Jetson
camera-height
Height of frames to be requested from the camera, in pixels. Valid when type=1 or 5.
Integer, >0
camera-height=1080
dGPU, Jetson
camera-fps-n
Numerator part of a fraction specifying the frame rate requested by the camera, in frames/sec. Valid when the type=1 or 5.
Integer, >0
camera-fps-n=30
dGPU, Jetson
camera-fps-d
Denominator part of a fraction specifying the frame rate requested from the camera, in frames/sec. Valid when type = 1 or 5.
Integer, >0
camera-fps-d=1
dGPU, Jetson
camera-v4l2-dev-node
Number of the V4L2 device node. For example, /dev/video<num> for the open source V4L2 camera capture path. Valid when the type setting (type of source) is 1.
Integer, >0
camera-v4l2-dev-node=1
dGPU, Jetson
latency
Jitterbuffer size in milliseconds; applicable only for RTSP streams.
Integer, ≥0
latency=200
dGPU, Jetson
camera-csi-sensor-id
Sensor ID of the camera module. Valid when the type (type of source) is 5.
Integer, ≥0
camera-csi-sensor-id=1
Jetson
drop-frame-interval
Interval to drop frames. For example, 5 means decoder outputs every fifth frame; 0 means no frames are dropped.
Integer,
≥0 and ≤30
drop-frame-interval=5
dGPU, Jetson
nvbuf-memory-type
Type of CUDA memory element is to allocate for output buffers.
0 (cuda-pinned-mem): host/pinned memory allocated with cudaMallocHost().
1 (cuda-device-mem): Device memory allocated with cudaMalloc().
2 (cuda-unified-mem): Unified memory allocated with cudaMallocManaged().
Integer,
0, 1, or 2
cuda-memory-type=1
dGPU
Streammux Group
The [streammux] group specifies and modifies properties of the Gst-nvstreammux plugin.
Key
Meaning
Type and Value
Example
Platforms
gpu-id
GPU element is to use in case of multiple GPUs.
Integer, ≥0
gpu-id=1
dGPU
live-source
Informs the muxer that sources are live.
Boolean
live-source=0
dGPU, Jetson
batch-size
Muxer batch size.
Integer, >0
batch-size=4
dGPU, Jetson
batched-push-timeout
Timeout in microseconds after to push the batch after the first buffer is available, even if the complete batch is not formed.
Integer, ≥−1
batched-push-timeout=40000
dGPU, Jetson
width
Muxer output width in pixels.
Integer, >0
width=1280
dGPU, Jetson
height
Muxer output height in pixels.
Integer, >0
height=720
dGPU, Jetson
enable-padding
Indicates whether to maintain source aspect ratio when scaling by adding black bands.
Boolean
enable-padding=0
dGPU, Jetson
nvbuf-memory-type
Type of CUDA memory the element is to allocate for output buffers.
0 (nvbuf-mem-default, a platform-specific default
1 (nvbuf-mem-cuda-pinned): pinned/host CUDA memory.
2 (nvbuf-mem-cuda-device): Device CUDA memory.
3 (nvbuf-mem-cuda-unified): Unified CUDA memory.
For dGPU: All values are valid.
For Jetson: Only 0 (zero) is valid.
Integer,
0, 1, 2, or 3
nvbuf-memory-type=3
dGPU
Primary GIE and Secondary GIE Group
The DeepStream application supports multiple secondary GIEs. For each secondary GIE, a separate group with the name secondary-gie%d must be added to the configuration file. For example:
[primary-gie]
key1=value1
key2=value2
...
 
[secondary-gie1]
key1=value1
key2=value2
...
The primary and secondary GIE configurations are as follows. For each configuration, the Valid for column indicates whether the configuration property is valid for the primary or secondary TensorRT model, or for both models.
Key
Meaning
Type and Value
Example
Platforms / GIEs *
enable
Indicates whether the primary GIE must be enabled.
Boolean
enable=1
dGPU, Jetson
Both GIEs
gie-unique-id
Unique component ID to be assigned to the nvinfer instance. Used to identify metadata generated by the instance.
Integer, >0
gie-unique-id=2
Both
gpu-id
GPU to be used by the element in case of multiple GPUs.
Integer, ≥0
gpu-id=1
dGPU, Jetson
Both GIEs
model-engine-file
Absolute pathname of the pre-generated serialized engine file for the mode.
String
model-engine-file=../../ models/Primary_Detector/resnet10. caffemodel_b4_int8.engine
Both GIEs
nvbuf-memory-type
Type of CUDA memory element is to allocate for output buffers.
0 (nvbuf-mem-default): a platform-specific default
1 (nvbuf-mem-cuda-pinned): pinned/host CUDA memory
2 (nvbuf-mem-cuda-device): Device CUDA memory
3 (nvbuf-mem-cuda-unified): Unified CUDA memory
For dGPU: All values are valid.
For Jetson: Only 0 (zero) is valid.
Integer,
0, 1, 2, or 3
nvbuf-memory-type=3
dGPU, Jetson
Primary GIE
config-file
Pathname of a configuration file which specifies properties for the Gst-nvinfer plugin. It may contain any of the properties described in this table except config-file itself. Properties must be defined in a group named [property].
For more details about parameters see “Gst-nvinfer File Configuration Specifications” in the DeepStream 4.0 Plugin Manual.
String
config-file=/home/ubuntu/config_infer_resnet.txt
For complete examples, see the sample file samples/configs/deepstream-app/config_infer_resnet.txt or the deepstream-test2 sample application.
dGPU, Jetson
Both GIEs
batch-size
The number of frames(P.GIE)/objects(S.GIE) to be inferred together in a batch.
Integer, >0Integer, >0
batch-size=2
dGPU, Jetson
Both GIEs
interval
Number of consecutive batches to skip for inference.
Integer, >0Integer, >0
interval=2
dGPU, Jetson
Primary GIE
bbox-border-color
The color of the borders for the objects of a specific class ID, specified in RGBA format. The key must be of format bbox-border-color<class-id>. This property can be identified multiple times for multiple class IDs. If this property is not identified for the class ID, the borders are not drawn for objects of that class-id.
R:G:B:A Float,
0≤R,G,B,A≤1
bbox-border-color2=
1;0;0;1
(Red for class-id 2)
dGPU, Jetson
Both GIEs
bbox-bg-color
The color of the boxes drawn over objects of a specific class ID, in RGBA format. The key must be of format bbox-bg-color<class-id>. This property can be used multiple times for multiple class IDs. If it is not used for a class ID, the boxes are not drawn for objects of that class ID.
R:G:B:A Float,
0≤R,G,B,A≤1
bbox-bg-color3=0;1;0;0.3
(Semi-transparent green for class-id 3)
dGPU, Jetson
Both GIEs
operate-on-gie-id
A unique ID of the GIE, on whose metadata (NvDsFrameMeta) this GIE is to operate.
Integer, >0
operate-on-gie-id=1
dGPU, Jetson Secondary GIE
operate-on-class-ids
Class IDs of the parent GIE on which this GIE must operate. The parent GIE is specified using operate-on-gie-id.
Semicolon separated integer array
operate-on-class-ids=1;2
(operate on objects with class IDs 1, 2 generated by parent GIE)
dGPU, Jetson
Secondary GIE
infer-raw-output-dir
Pathname of an existing directory in which to dump the raw inference buffer contents in a file.
String
infer-raw-output-dir=/home/ubuntu/infer_raw_out
dGPU, Jetson
Both GIEs
* The GIEs are the GPU Inference Engines.
Tracker Group
The tracker group properties are:
Key
Meaning
Type and Value
Example
Platforms
enable
Enables or disables the tracker.
Boolean
enable=1
dGPU, Jetson
tracker-width
Frame width at which the tracker will operate, in pixels.
Integer, ≥0
tracker-width=960
dGPU, Jetson
tracker-height
Frame height at which the tracker will operate, in pixels.
Integer, ≥0
tracker-height=540
dGPU, Jetson
gpu-id
GPU to be used by the element in case of multiple GPUs.
Integer, ≥0
gpu-id=1
dGPU
ll-config-file
Pathname for the low-level tracker configuration file.
String
ll-config-file=iou_config.txt
dGPU, Jetson
ll-lib-file
Pathname for the low-level tracker implementation library.
String
ll-lib-file=/usr/local/deepstream/libnvds_mot_iou.so
dGPU, Jetson
enable-batch-process
Enables batch processing across multiple streams.
Boolean
enable-batch-process=1
dGPU, Jetson
OSD Group
The OSD group specifies the properties and modifies the behavior of the OSD component, which overlays text and rectangles on the video frame.
Key
Meaning
Type and Value
Example
Platforms 
enable
Enables or disables the On-Screen Display (OSD).
Boolean
enable=1
dGPU, Jetson
gpu-id
GPU to be used by the element in case of multiple GPUs.
Integer, ≥0
gpu-id=1
dGPU
border-width
Border width of the bounding boxes drawn for objects, in pixels.
Integer, ≥0
border-width=10
0 disables the boxes.
dGPU, Jetson
text-size
Size of the text that describes the objects, in points.
Integer, ≥0
text-size=16
dGPU, Jetson
text-color
The color of the text that describes the objects, in RGBA format.
R;G;B;A Float,
0≤R,G,B,A≤1
text-color=0;0;0.7;1 #Dark Blue
dGPU, Jetson
text-bg-color
The background color of the text that describes the objects, in RGBA format.
R;G;B;A Float,
0≤R,G,B,A≤1
text-bg-color=0;0;0;0.5 #Semi-transparent black
dGPU, Jetson
clock-text-size
The size of the clock time text, in points.
Integer, >0
clock-text-size=16
dGPU, Jetson
clock-x-offset
The horizontal offset of the clock time text, in pixels.
Integer, >0
clock-x-offset=100
dGPU, Jetson
clock-y-offset
The vertical offset of the clock time text, in pixels.
Integer, >0
clock-y-offset=100
dGPU, Jetson
font
Name of the font for text that describes the objects.
Enter the shell command fc-list to display the names of available fonts.
String
font=Purisa
dGPU, Jetson
show-clock
Enables or disables overlay of the clock time on the frame.
Boolean
show-clock=1
dGPU, Jetson
clock-color
Color of the clock time text, in RGBA format.
R;G;B;A Float,
0≤R,G,B,A≤1
clock-color=1;0;0;1 #Red
dGPU, Jetson
nvbuf-memory-type
Type of CUDA memory the element is to allocate for output buffers.
0 (nvbuf-mem-default): a platform-specific default
1 (nvbuf-mem-cuda-pinned): pinned/host CUDA memory
2 (nvbuf-mem-cuda-device): Device CUDA memory
3 (nvbuf-mem-cuda-unified): Unified CUDA memory
For dGPU: All values are valid.
For Jetson: Only 0 (zero) is valid.
Integer,
0, 1, 2, or 3
nvbuf-memory-type=3
dGPU
process-mode
NvOSD processing mode.
0: CPU
1: GPU (dGPU only)
2: Hardware (Jetson only)
Integer,
0, 1, or 2
process-mode=1
dGPU, Jetson
Sink Group
The sink group specifies the properties and modifies the behavior of the sink components for rendering, encoding, and file saving.
Key
Meaning
Type and Value
Example
Platforms
enable
Enables or disables the sink.
Boolean
enable=1
dGPU, Jetson
type
Type of sink, to use.
1: Fakesink
2: EGL based windowed sink (nveglglessink)
3: Encode + File Save (encoder + muxer + filesink)
4: Encode + RTSP streaming
5: Overlay (Jetson only)
Integer,
1, 2, 3, 4, or 5
type=2
dGPU, Jetson
sync
Indicates how fast the stream is to be rendered.
0: As fast as possible
1: Synchronously
Integer,
0 or 1
sync=1
dGPU, Jetson
qos
Indicates whether the sink is to generate Quality-of-Service events, which can lead to the pipeline dropping frames when pipeline FPS cannot keep up with the stream frame rate.
Boolean
qos=0
dGPU, Jetson
source-id
The ID of the source whose buffers this sink must use. The source ID is contained in the source group name. For example, for group [source1] source-id=1.
Integer, ≥0
source-id=1
dGPU, Jetson
gpu-id
GPU to be used by the element in case of multiple GPUs.
Integer, ≥0
gpu-id=1
dGPU, Jetson
container
Container to use for the file save. Only valid for type=3.
1: MP4
2: MKV
Integer,
1 or 2
container=1
dGPU, Jetson
codec
The encoder to be used to save the file.
1: H.264 (hardware)
2: H.265 (hardware)
Integer,
1 or 2
codec=1
dGPU, Jetson
bitrate
Bitrate to use for encoding, in bits per second. Valid for type=3 and 4.
Integer, >0
bitrate=4000000
dGPU, Jetson
output-file
Pathname of the output encoded file. Only valid for type=3.
String
output-file=/home/ubuntu/output.mp4
dGPU, Jetson
nvbuf-memory-type
Type of CUDA memory the plugin is to allocate for output buffers.
0 (nvbuf-mem-default): a platform-specific default
1 (nvbuf-mem-cuda-pinned): pinned/host CUDA memory
2 (nvbuf-mem-cuda-device): Device CUDA memory
3 (nvbuf-mem-cuda-unified): Unified CUDA memory
For dGPU: All values are valid.
For Jetson: Only 0 (zero) Is valid.
Integer,
0, 1, 2, or 3
nvbuf-memory-type=3
dGPU, Jetson
rtsp-port
Port for the RTSP streaming server; a valid unused port number. Valid for type=4.
Integer
rtsp-port=8554
dGPU, Jetson
udp-port
Port used internally by the streaming implementation; a valid unused port number. Valid for type=4.
Integer
udp-port=5400
dGPU, Jetson
overlay-id
Index of the overlay to use for HEAD 0. Valid for overlay sinks (type=5).
Integer, >=1
overlay-id=1
Must be less than the number of overlays supported by HEAD 0.
dGPU
width
Width of the renderer in pixels.
Integer, >=1
width=1920
dGPU, Jetson
height
Height of the renderer in pixels.
Integer, >=1
height=1920
dGPU, Jetson
offset-x
Horizontal offset of the renderer window, in pixels.
Integer, >=1
offset-x=100
dGPU, Jetson
offset-y
Vertical offset of the renderer window, in pixels.
Integer, >=1
offset-y=100
dGPU, Jetson
display-id
ID of the display HEAD. Valid for overlay sinks (type=5).
Integer, ≥0
display-id=0
Jetson
iframeinterval
Encoding intra-frame occurrence frequency.
Integer,
0≤iv≤MAX_INT
iframeinterval=30
dGPU, Jetson
Tests Group
The tests group is for diagnostics and debugging.
Key
Meaning
Type and Value
Example
Platforms
file-loop
Indicates whether input files should be looped infinitely.
Boolean
file-loop=1
dGPU, Jetson
 
Note
See the DeepStream 4.0 Plugin Manual for plugin-specific configuration file specifications (for the Gst-nvinfer, Gst-NV tracker, Gst-nvdewarper, Gst-nvmsgconv, and Gst-nvmsgbroker plugins).