Differences between "Virtual Output" and "Direct Link"

That’s a common misinterpretation (even amongst our team) of 2 different features. We often have the question of wether the Direct link will work without Virtual Output. So here is the explanation of the differences between the 2.


Virtual Output

 A "Virtual output" is something that you can use as a "virtual playback device" in any of our playout applications when you don’t have a physical output.

Direct Link

The “Direct Link” is what allows one of our application running on the same Mac to access the frames that are outputted by one of our playout application

When do you need each?

So basically:
  • you would need a virtual output, without using the direct link feature, only for testing purposes.
  • you can use the direct link, even when using a "real" video output. So if you use an AJA, Decklink, Deltacast, or NDI output, the direct link would still work.
You would use the virtual output together with the direct link in cases such as:
  • you use a Softron playout application together with the Softron Streaming Pack to stream to the web, so you don't need a physical video output
  • you use the direct link between a Softron playout application and a Live input of OnTheAir CG Server. In this case, it's OnTheAir CG Server that will output to the video card that you have, and you don't want to have to use a real video output for OnTheAir Video.


The virtual output and direct link features are available for all our recent playout applications (some older versions of OnTheAir Video Express or M|Replay did not have the feature). And all our ingest application can connect to them using the direct link. 
There are just a few requirements:
  • for an ingest application to see the direct link sources, the playout application must start playing. If playback has not started, the engine is not started and thus there is no direct link enabled.
  • the ingest and playback applications must run on the same computer.
  • in M|Replay, you can create virtual outputs simply by clicking on + in the list of outputs. The direct link feature must be enabled for all outputs that you want to use it with. For this, right click on any output and select "Enable Direct Link".

Example of use

For web streaming only, with no "real" video output.

If you are streaming to the web and need animated graphics, you could use the following workflow.
As you can see there is no real device:
  • in OnTheAir Video, select the "Virtual Output" in the playback settings
  • in OnTheAir CG Server, create a "Live" item  to use the signal from OnTheAir Video through the direct link
  • in OnTheAir CG Server, select the "Virtual Output" in the playback settings
  • and finally choose "OnTheAir CG Server" as the source in MovieStreamer HLS. The signal will be sent through the direct link
As you can see it is a combination of virtual output and direct link that allows you to do that. 

With "real" video outputs 

You can use the Direct Link with a physical device (AJA, Blackmagic-Design, M|Family) or with a Virtual Output. Thus it is completely independent from the Virtual output. This means that in the example above, instead of any of the Virtual output, you could have used a real video output. If you use real video outputs for everything, you could have the following workflow:






Have more questions? Submit a request