DeepStream Reference Application - deepstream-nmos app

Application Architecture

The image below shows the architecture of the NVIDIA® DeepStream NMOS reference application.

DeepStream NMOS Reference Application Architecture

This application demonstrates how to create any DeepStream app as an NMOS Node.

It uses a library (NvDsNmos) which provides the APIs to create, destroy and internally manage the NMOS Node. The NMOS Node can automatically discover and register with an NMOS Registry on the network using the AMWA IS-04 Registration API.

It also shows how to create various Video and Audio pipelines, run them simultaneously and reconfigure them based on NMOS events such as AMWA IS-05 Connection API requests from an NMOS Controller.

This application has three modes of operations:

As NMOS Receiver (Default)

In this mode, application provides NMOS Receivers that can be used to configure UDP sources to receive SMPTE ST 2110-20/-30 streams. Received (Video / Audio) streams are rendered to local Video / Audio sinks after some processing (Object detection and Bounding box overlay in case of Video).

As NMOS Sender

In this mode, application provides NMOS Senders that can be used to configure UDP sinks to transmit SMPTE ST 2110-20/-30 streams. Transmitted streams are created from videotestsrc and audiotestsrc.

As Both NMOS Receiver and Sender

In this mode, application provides NMOS Receivers to configure UDP sources and after processing the data transmits streams from UDP sinks which are configured by NMOS Senders.

Using Easy-NMOS for NMOS Registry and Controller

This application requires AMWA IS-05 Connection API requests for its operation. These events are generated by an NMOS Controller. Easy-NMOS is a simple and easy way to set up an NMOS Controller and Registry. Follow the instructions below to set up the NMOS Registry and run the NMOS Controller.

Note

These instructions expect that docker and docker compose are already installed. If not then refer steps provided here - https://docs.docker.com/engine/install/ and https://docs.docker.com/compose/install/.

Or follow the quick instructions here - https://github.com/rhastie/easy-nmos/blob/master/install_docker.md

  1. Clone the git repository as follows:

    git clone https://github.com/rhastie/easy-nmos.git
    
  2. Modify the docker-compose.yml to replace the values of “ipv4_address” fields of each container accordingly.

  3. Start the docker containers as follows:

    docker-compose up

Once setup is complete, the NMOS Controller should be running on following address.

Refer to https://github.com/rhastie/easy-nmos for detailed instructions for setup.

Refer to https://www.amwa.tv/easy-nmos-videos for a tutorial on Easy-NMOS.

Refer to https://specs.amwa.tv/nmos/ for details about the NMOS specifications.