Does deepstream-app support h265 video stream?

How to configure deepstream-app to parse h265 video stream?

any command option or configure item can fix this, see below issue for details:

$ deepstream-app --version-all
deepstream-app version 6.3.0
DeepStreamSDK 6.3.0
CUDA Driver Version: 11.4
CUDA Runtime Version: 11.4
TensorRT Version: 8.5
cuDNN Version: 8.6
libNVWarp360 Version: 2.0.1d3

$ deepstream-app --help-all
Usage:
  deepstream-app [OPTION?] Nvidia DeepStream Demo

Help Options:
  -h, --help                        Show help options
  --help-all                        Show all help options
  --help-gst                        Show GStreamer Options

GStreamer Options
  --gst-version                     Print the GStreamer version
  --gst-fatal-warnings              Make all warnings fatal
  --gst-debug-help                  Print available debug categories and exit
  --gst-debug-level=LEVEL           Default debug level from 1 (only error) to 9 (anything) or 0 for no output
  --gst-debug=LIST                  Comma-separated list of category_name:level pairs to set specific levels for the individual categories. Example: GST_AUTOPLUG:5,GST_ELEMENT_*:3
  --gst-debug-no-color              Disable colored debugging output
  --gst-debug-color-mode            Changes coloring mode of the debug log. Possible modes: off, on, disable, auto, unix
  --gst-debug-disable               Disable debugging
  --gst-plugin-spew                 Enable verbose plugin loading diagnostics
  --gst-plugin-path=PATHS           Colon-separated paths containing plugins
  --gst-plugin-load=PLUGINS         Comma-separated list of plugins to preload in addition to the list stored in environment variable GST_PLUGIN_PATH
  --gst-disable-segtrap             Disable trapping of segmentation faults during plugin loading
  --gst-disable-registry-update     Disable updating the registry
  --gst-disable-registry-fork       Disable spawning a helper process while scanning the registry

Application Options:
  -v, --version                     Print DeepStreamSDK version
  -t, --tiledtext                   Display Bounding box labels in tiled mode
  --version-all                     Print DeepStreamSDK and dependencies version
  -c, --cfg-file                    Set the config file
  -i, --input-uri                   Set the input uri (file://stream or rtsp://stream)

PS: deepstream-app comes with deepstream installation.

Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU)
• DeepStream Version
• JetPack Version (valid for Jetson only)
• TensorRT Version
• NVIDIA GPU Driver Version (valid for GPU only)
• Issue Type( questions, new requirements, bugs)
• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)
• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)

Model: NVIDIA Orin Nano Developer Kit - Jetpack 5.1.4 [L4T 35.6.0]
DeepStream C/C++ SDK version: 6.3
Jetpack 5.1.4 [L4T 35.6.0]
TensorRT: 8.5.2.2

Not sure

deepstream-app -c deepstream_app_config.txt Detailed changes see github issue link: Does deepstream-app support h265 video stream?

As deepstream-app is built from DeepStream Not DeepStream-Yolo, so I post a thread here.

100% reproducable with latest DeepStream-Yolo.

Not new requirement, it’s just a function that should support I think. Maybe the configuration is wrong. Just don’t have any clue of the issue.

from this topic, Gstreamer need to use udpsrc to receive rtp stream. currently deepstream-app does not support using updsrc to receive rtp stream. Here are two solutions.

  1. deepstream-app is opensource. you can modify create_multi_source_bin of \opt\nvidia\deepstream\deepstream-7.1\sources\apps\apps-common\src\deepstream_source_bin.c to add support for updsrc.
  2. you can set up a rtsp source instead of rtp source. then update[source0] by setting type=4 and url=rtsp://xxx.

Thanks for confirmation.

I found this link: Deepstream 4.0 with GStreamer for RTP Video - #6 by Matt-G

It seems uridecodebin should support RTP stream, Any idea?

PS: I did get RTP/H264 working with the demo.

type=3
uri=rtp://0.0.0.0:5600

@fanzh So the question should be: does uridecodebin support H265 udp stream?

uridecodebin is Gstreamer Opensource plugin, please read the code to check if it can support UDP protocol. NV nvv4l2decoder supports decoding raw H265 data.

I have read the code (although not fully understand).

It indeed invoked create_multi_source_bincreate_uridecode_src_bindecodebin_child_added, and decodebin_child_added has nvv4l2decoder.

@fanzh I don’t know how nvv4l2decoder was configured in deepstream-app. It should be somewhere in the configure file.

uridecodebin is created in create_uridecode_src_bin of deeptream-app. uridecodebin is Gstreamer bin plugin, which will wrap protocol parsing , decoder. In decodebin_child_added, some decoder parameters like drop-frame-interval can be set to decoder.