⭐ 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!
Enabling output sharing
In order to be able to send the rendering of the HeavyM output 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.
Note: find more info on the canvas and the output in this article.
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 a 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)