New DeepStream reference apps

DeepStream team is constantly looking to make it easy for our developers to get started with DeepStream. One of the ways is providing reference examples that developers can use to learn new features and build applications. We are adding a new app to perform back to back detections on a frame and are also updating the anomaly detection app to run on DeepStream 4.0+. These apps are released on the NVIDIA-AI-IOT GitHub page.

  1. Back-to-back detector – Performs multiple detection on a single frame
  2. Anomaly detection – Uses NVIDIA optical flow to detect anomaly

For any questions or issues regarding these apps, please post your questions on the forum.

We have few more apps in the pipeline. We will be releasing those in the coming weeks. Stay tuned.

  • DeepStream Team

We have Dynamic stream addition/removal app added on GitHub. Here is the link for the app:

1 Like

Awesome. Are you able to give us an idea of what the coming sample apps will be - then we’ll know better what to request. ;-)


I have reference this app, and there are some problems :

but no one to reply me.

Are there going to be examples of just a simple Kafka sink? It’s a huge pain to get this working by getting bits and pieces from documentation and test apps, can’t figure it out.

Is there an very minimal example of exposing the prediction to some file/queue/rabbitmq/HTTP? It’s hard to create an end-to-end demo

Hi @mrluthfianto, there are examples provided for sending results to Kafka, AMQP, Azure MQTT. For creating your own you can quite easily change the gst-dsexample plugin (where you are provided with the inference metadata and frame) to save the results to file or send to an http endpoint, etc.

We have Dynamic stream addition/removal app added on GitHub. Here is the link for the app:

DeepStream-openpose reference app

Completely agree. The SDK is a mess, GStreamer complicates it.

There is a presentation(DeepStream SDK: Towards Large Scale Deployment of Intelligent Video Analytics Systems) that describes the old SDK. That is far cleaner and does not hide the c/c++ interface.

How is gst_element_factory_make, g_object_set, gst_pipeline_get_bus, gst_bin_add_many, gst_element_get_request_pad, gst_element_link_many, cleaner and less confusing than the older API??

Instead of;

// Create a device worker bitstream
IDeviceWorker* pDW = createDeviceWorker(1,0);

// Add a decode task, specifying the CODEC type

// Add a module for color conversion.
// Color conversion module outputs:
// 1: NV12 (YCbCr)
IModule* pCC = pDW->addColorSpaceConvertorTask(BGR_PLANAR);