LogoLogo
🛠️ Tools🗂️ SDK📄 White Paper
  • Getting Started
    • 🟣What is NDI?
    • 🆕Release Notes
    • 📄White Paper
      • Discovery & Registration
        • mDNS
        • Discovery Service
        • Manual Connection
        • NDI Groups
      • NDI Protocols
        • Reliable UDP - NDI 5
        • Multipath TCP - NDI 4
        • UDP with Forward Error Correction – NDI 3
        • Single TCP – NDI 1
      • NDI Related Network Ports
      • Getting video across the network
      • Network Layout
      • Bandwidth
        • NDI High Bandwidth based on SpeedHQ2 (8bit 4:2:2)
        • NDI High Bandwidth based on SpeedHQ7 (8bit 4:2:2:4)
        • NDI HX2 h.264 (8bit 4:2:0)
        • NDI HX2 h.265 (8bit 4:2:0)
        • NDI HX3 h.264 (8bit 4:2:0)
        • NDI HX3 h.265 (8bit 4:2:0)
        • NDI Proxy and bandwidth optimization
      • Network Interface Settings
      • NIC Selection
      • Encoding and Decoding
      • Multicast
      • NDI Administrative Settings
      • Synchronization
      • NDI in the Cloud
    • Glossary
      • NDI Terminology
      • Industry Terminology
  • Using NDI
    • Introduction
    • NDI for Video
      • Digital Video Basics
      • NDI Video Codecs and Format Matrix
      • NDI Encoding Support Matrix
        • Practical NDI Receivers Format Support
        • Practical NDI Transmitters Support
        • Summary Table
      • Interoperability Scenarios
    • NDI for Audio
      • Digital Audio Fundamentals
      • Audio Over IP
      • Technical Facts About NDI for Audio
      • Use Cases
      • Products Using NDI for Audio
    • ⚒️NDI Tools
      • Release Notes
      • Installing NDI Tools
        • Software License Agreement
        • Privacy Policy
      • NDI Tools Launcher
      • NDI Tools for Windows
        • Access Manager
        • Bridge
          • NDI Bridge automation
          • Configuring Port Forwarding
          • Bridge Tool Logging
        • Remote
        • Router
        • Screen Capture
        • Screen Capture HX
        • Studio Monitor
        • Test Patterns
        • Webcam Input
      • NDI Tools for Mac
        • Access Manager
        • Scan Converter
        • Router
        • Test Patterns
        • Video Monitor
        • Virtual Input
      • Plugins
        • NDI for After Effects
        • NDI for Premiere Pro
        • NDI Output for Final Cut Pro
        • NDI for VLC
        • Audio Direct
        • OBS
    • Utilities
      • Analysis
    • Using NDI with Software
      • Getting Started with NDI in OBS for Windows or Mac
      • Using OBS Studio as a Commentary System
      • Using NDI Tools as a virtual camera in Mac
      • Using NDI and Dante on the same Network
      • Use OBS video + audio on Zoom with macOS
    • Using NDI with Hardware
      • NDI HX upgrades for cameras
      • How to Activate Panasonic Cameras for NDI HX1 — Step-by-Step
      • Recommended Network Switch Settings for NDI
  • Developing with NDI
    • Introduction
    • 📂SDK
      • Release Notes
      • Licensing
      • Software Distribution
        • Header Files
        • Binary Files
        • Redistributables
        • Content Files
        • Libraries
        • NDI-SEND
        • NDI-FIND
        • NDI-RECEIVE
        • Utilities
        • Command Line Tools
      • CPU Requirements
      • Dynamic Loading of NDI Libraries
      • Performance and Implementation
      • Startup and Shutdown
      • Example Code
      • Port Numbers
      • 🔧Configuration Files
      • Platform Considerations
      • NDI-SEND
      • NDI-FIND
      • NDI-RECV
      • NDI Routing
      • HDR
      • Command Line Tools
      • Frame Types
        • Video Frames
        • Audio Frames
        • Metadata Frames
      • Windows DirectShow Filter
      • 3rd Party Rights
      • Support
    • Advanced SDK
      • Release Notes
      • Licensing
      • Overview
      • Configuration Files
      • NDI SDK Review
        • Sending
          • Asynchronous Sending Completions
          • NDI Sending On High Latency Connections
        • Receiving
          • Custom Allocators
            • Video Allocators
            • Audio Allocators
          • Dynamic Bandwidth Adjustment
        • Finding
        • Video Formats
          • Receiver Codec Support Level
          • Frame Synchronization
      • Genlock
      • AV Sync
        • Guidelines
        • Creating and Destroying Devices
        • Recovering Audio
      • Using H.264, H.265, and AAC Codecs
        • Sending Audio Frames
        • Sending Video Frames
        • H.264 Support
        • H.265 Support
        • AAC Support
        • OPUS Support
        • Latency of Compressed Streams
        • Stream Validation
      • External Tally Support
      • KVM Support
      • NDI Advanced SDK FPGA Example Designs
        • Prebuilt uSD Images
        • NDI FPGA Reference Design
          • FPGA Projects
            • Changelog
          • C++ Application Code
            • Changelog
          • linux_kernel
            • Changelog
          • uSD Image Builder
            • Changelog
        • Changelog
    • Utilities
      • Unreal Engine SDK
        • Release Notes
        • Licensing
        • NDI Plugin Installation
        • Simple Setup of Broadcast and Receivers
        • NDI Broadcast Actor
        • NDI Receiver Actor
        • NDI Media Assets
        • Getting Started with Example Blueprint Projects
        • Advanced
      • Free Audio
      • Bridge Service
        • Installation
          • Silent Installation
        • Configuration
          • Web UI
          • Configuration File
          • Manual API Key Management
        • Webhooks
        • WebSockets
        • API
    • NDI Certified
      • Certification Guidelines
        • Interoperability Requirements
        • Technical Requirements
      • Certification Process
        • Pre-certification Checklist
        • Device Testing Methods
          • Camera
          • HDMI Encoder
          • SDI Encoder
          • Decoder
          • NDI Controller
          • NDI Monitor
          • Multicast Testing
        • Detailed process
    • Metadata
      • Metadata Sources
      • Metadata for XML
      • XML Validation
      • Metadata Elements
      • Proposed New Metadata Messages
      • PTZ and Control Messages
      • Undocumented Mysteries
  • Developer Guides
    • Decoding with NDI
    • NDI Bridge Deployment
  • FAQ
    • Index
    • NDI Tools
      • What is the NDI Analysis Tool and where do I get it from?
      • Why does my NDI connection stay active once the source is offline?
      • Why are my changes to the NDI JSON configuration file not being saved?
      • Why is the license for my Panasonic camera not active?
      • How does registration for NDI Tools work?
      • The time code on my file is incorrect, how do I change it?
      • How can I make NDI Tools launch automatically?
      • What is the NDI ECCN?
      • How do I use NDI output with Microsoft Teams
      • Where is Screen Capture (HX) for Mac?
    • NDI Certified
      • What is the NDI Certification Program?
      • Why did you start this certification program?​
      • What happens to my device after it's certified?
      • Is certification mandatory to be a partner of NDI?​
      • I am an OEM manufacturer, can my products be certified?​
      • How long does the certification process take?
      • How do I become certified?​
      • What happens if my product doesn’t meet the requirements for Certification?​
      • Are there any fees to become NDI Certified?
    • Common Issues
      • I'm having trouble getting multicast set up.
      • I'm having trouble with my NDI HX License
      • Why can't I find my Android 14-based NDI devices on my network?
      • Why won’t NDI Tools install on my Windows PC?
      • How do I enable NDI in “New” Microsoft Teams (Windows only)?
      • Why can’t HX Capture display the full resolution of my iPad or iPhone?
      • The NDI HX Camera app won't launch on older phones and iOS
      • Why won't MacOS Sonoma (14.1) recognize NDI Tools as a virtual camera?
      • I'm having issues with Virtual Input for macOS
      • I'm having issues with Final Cut Pro
      • NDI Camera App Issue
    • SDK
      • Where can I find the source code for the FPGA board?
      • What system resources are required to support a design including the NDI FPGA Codecs?
      • Why can’t my h264/265 video be received by an NDI receiver when using the embedded SDK?
      • Can I use the Unreal SDK on Mac?
      • What are the Differences Between the NDI SDK and the NDI Advanced SDK
    • ✨NDI 6
      • Do I need to upgrade to NDI 6 if I'm not using the new features?
      • Is there a fee to upgrade to NDI 6
      • Why doesn't my existing Vendor ID work with NDI 6?
      • How can I get a previous version of NDI Tools or the SDK?
    • NDI HX License Upgrades
      • What is happening with NDI HX Upgrades?
      • Will my existing HX-upgraded camera be affected?
      • I bought a camera before June 30, 2025, but didn't buy an HX license. Can I still get one?
      • I bought a license and a camera but didn't redeem it until after. Can I still get an HX license?
      • If my HX upgrade fails can I transfer the license?
      • Can I sell my upgraded HX camera and keep the license?
      • Will my NDI version work with my current HX license?
      • What does the HX upgrade sunset program mean for camera manufacturers?
      • What will NDI Support do for licenses after the sunset date?
      • I factory reset my camera and forgot the license. Can you help me get it back?
