⭐ This article revolves around a Pro feature.
NDI™ (Network Device Interface) is a protocol that allows you to send and receives video frames between applications, in real time. Sounds familiar? Well yes, it is like Spout and Syphon, but the catch here is that is works over the network, so the communicating apps don't have to be on the same computer! The apps simply have to support NDI and the devices have to be connected to the same network (even over WIFI).
You'll be able to receive and display the feed of other applications in HeavyM and, the other way around, send the HeavyM output to another program (or even another HeavyM), either on the same device or not. The protocol is already included in HeavyM, you don't need to install anything.
Sending the HeavyM output to another app
Don't forget to check that both the sending and the receiving device are connected to the same network!
Sending the full canvas rendering via NDI
Enabling output sharing
In order to be able to send the rendering of the HeavyM canvas to another app, first activate output sharing in the menu Output → Enable NDI. That's all! Now you should see HeavyM available as an NDI source in the receiving app.
Setting up the output resolution
The output that is sent through NDI corresponds to the whole canvas zone, so its resolution depends on the size of your canvas. By default, it is set to 1920x1080 pixels.
If you want to change this, you need to go through the advanced output setup mode, from Output → Setup... or , and change the resolution indicated in the "Canvas Settings" section.
What is shared via this NDI Stream exactly?
The texture shared via NDI here is the rendering of the full canvas, plain and simple. It corresponds to what you see if you open a projection via Output -> Windowed for instance (but with a full canvas resolution).
In this case, it doesn't take into account the possible transformations applied in the Output Setup module (Warping, Edge-blending). If you need the output transformations to be taken into account in your NDI stream, then you should create an NDI stream as a Screen Destination instead (see next section).
Note: find more info on the canvas and the output in this article.
Sending an Output Screen via NDI
Creating an NDI Destination
In the Output Setup (Output → Setup... or ), select a Screen and select "New NDI Stream" as its Destination below.
This creates a new NDI stream that shares the texture of this Screen.
You can create one NDI stream for each Output Screen.
What is shared via this NDI Stream exactly?
The output rendering shared via an NDI Destination is the same texture that would be displayed if you assigned the Screen it is associated to to a regular display as a Destination.
This means that the Output Setup transformations like Warping and Edge-blending are applied in the NDI stream.
The resolution of the texture shared via NDI is thus the Resolution of the Screen, which you can customize in the settings of the Screen.
Receiving a texture from another app in HeavyM
Don't forget to check that both the sending and the receiving device are connected to the same network!
Enabling output sharing in the sender
To receive a feed from another app, you don't need to enable output sharing in HeavyM, but you might need to do it in the app that is sending it.
Please refer to your app's manual to check if it is compatible with NDI and see how to activate output sharing.
Selecting an NDI sender in HeavyM
To include an NDI stream in HeavyM, you first need to add a player shape, an NDI source in the Sources Bin, and connect them together. Then, in the settings of the source, select the available NDI feed you want.
From 2.7 and up, the active /
inactive status of the stream is saved, meaning that if it is not started before HeavyM, the stream selection is still preserved in the project and the stream will automatically start again when the origin source is turned back ON.
To learn more about all the possibilities of multimedia sources, check out the articles in the dedicated chapter of this guide, "Managing Multimedia Sources".
Tech stuff
- Audio is not supported via NDI In nor Out
- 8-bit RGBA is used for NDI Out
- All NDI In formats are supported (a faster GPU-accelerated conversion is performed for 8-bit UYVY)
Comments
0 comments
Please sign in to leave a comment.