In this Quick Start guide, we walk through the process of setting up an Unreal Engine Project to work with a professional video card from AJA Video Systems. At the end of this guide:
Feb 07, 2019 Long story short - I'm trying to get my AJA KONA LHi capture card working with the latest version of OBS-studio for switching/streaming. The PC here runs Windows Server 2019, and has all the AJA drivers and DirectShow filters installed. Also not sure if this would be relevant, but on this same.
KONA 4 also supports AJA Raw capture at up to 120 fps via 4 3G-SDI connections. Create beautiful and detailed slow motion with an engaging cinematic feel via AJA Control Room. High Frame Rate support KONA 4 has the power to support 4K High Frame Rate (HFR) at 50p and 60p for the most demanding 4K and UHD workflows. . Added KONA 4 drivers. Added AJA Control Room. Fixed the ASIO audio driver. Updated KONA manual. Fixed problem with bad 4K/UHD YUV output on Io 4K. Fixed problem where RP188 output didn’t work on Io 4K. Fixed issue where Io XT could have +24 dBu selected for analog audio output in the AJA Control Panel.
you'll have video input from your AJA card playing inside your Unreal Engine Project.
you'll be able to capture camera viewpoints both from the Editor and from your runtime application, and send them out to an SDI port on your AJA card.
you'll know where to go when you want to set up more advanced adjustments to your video inputs, such as correcting lens deformation and applying chroma-keying effects.
For a working example that shows many of the elements described below put into practice, see the Virtual Studio showcase, available on the Learn tab of the Epic Games Launcher.
Prerequisites:
Make sure that you have a supported card from AJA Video Systems, and that you've installed the necessary drivers and software. For details, see the AJA Media Reference page.
Make sure that your card is working correctly, and that you have some video input feeding in to at least one of the card's SDI ports.
Open an Unreal Engine Project that you want to integrate with your video feeds. This page shows the steps in the Third Person Blueprint template, but the same steps will work equally well in any Project.
The AJA Media components used in this guide are built on top of the Media Framework , and we'll use Blueprints to script the video capturing process at runtime. Some prior knowledge of these topics is recommended but not required.
1 - Set Up the Project
Before you can get video input from your AJA card into your Unreal Engine Level, and send output from the Unreal Engine through one of your AJA card's SDI ports, you'll need to do some basic setup to enable the AJA Media Player Plugin in your Project.
If you started your Unreal Engine Project from one of the Templates in the Film, Television, and Live Events category, the necessary plugins may already be enabled for you. If not, follow the instructions below to enable them.
Steps
Open the Project that you want to use with AJA video I/O in the Unreal Editor.
From the main menu, select Edit > Plugins.
In the Plugins window, find the AJA Media Player plugin under the Media Players category. Check its Enabled checkbox.
Find the Media Framework Utilities Plugin under the Media category. Check its Enabled checkbox, if it's not already checked.
Click Restart Now to restart the Unreal Editor and reopen your Project.
End Result
Your Project is now ready to accept video from the AJA card, and to send rendered output to the card. In the next sections, we'll hook it up and start playing video in and out.
2 - Rendering Video Input in the Unreal Engine
In this process, we'll make video input from the AJA card visible in the current Level in the Unreal Editor. This process uses a Media Bundle: a kind of Asset that packages together several different types of Assets involved in the Media Framework, and that offers you control over some advanced features like lens deformation, chroma-keying, color correction, and more.
Steps
In your Content Browser, expand the Sources panel (1). Right-click, and choose New Folder from the context menu (2).
Rename your new folder AJA.Open your new folder, right-click in the Content Browser and choose Media > Media Bundle.
Your new Asset's name is automatically selected in the Content Browser, so you can give it a descriptive name:
Type a new name, like AjaMediaBundle, and press Enter. A new folder of Media Framework Assets is automatically created next to your Media Bundle, named with the suffix _InnerAssets.
Save your new Assets by clicking the Save All button in the Content Browser.
Double-click your new Media Bundle to edit its properties. The Media Bundle is capable of playing video from any kind of media source the Engine supports, so you'll need to tell it that you want to get the video from your AJA card.
In the Media Source property, select Aja Media Source from the drop-down list:Once you've identified the type of Media Source you want the Media Bundle to handle, you can then set up any configuration properties offered by that type of source.
The most important thing to set here for the Aja Media Source is the Configuration setting, to make sure that the bundle is set up to capture video from the right device and input port, using the same resolution and frame rate as the actual video feed. Click the arrow to open the settings submenu, select the options that match your setup, then click Apply in the submenu.
The options you see may vary depending on the devices you have installed. For details on all of the properties you can set for an AJA Media Source, see the AJA Media Reference page.If you want to apply any compensation to the incoming video to account for lens distortion, you can set up the physical properties of the lens in the Lens Parameters section.
These Lens Parameters just set up the physical properties of the lens. You'll actually activate the lens compensation later, when you edit the Material Instance used by the Media Bundle.
Save your Media Bundle when you're done setting up its properties, and return to the AJA folder in the Content Browser.Drag your AjaMediaBundle Asset from the Content Browser into the Level Viewport.
You'll see a new plane appear, showing the video currently being played over the port configured for your Media Bundle. Use the transform tools in the Viewport toolbar to move, rotate, and resize it.
If your Media Bundle doesn't start playing automatically, select it, then click the Media Bundle > Request Play Media button in the Details panel.Now, we'll see how to apply keying and compositing effects to the video stream.
Back in the Media Bundle Editor, click the Open Material Editor button in the Toolbar to edit the Material Instance that this Media Bundle uses to draw its incoming video feed on to an object in the Level.This Material Instance is saved inside the AjaMediaBundle_InnerAssets folder that was created automatically with your Media Bundle.
In the Material Instance Editor, you'll see a number of properties exposed for you to configure keying, cropping, and color correction, and to activate the correction for the lens distortion that you set up in the Media Bundle.
While you adjust the settings in the Material Instance Editor, you can see the effect of your changes on the video feed playing back in the main Level Viewport.You may find it more convenient to see the effects of the changes you make in the preview panel of the Material Instance Editor instead. To do this, temporarily enable the IsValid setting, and set its value to
1.0
.
Click the arrow at the top left of the viewport toolbar, and enable the Realtime option in the menu.
You'll be able to judge the effect of your changes more easily by changing the preview mesh to a plane or a cube. Use the controls at the bottom of the viewport:
When you're done, return the IsValid setting to its previous value.When you're done changing the Material Instance properties, click the Save button in the Toolbar.
End Result
At this point, you should have video playing over an SDI port showing up inside your Unreal Engine Level, and you should understand where to set up more advanced features like lens deformation and chroma-keying.
If you're already familiar with the Media Framework, another way you could get video into your Level is to create a new AjaMediaSource Asset in your Project, and set it up with the same source properties you set up inside the Media Bundle in the procedure above. Then, create your own MediaPlayer and MediaTexture Assets to handle the playback of that source in your Level. For details, see the Media Framework documentation. However, we recommend using the Media Bundle, as shown above, to get the best balance between ease of use and professional quality video features.
3 - Output Captures from the Unreal Editor
In this process, you'll set up an AJA Media Output object, and use the Media Captures panel in the Unreal Editor to output the view from selected cameras in the Level to your AJA card.
Steps
Right-click in the Content Browser, and select Media > Aja Media Output.
Name your new Asset AjaMediaOutput.Double-click your new Asset to open it up for editing. Just like when you created your Aja Media Source, you have to set up the Configuration property to control the properties of the video feed that the Unreal Engine sends to your AJA card. Click the arrow to open the submenu, select the options that match your video setup, then click Apply in the submenu.
For details on all of the properties you can set in the AJA Media Output, see the AJA Media Reference page.Save and close your Media Output when you're done.Now we'll place two cameras in the Level, to give us viewpoints for the output we'll send to the AJA card. In the Place Actors panel, open the Cinematic tab, and drag two instances of the Cine Camera Actor into the viewport.
Place the cameras where you want them in the Level, so that they're showing different viewpoints on the scene.Piloting the camera is a fast and easy way to set its viewpoint exactly the way you want it. See Pilot Actors in the Viewport .
From the main menu, choose Window > Media Capture. You'll use the Media Capture window to control when the Editor sends output to your AJA port, and what camera it should use in the Level.
Under the Media Viewport Capture area, find the Viewport Captures control. Click the + button to add a new capture to this list.
Expand the new entry. First, we'll add the cameras that we want to capture from. In the Locked Camera Actors control, click the + button to add a new entry.
Then, use the drop-down list to choose one of the cameras you placed in the Level.
Repeat the same steps to add the other camera to the list.Now, set up the output that you want to capture these cameras to. Set the Media Output control to point to the new AJA Media Output Asset that you created above. You can do this by selecting it in the drop-down list, or drag your AJA Media Output Asset from the Content Browser and drop it into this slot.
At the top of the window, click the Capture button.
You'll see a new frame at the bottom of the window that shows a preview of the output being sent to the AJA card. If you have this port hooked up to another downstream device, you should start to see the output coming through.Each camera that you added to the Locked Camera Actors list for this viewport capture is represented by a corresponding button above the video preview. Click the buttons to switch the capture back and forth between the two views.
End Result
Now you've set up the Unreal Editor to stream output from cameras in your Level to a port on your AJA card. Next, we'll see how to use Blueprint scripting to do the same thing in a running Unreal Engine Project.
4 - Output Captures at Runtime
The Media Capture window that you used in the last section is a practical and easy way to send captures to the AJA card. However, it only works inside the Unreal Editor. To do the same thing when you're running your Project as a standalone application, you'll need to use the Blueprint API provided by the Media Output. In this procedure, we'll set up a simple toggle switch in the Level Blueprint that starts and stops capturing when the player presses a key on the keyboard.
The Virtual Studio showcase, available on the Learn tab of the Epic Games Launcher, contains a UMG interface widget that demonstrates how you could control capturing from an on-screen user interface.
Steps
From the main toolbar in the Unreal Editor, choose Blueprints > Open Level Blueprint.
We'll need to start from the AJA Media Output Asset that you've created, where you identify the port you want to output to. In the Variables list in the My Blueprint panel, click the + button to add a new variable.
In the Details panel, set the Variable Name to AjaMediaOutput, and use the Variable Type drop-down list to make it an Aja Media Output Object Reference.
Enable the Instance Editable setting (1), and compile the Blueprint. Then, in the Default Value section, set the variable to point to the AJA Media Output Asset that you created in your Content Browser (2).
Press Ctrl, and drag the AjaMediaOutput from the Variables list in the My Blueprint panel into the Event Graph.
Click and drag from the output port of the AjaMediaOutput variable node, and choose Media > Output > Create Media Capture.
Hook up your nodes to the Event BeginPlay node as shown below:
This creates a new Media Capture object from your Aja Media Output. The Media Capture offers two main Blueprint functions that we'll use to control the capturing: Capture Active Scene Viewport and Stop Capture.First, we'll save the new Media Capture object into its own variable, so we can get access to it again elsewhere. Click and drag from the output port of the Create Media Capture node, and choose Promote to Variable.
Rename the new variable MediaCapture in the Variables list in the My Blueprint panel.It's important to save the Media Capture to a variable here. If you don't, the Unreal Engine's garbage collector may destroy it automatically before you're done with it.
Press Ctrl and drag the MediaCapture variable into the Event Graph.
Click and drag from the output port of the MediaCapture variable node, and choose Media > Output > Capture Active Scene Viewport. Do it again, and choose Media > Output > Stop Capture.
Right-click in the Event Graph and choose Input > Keyboard Events > P. Click and drag from the Pressed output of the P node and choose Flow Control > FlipFlop.
Connect the A output of the FlipFlop node to the input event of the Capture Active Scene Viewport node, and connect the B output of the FlipFlop node to the input event of the Stop Capture node, as shown below:
Compile and save the Blueprint, and try playing your Project. Click the arrow next to the Play button in the main Toolbar, and choose either the New Editor Window (PIE) or Standalone Game option.
Video capture from the Editor will only work when you play your Project in a New Editor Window (PIE) or a Standalone Game. It won't work in the default Selected Viewport mode, or in Simulate mode.
In addition, the viewport resolution of your Project (that is, the size of the rendered image the Unreal Engine generates each frame) must match the output resolution set in the active Media Profile, so that it will be the right size for the output video feed.After your project starts up, you should be able to press the P button on your keyboard to toggle sending the output from the Engine to the AJA card.
End Result
At this point, you should have a basic idea of how to work with Aja Media Sources, Media Bundles, and the Media Capture system, and you should understand how all of these elements work together to get professional video in and out of the Unreal Engine.
On Your Own
Now that you've seen the basics of how to get a new Project exchanging video input and output with an AJA card, you can continue learning on your own:
Explore the in-engine keying solution in the Material Instance created by your Media Bundle. Try passing some green-screen video into your card's input port, and use the keying controls in the Material Instance to remove the background.
Explore the Virtual Studio showcase to see what it adds to this basic setup, like its on-screen UI that switches cameras and controls video capture at runtime.
- 1AJA Video
- 1.2Connections
- 1.5Driver / Firmware
Overview
From Release : | 2014.2 |
Digital Vision Nucoda, Phoenix and Loki support the AJA Kona 3G and Kona 4 video boards.
Support :
- 2014.2 - monitoring only
- 2015.2 - monitoring and layoff
- 2016.1 - monitoring, layoff and capture
We support AJA models :
- Kona 3G - PCIe x4
- Kona 4 - PCIe x8
See also :
If you experience problems setting up video modes or see unexpected output, check the application console for useful information.
Connections
The basic I/O connections are shown below. Further detail can be found in the AJA documentation.
SDI Monitoring output
The default AJA connections are two inputs (1,2) and two outputs (3,4).
For standard formats (SD,HD) we use the two output ports only (3,4). For 4K and UHD monitoring requirements, we use all four ports :
SD / HD formats : | SDI 3 + SDI 4 |
4K / UHD formats : | SDI 1 + SDI 2 + SDI 3 + SDI 4 |
Stereo | Left eye = SDI 3 Right eye = SDI 4 RGB mode in stereo needs 3G (level A or B) connection. |
HDMI Output
- The Kona 3G supports 2K over HDMI
- The Kona 4 supports 4K over HDMI
- From version 2015.2, there is an option to downscale 4K to 2K for output via HDMI. This is for users with HDMI displays that do not support 4K. Kona 4 Only
- From version 2017.1, HDR output over HDMI (as defined by the HDMI 2.0a spec) is supported. Kona 4 Only
- From version 2018.2, HDMI is always UHD/4K in 2Si Mode - in Quadrant mode HDMI is always HD
- Stereo over HDMI is not supported (left eye output only)
UHD and 4K
UHD and 4K modes are output over all four SDI ports as quad segments :
Changes in Release 2018.2 (forthcoming) :
There are now two mapping modes for UHD/4K, this specifies how the signal is output from the Kona 4
- 2Si -Signal Interleaved
- For RGB444 10-Bit all four SDI ports are used (RGB444 12 bit is not supported in 2Si)
- For YUV422 10-Bit signals only SDI Ports 3 and 4 are used as outputs
- HDMI in 2Si mapping is only available in UHD/4K
- Quadrant Mode
- Supports all UHD/4K modes using all four SDI Ports
- RGB444 12-Bit is supported
- HDMI in Quadrant mode will always be HD
12 Bit Modes
Support :
- 2014.2 - Support 12 bit output in dual-link mode and it is not available for 4K or stereo.
- 2015.1 - as 2014.2
- 2015.2 - RGB 12-bit output is available via 3G level B-DL as well as dual-link and is thus supported for stereo and 4K content.
- 2017.1 - RGB 12-bit output is available via 3G level A as well as B-DL. Kona 4 Only
- 2018.2 - RGB 12-bit output is available only in Quadrant transport mode - not 2Si Kona 4 Only
Audio
Audio is embedded in SDI and HDMI outputs as well as the AJA AES/EBU outputs.
Up to the maximum of 8 channels supported by the Digital Vision applications.
Timecodes
LTC and VITC timecodes are embedded in SDI output and LTC timecode is also output via the dedicated LTC output.
Driver / Firmware
See the Drivers page for details on AJA Driver and Firmware versions.
The Digital Vision application bundles the tested and supported AJA driver installer.
The AJA installer runs when you select :
- Install AJA Kona video driver
in the Digital Vision application install options.
You may also be prompted to update the card firmware. You should proceed with this update.
If you already have an AJA driver installed, uninstall and reboot before upgrading the driver.
If you need to roll-back the driver, you will also need to uninstall and reboot before downgrading.
Restart your system to complete the installation.
Check Installation
Once restarted, check the installation.
AJA have a package version and a driver version (which may be different). See the AJA Drivers page for details of packages and versions installed.
Driver
Check that the AJA driver has been updated :
- My Computer / Right-Click : Device Manager
- Sound, video and game controllers
- Select the AJA video device, right-click : Properties
- Driver Version
- Driver tab
For driver version, see the AJA Drivers page.
Firmware
Check that you are using the right firmware mode and change if necessary.
Drivers Aja Kona 4 Sdi Io Test
- Open the AJA Control Panel
- Select the Firmware tab (on left)
- If you need to use 4K modes, make sure you select the 4K Mode :
Drivers Aja Kona 4 Sdi Io Login
Implementation
For more detail on the AJA Video implementation, see :