This contains source and dependencies tarballs of Media Gateway.
Resource contains source code to build the Media Gateway application along with an archive of its open-source dependencies.
Media Gateway is a reference container for Holoscan for Media, built on DeepStream.
It adds a GStreamer element, nvdsnmosbin, that allows the registration and management of NMOS senders and receivers corresponding to ST 2110 sinks and sources in a flexible GStreamer pipeline passed to the container.
For a video walk-through of the technology, see Bringing Up a NMOS-Capable ST 2110 Media Processing Node in 30 Minutes from the IP Showcase On The Water at IBC 2023.
Refer to the reference pipelines in the Holoscan for Media user guide for more information.
Build The Docker Image
- Place the Rivermax SDK archive
rivermax_ubuntu2204_1.70.32.tar.gzobtained from Rivermax SDK inside themlnx-packagesdirectory. - To build the container, run:
where:
docker build -t nvds_nmos_bin:<tag> .<tag>is a version label for this image (for example,1.0-dev)
- To build the source code separately, follow the steps in the builder step in the Dockerfile.
Architecture
This repository is a collection of three GStreamer elements, nvdsnmosbin, nvdssdpsink, nvdssdpsrc.
The user is only expected to interact with nvdsnmosbin which implements the NMOS node.
nvdssdpsink, nvdssdpsrc implement NMOS senders and receivers for nvdsnmosbin.
nvdsnmosbin:
- Sets up the NMOS HTTP server based on
srcs andsinks requested by the properties. - Patches SDPs with additional information required by NVIDIA/nvnmos and Rivermax.
- Handles NMOS callbacks.
- Sets callback SDP on
nvdssdpsink,nvdssdpsrcusing thesdpproperty, which must have flag GST_PARAM_MUTABLE_PLAYING. Thesdpproperty is the only hard coupling betweennvdsnmosbinandnvdssdpsink/nvdssdpsrc. - Sets
nvdssdpsrc-desc,nvdssdpsink-desconnvdssdpsink/nvdssdpsrcif those elements have those properties to propagate user configuration ofnvdsudpssrc/nvdsudpssink. Both properties may be implemented bynvdssdpsink/nvdssdpsrcbut it is not required.
nvdssdpsink:
- Decides on whether to use
nvdsudpsinkorudpsink, depending on whether network interface is supported by Rivermax. - Dynamically reconfigures
nvdsudpsink/udpsinkand payloaders if required, on every SDP change.
nvdssdpsrc:
- Decides on whether to use
nvdsudpssrcorudpsrc, depending on whether network interface is supported by Rivermax. - Dynamically reconfigures
nvdsudpsrc/udpsrcand depayloaders if required, on every SDP change.
License
By downloading and using this software, you accept the terms and conditions of the NVIDIA AI Product Agreement.
The source code for the Media Gateway application itself is licensed under the Apache License, Version 2.0. The notices, attribution, licenses and source code are included in the tarball.