Powered by GitBook

2024 @ NDI Vizrt AB.

On this page
  • NDI Viewport Capture Component
  • NDI PTZ Controller

Was this helpful?

Export as PDF
  1. Developing with NDI
  2. Utilities
  3. Unreal Engine SDK

NDI Broadcast Actor

A broadcast actor creates an NDI stream of the view, as captured by the actor. It is represented in the level by a camera and is independent of the viewport. Multiple broadcast actors can be used, each with its own stream, to stream multiple views of the scene at the same time.

By default, a newly created broadcast actor does not have a media source set. The media source contains information about the stream, such as its name and resolution. The media source for a broadcast actor is an NDI Media Sender asset type. When setting up a broadcast actor, a new NDI Media Sender asset can be created and set, or an existing one can be selected.

The broadcast actor also comes with two components attached: the ViewportCaptureComponent containing the setting of how to capture the view, and a PTZController component that can be used to control the camera as a virtual PTZ device.

NDI Viewport Capture Component

The viewport capture component is responsible for capturing the view. It is derived from the standard USceneCaptureComponent2D, and has many settings to control how the view is captured. We shall go over a few that are particularly relevant for NDI use.

Capture Settings

When overriding the broadcast settings, the view will be rendered at the given size, but scaled to fit the stream's resolution (as set in the actor's media source).

