DeepStream Reference Application - deepstream-nmos app#
Application Architecture#
The image below shows the architecture of the NVIDIA® DeepStream NMOS reference application.
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
andaudiotestsrc
.
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 - rhastie/easy-nmos
Clone the git repository as follows:
git clone https://github.com/rhastie/easy-nmos.git
Modify the
docker-compose.yml
to replace the values of “ipv4_address” fields of each container accordingly.Start the docker containers as follows:
docker-compose up
Once setup is complete, the NMOS Controller should be running on following address.
Refer to 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.