DeepStream Reference Application - deepstream-nmos app ======================================================= Application Architecture --------------------------- The image below shows the architecture of the NVIDIA\ :sup:`®` DeepStream NMOS reference application. .. image:: /content/DS_reference_nmos_app.png :align: center :alt: DeepStream NMOS Reference Application Architecture This application demonstrates how to create any DeepStream app as an `NMOS `_ Node. It uses a library (:doc:`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. :: http://nmos-registry.local/admin 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.