NVIDIA
NVIDIA
Media Gateway Helm Chart
Helm Chart
NVIDIA
NVIDIA
Media Gateway Helm Chart

This is a Helm chart package to manage Media Gateway deployment on your Kubernetes cluster.

Sign in to access all content for this Helm ChartSigning in will also allow download accessSign In

Media Gateway Helm Chart

Basic Introduction

This is a Helm chart package to manage Media Gateway deployment on your Kubernetes cluster.

Prerequisites

  • Rivermax license

    • Request a developer license at Rivermax Download
    • Store the license file in a Secret:
      kubectl create secret generic rivermax-license --from-file=rivermax.lic -n <your-namespace>
      
      where:
      • <your-namespace> is the Kubernetes namespace in which you are going to deploy applications, often just default when you're getting started
    • The Helm chart creates a volume from this Secret which is mounted into the container at /opt/mellanox/rivermax
  • Image pull secret

    • Create a secret to pull images from the NGC registry in the same namespace as the pod that uses it:
      kubectl create secret docker-registry <secret-name> --docker-server=nvcr.io '--docker-username=$oauthtoken' --docker-password=<API-KEY> --docker-email=<your-email> -n <your-namespace>
      
      where:
      • <secret-name> is a short name like alice-ngc-secret to be used on your local system when deploying applications
      • <API-KEY> is your NGC API Key
      • <your-email> is the e-mail address you used to sign up for NGC
      • <your-namespace> is the Kubernetes namespace in which you are going to deploy applications, often just default when you're getting started

Installation

Using NGC CLI and NGC Web UI

Please see the NGC Helm Charts documentation for general guidance.

Using Helm Dashboard

This Helm chart can be installed on your Kubernetes cluster using the Helm Dashboard UI once the Helm Dashboard Helm Chart is installed.

Using Helm

  1. Login to the NGC registry

    helm registry login nvcr.io
    
  2. Add repo on your local system

    helm repo add <your-repo-name> https://helm.ngc.nvidia.com/nvidia/holoscan-for-media/ '--username=$oauthtoken' --password=<API-KEY>
    

    where:

    • <your-repo-name> is a short name like holoscan-for-media to be used on your local system to indicate the chart repository on NGC specified by the URL
    • <API-KEY> is your NGC API Key
  3. Update the repo or fetch particular chart

    helm repo update
    

    or

    helm pull <your-repo-name>/nvds-nmos-bin
    

    where:

    • <your-repo-name> is the short name you used in the helm repo add command above
  4. Now you can see all the charts available

    helm search repo
    
  5. You are ready to install Media Gateway using its Helm chart

    Install using below command if the image pull secret was created beforehand as mentioned in prerequisites

    helm install --set imagePullSecrets[0].name=<secret-name>,<...more key=value overrides...> <release-name> <your-repo-name>/nvds-nmos-bin
    

    else

    helm install --set imageCredentials.password=<API-KEY>,<...more key=value overrides...> <release-name> <your-repo-name>/nvds-nmos-bin
    

    where:

    • <secret-name> is the short name you used in the kubectl create secret command above
    • <API-KEY> is your NGC API Key
    • <...more key=value overrides...> are shown in the Helm chart's values.yaml file
    • <release-name> is a short name, like alice-nvds-nmos-bin-1, which should be unique on your local system, to indicate this particular installation of this application
    • <your-repo-name> is the short name you used in the helm repo add command above
  6. After installation you can check the status

    kubectl get all -o wide
    
  7. Once each pod is running its pipeline is started

    If the pipeline includes nvdsnmosbin, an NMOS device is created.

    Install the NMOS Registry and NMOS Controller to interact with NMOS devices.

  8. Other commands to manage the installed application

    helm status <release-name>
    helm get all <release-name>
    helm uninstall <release-name>
    

    where:

    • <release-name> is the short name you used in the helm install command above

Defining Pipelines in Helm Charts

Media Gateway is built on DeepStream. It provides NMOS registration and control of ST 2110 sinks and sources in a flexible GStreamer pipeline passed to the container.

