Virtual Video Director software for vMix


  • Automatically switches cameras in vMix & Tricaster
  • Works with Windows audio devices, ASIO, NDI & Dante
  • User configured delays & second shots
  • Easy to use



Virtual Video Director

Virtual Video Director allows you to replace a human Director, it automatically cuts to the right camera for you based on a combination of audio triggers, fuzzy logic and Machine Learning. Virtual Video Director currently works with Tricaster, vMix and Panasonic PTZ cameras.

Virtual Video Director uses either a direct ASIO audio interface or NDI, allowing you to use your favorite audio capture devices or virtual sound sources such as Dante Virtual Sound Card. In NDI mode, it only receives the audio component and does not request any video frames, this allows for extremely low bandwidth and low CPU operation.

How does it work?

Virtual Video Director does not use threshold triggers that require you to set audio gains or mess around with any audio settings. Simply send it any audio channels at any audio level and it looks at each signal and performs a complex analysis to determine which camera to switch to, just like a human would. If multiple people talk at once or everyone stops talking, it can automatically switch to a wide shot.

If someone backs off a mic or speaks really quietly, it doesn’t matter, Virtual Video Director still detects the person talking and switches to that camera.

Virtual Video Director can be assigned a number of different personalities which determine how the video cuts look. In Grandpa mode, it has the reflexes of your 90 year old grandpa fast forwarding through the ads on his VHS. It will only switch cameras when it is absolutely sure someone is talking and will not switch when someone sneezes or coughs.
The pro personality allows slick cuts with a good balance between response and false positives.

In Crack Baby personality, it has hair trigger reflexes that will switch cameras on the slightest cue.

Virtual Video Director’s fuzzy logic introduces additional switching conditions akin with the way a human Director switches cameras. It keeps track of which channels are in use and during long periods of a single camera being active, can switch to another camera occasionally to capture the responses or expressions of the other talent. This gives the cuts a human feel to them. The fuzzy logic can be adjusted from occasional to more frequent unprompted cuts to suit your material.

Virtual Video Director has been designed to work with Tricaster and vMix. In vMix is also supports, fades, straight cuts (which fire vMix triggers) fades or Active Input changes (which don’t fire vMix triggers). It also currently supports Panasonic PTZ cameras. Additional video mixers and PTZ cameras will be added based on user requests.

Virtual Video Director can trigger three independent devices simultaneously. Cascading delay can also be added to the triggers for multi PTZ environments to allow one PTZ to move to a new position before triggering the second camera to move. This allows you to use only two PTZ cameras to do an unlimited number of camera positions with no movement in between cuts.

How do I set the audio thresholds for triggering

You don’t! The major advantage of Virtual Video Director is that it can work with any audio levels and constantly adjusts based on the current audio levels it is receiving.

Virtual Video Director does not trigger on a specific audio threshold, it looks at the relative difference between all the audio signals and selects the one it thinks is most likely to be a person talking.

Depending on the personality selected, it watches the audio over time using a proprietary ballistic algorithm to gauge the best channel. This makes it incredibly easy to setup and use as it does not need constant tweaking for different guests, voice levels or gain settings. It automatically adapts to whatever you throw at it just like a human Director does.

Radio Station / Podcast Solution

Radio station solution

Y-Split cables split each microphone so that one copy goes to the radio station mixing desk and one copy goes to an ASIO interface such as the Tascam US4x4. Phantom power should only be supplied by either the mixing desk or the ASIO interface, not both. The mixing desk operates as normally. Virtual Video Director has a copy of each microphone which is not affected by the volume levels or mute buttons on the mixing desk. When someone speaks into a microphone, Virtual Video Director sends a signal to vMix to switch to the camera in front of that microphone. vMix does not receive the audio from each individual microphone.

A second ASIO interface is used which receives the left and right audio mixes from the mixing desk and sends it to vMix to broadcast.

Why are two audio interfaces required? – Because two applications cannot share a single ASIO audio interface, a separate one is required for each application. This also means that Virtual Video Director can run on a separate computer to vMix.

Live Production Solution

Live production solution with DANTE

Y-Split cables are generally not required for live productions as tools such as Dante Virtual Soundcard or NDI can be used with the Dante interface commonly found on most high quality professional audio mixing desks and vision mixers. This simplifies the equipment required. In the example above, each audio sources is routed from the mixing desk to Virtual Video Director using Dante and the master mix is routed independently to vMix.

Live production solution with ndi

Using NDI further simplifies the setup as all audio inputs can be routed directly to the video mixer and then sent back out to Virtual Video Director as NDI sources. Virtual Video Director only requests the audio component of NDI so very little additional bandwidth is consumed.

live production solution with dante from the video mixer


Where a Video Mixer is equipped with Dante directly, audio can be sent from the Video Mixer to Virtual Video Director using Dante. You can choose between using Dante VIA or Dante Virtual Sound card depending on your setup.

Here’s a demonstration/tutorial from the developer