If the stream outputs alpha values (the actor's media source has Output Alpha turned on), then Alpha Remap can be used to control how the alpha values in the view are translated to alpha values in the NDI stream. The min value is the Unreal Engine rendered alpha value mapped to an NDI stream alpha value of 0, while the max is the value mapped to a stream alpha of 1.

All other alpha values are linearly interpolated from those. The min value can be set larger than the max value. The alpha remap values specified in the viewport capture component will overwrite the alpha remap values in the actor's NDI Media Sender asset.

Scene Capture

The Texture Target is optional. If not set (i.e. it is set to None), a default transient texture target will be created internally. It should suffice for most uses.

The Capture Source sets how to capture the view. Unreal Engine renders views in a number of passes and can apply various post-processing steps for various effects. The capture source determines during which pass the view is captured. Depending on the capture source, some information may be unavailable. For example, in Final Color modes, alpha values are not available. While in Scene Color modes, post-processing effects such as depth of field is not present.

When using a capture source with alpha (whether obtained from opacity or scene depth), the broadcast actor's media source should have Output Alpha turned on for NDI to stream out an alpha channel. Care should also be taken when setting the Alpha Remap Min and Max values in the Capture Settings section. Notice that some Capture Source modes produce an inverted alpha channel. For those, Alpha Remap Min should be set to 1 and Alpha Remap Max to 0 to undo the inversion.

When using a Capture Source mode with scene depth in the alpha channel, set Alpha Remap Max to the largest distance you want to be represented as 1 in the stream's alpha channel. The Alpha Remap Min can be set to 0 to capture the entire depth range. If you want to use the scene depth as an alpha mask, remember that an alpha value of 0 is fully transparent (and 1 fully opaque). In such cases set the Alpha Remap Min to the maximum depth (far away is transparent), and Alpha Remap Max to 0 (near is opaque). A hard distance cut-off can be achieved by setting Alpha Remap Max to slightly less than the Min.

By default, an NDI Broadcast Actor will create an internal transient Texture Target. However, users can create a dedicated Render Target and assign it to the Broadcast Actor for more control over the output.

NDI PTZ Controller

The PTZ Controller component allows the virtual camera to be oriented, zoomed, and focused through the NDI PTZ interface. PTZ control commands are received from the associated broadcast actor's media sender asset and applied to the viewport capture component.

PTZ control is enabled by default. The toggle in the PTZ Controller settings can disable or enable it for an actor. There is also an Enable PTZ toggle in the NDI media sender, which can disable PTZ control for all actors using that sender.

Minimum and maximum limits can be enabled and set for the pan, tilt, and field of view (zoom) if the minimum and maximum values are the same, which effectively locks that movement. The directions in which pan and tilt move can also be inverted.

For focus control to have a visible effect, the Capture Source for the viewport capture component should be set to a Final Color mode (the application of depth of field is a post-process). Enabling auto-focus sets the depth of field to zero, which Unreal Engine interprets as the depth of field being disabled.

The PTZ controller can have several Presets. Keep in mind that PTZ controls such as those exposed through the NDI® Studio Monitor application are limited to nine presets. Presets can be pre-defined or set and modified by stream receivers through PTZ controls.

When switching between presets, the PTZ controller can be set to smoothly move the camera between the current state and other presets. The Preset Recall Easing determines how many seconds it takes to complete the transition. If set to zero, the switch is done instantaneously. When used with an NDI Broadcast Actor, the PTZ Controller usually uses the actor's media sender asset to get PTZ commands. This can be overridden by explicitly specifying an NDI Media Sender asset in the PTZ Controller.

NDI PTZ Control on other actors

The NDI PTZ Controller component can be attached to actors other than the NDI Broadcast Actor. When doing so, a media sender asset should be specified in the PTZ component. Otherwise, the controller will not know where to receive PTZ commands. Only pan and tilt transformations will be applied to the actor. Zoom and focus will be ignored.

Last updated 2 months ago

Was this helpful?