Sample pipeline for a videotestsrc with corresponding SDP file for the sink, all defined in values.yaml

  • GST_DEBUG can be used to set the log level for GStreamer and elements/plugins for nvdsnmosbin

  • description can be either:

    1. A custom pipeline that is appended to gst-launch-1.0. Apart from the pipeline we can define some additional properties of nvdsudpsink and/or nvdsudpsrc in the manner shown below.

      description: videotestsrc pattern=smpte100 is-live=true ! video/x-raw,width={{ .Values.video.width }},height={{ .Values.video.height }},format=UYVP,framerate={{ .Values.video.framerate }}/1 ! nvdsnmosbin dump-graphviz=true name=sender hostname="simple-video.local" sink_0::nvdsudpsink-desc="nvdsudpsink payload-size=1220 packets-per-line=4 internal-thread-core=0 render-thread-core=1 ptp-src=''" sink_0::sdp="file:///sdps/video" sink_0::session-name="NvDsNmosBin testpattern sender"
      

      The rtp-caps allow simple control over the SDP media parameters. Alternatively, SDP files can be specified directly as above. The SDP files used in the pipeline are defined as below.

      sdps:
        video: |
          v=0
          o=- 1443716955 1443716955 IN IP4 0.0.0.0
          s={{ .Values.video.height }}p{{ .Values.video.framerate }} video sender
          t=0 0
          m=video 50004 RTP/AVP 96
          c=IN IP4 233.252.0.1/64
          a=source-filter: incl IN IP4 233.252.0.1 0.0.0.0
          a=rtpmap:96 raw/90000
          a=fmtp:96 sampling=YCbCr-4:2:2; width={{ .Values.video.width }}; height={{ .Values.video.height }}; exactframerate={{ .Values.video.framerate }}; depth=10; TCS=SDR; colorimetry=BT709; PM=2110GPM; SSN=ST2110-20:2017; TP=2110TPN;
          a=ts-refclk:ptp=IEEE1588-2008:traceable
          a=mediaclk:direct=0
      
    2. One of the following predefined pipeline options:

      • 1080p60-sender: Launches a pipeline for sending 1080p60 video
      • 1080p60-flipper: Launches a pipeline for both sending and receiving 1080p60 video
      • 1080p60-receiver: Launches a pipeline for receiving 1080p60 video
      • multi1080p60-sender: Launches a pipeline for sending multiple 1080p60 video streams
      • 2ch-48k-sender: Launches a pipeline for sending 2 channel sine wave audio at 48kHz (1ms ptime)
      • 2ch-48k-receiver: Launches a pipeline for receiving 2 channel audio at 48kHz (1ms ptime)

      These predefined pipelines can be found in the /workspace/example-gst-launch-commands directory.

      Example usage in values.yaml:

      description: 1080p60-sender
      

      Note: some of these pipelines depend on the SDP files created by the Helm deployment, and may only work with the audio/video property values in the default YAML.

High Speed Network Configuration

Media Gateway supports configuring high-speed network attachments for ST 2110 media transport. The highSpeedNetwork configuration supports both single and multiple network attachments.

Single Network Attachment (Default)

For a single high-speed network attachment, use the dictionary format:

pipelines:
  pipeline1:
    name: testpattern-sender
    highSpeedNetwork:
      name: "media-a-tx-net"

Multiple Network Attachments

For multiple high-speed network attachments, use the list format:

pipelines:
  pipeline1:
    name: testpattern-sender
    highSpeedNetwork:
      - name: "media-a-tx-net"
      - name: "media-b-tx-net-static"
        ip: "198.51.100.3/24"

For networks with static IP address management, the ip property is required as well as the network name.

Security Considerations

The main container used by this Helm chart requires the following capabilities to run properly:

CapabilityPurposeRelated Function
IPC_LOCKTo enable locking memory, to allocate hugepages with mmapRivermax
NET_RAWTo use RAW socketsRivermax
SYS_CHROOT (image version < 0.7.0)To start avahi-daemon, for name resolution and service discoveryNMOS
SYS_NICETo set process and thread affinity and priorityRivermax
DAC_READ_SEARCH (image version >= 0.7.0)To read the /sys file systemRivermax
Publisher
NVIDIA
NVIDIA
Latest Version0.2.1
UpdatedMay 8, 2026 UTC
Compressed Size7.11 KB

NVIDIA uses cookies to improve your experience on our web site. We and our third-party partners also use cookies and other tools to collect and record information you provide as well as information about your interactions with our websites for performance improvement, analytics, and to assist in marketing efforts. By clicking "Accept All", you consent to our use of cookies and other tools as described in our Cookie Policy. You can manage your cookie settings by clicking on "Manage Settings." By continuing to use this site or by clicking one of the buttons below, you agree to our Terms of Service (which contains important waivers). Please see our Privacy Policy for more information on our privacy practices.