Skip to main content
NVIDIA
Reference Media Functions Operator
Container
NVIDIA
Reference Media Functions Operator

Kubernetes operator for Holoscan for Media that manages NVIDIA media functions with ST 2110 support.

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

Reference Media Functions Operator

The Reference Media Functions Operator is a Kubernetes operator for Holoscan for Media that manages the lifecycle of NVIDIA media function microservices. It provides declarative Custom Resources for deploying ST 2110 media processing workloads with integrated NMOS control plane support.

The operator reconciles each Custom Resource into a fully configured Deployment that includes the media function container and optional observability sidecars. It continuously monitors the running pods to reflect NMOS sender/receiver identifiers, SDP data, and readiness conditions back into the Custom Resource status.

Media Functions

Custom ResourceDescription
NvidiaSrtGatewayMediaFunctionReceives ST 2110-20 video and ST 2110-30 audio via NMOS, encodes them, and forwards the stream over SRT. Supports listener and caller modes with optional Kubernetes Service exposure.
NvidiaVideoFlipperMediaFunctionReceives a video stream via ST 2110, applies a flip or rotation transform, and re-sends it via ST 2110. Useful for orientation correction in live pipelines.
NvidiaStreamDelayMediaFunctionReceives ST 2110-20 video and/or ST 2110-30 audio, delays the streams, and re-sends them over ST 2110.
NvidiaColorPatternMediaFunctionGenerates video test patterns (color bars, SMPTE, gradients) and outputs them as ST 2110-20 uncompressed video via RTP. Useful for pipeline validation and bring-up.
NvidiaFilePlayerMediaFunctionPlays a PVC-hosted MPEG-TS file as ST 2110 video and audio using a referenced NvidiaFilePlayerContext.

Installation

Install the operator using the associated Helm chart:

helm repo add holoscan-for-media \
  https://helm.ngc.nvidia.com/nvidia/holoscan-for-media/ \
  '--username=$oauthtoken' \
  --password=<API-KEY>
helm repo update
helm install reference-media-functions-operator \
  holoscan-for-media/reference-media-functions-operator \
  --version 0.1.0 \
  --namespace <your-namespace> --create-namespace \
  --set image.imagePullSecrets[0].name=ngc-secret \
  --set mediaFunction.imagePullSecrets[0].name=ngc-secret

Helm Values

ValueDescriptionDefault
image.repositoryOperator container imagecontroller
image.tagOperator image tag"" (chart appVersion)
image.imagePullSecrets[0].nameKubernetes NGC secret name for pulling the operator image""
mediaFunction.imageContainer image for media function podsnvcr.io/nvidia/holoscan-for-media/nvds-nmos-bin:0.8.0
mediaFunction.imagePullSecrets[0].nameKubernetes NGC secret for pulling the media function image""
mediaFunction.schedulerNameScheduler for media function podstopo-aware-scheduler
mediaFunction.rivermaxLicenseSecretNameKubernetes Secret containing the Rivermax licenserivermax-license

Uninstallation

Remove all media function instances, then uninstall the operator:

kubectl delete nvidiasrtgatewaymediafunctions --all -A
kubectl delete nvidiavideoflippermediafunctions --all -A
kubectl delete nvidiastreamdelaymediafunctions --all -A
kubectl delete nvidiacolorpatternmediafunctions --all -A
kubectl delete nvidiafileplayermediafunctions --all -A
kubectl delete nvidiafileplayercontexts --all -A
helm uninstall reference-media-functions-operator -n <your-namespace>

Quick Start

Color Pattern Generator

The following Custom Resource deploys a color pattern generator that outputs 1080p60 SMPTE color bars over ST 2110 with NMOS control:

apiVersion: nvidia.com/v1alpha1
kind: NvidiaColorPatternMediaFunction
metadata:
  name: colorbars-1080p60
spec:
  parameters:
    label: "1080p60-colorbars"
    description: "SMPTE color bars at 1080p60"
    pattern: 0
  outputs:
    video_output:
      control:
        nmos: {}
      transport:
        rtp: {}
      format:
        video:
          media_type: "video/raw"
          frame_width: 1920
          frame_height: 1080
          frame_rate: "60"

Apply the resource:

kubectl apply -f colorpattern.yaml

Verify that the media function is provisioned:

kubectl get nvidiacolorpatternmediafunction colorbars-1080p60

The Provisioned condition transitions to True once the underlying Deployment is available and the NMOS node has registered its sender.

Spec Reference

spec.parameters

FieldTypeDefaultDescription
labelstringHuman-readable label exposed via NMOS IS-04.
descriptionstringDescription exposed via NMOS IS-04.
patternint0Test pattern index (0=SMPTE, 1=mandelbrot, 2=gradient).
horizontalSpeedint0Horizontal animation speed (0 = static).
displayTimestampboolfalseOverlay a clock on the video output.
highSpeedNetworklistMultus NetworkAttachmentDefinition references for media traffic.
resourcesobjectContainer resource requests and limits override.

spec.outputs.video_output.format.video

FieldTypeAllowed Values
media_typestringvideo/raw
frame_widthinte.g. 1920, 3840
frame_heightinte.g. 1080, 2160
frame_ratestring25, 30000/1001, 30, 50, 60000/1001, 60
color_samplingstringe.g. YCbCr-4:2:2
component_depthinte.g. 8, 10, 12
colorspacestringe.g. BT709, BT2020
transfer_characteristicstringe.g. SDR
interlace_modestringprogressive, interlaced_tff, interlaced_bff, interlaced_psf

License

By downloading and using this software, you accept the terms and conditions of the NVIDIA AI Product Agreement.

Publisher
NVIDIA
Latest Tag0.1.0
UpdatedOctober 5, 2026 UTC
Compressed Size113.74 MB
Multinode SupportNo
Multi-Arch SupportYes

Modal Content

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.