System requirements

What hardware is needed to run Video Transport.

System requirements for VT apps

The following hardware is suggested to run VT Publisher, VT Receiver, VT Server and VT Guest:

  • OS Microsoft Windows 10, Windows 11, or Windows Server 2016-2019

  • Intel i7-4770 CPU or better

  • 16 GB of RAM

  • .NET Framework v. 4.6.1 or newer

GPU suggestions for VT Publisher

Unlike VT Receiver (receives feeds and decodes them) and VT Guest (receives one feed and encodes one feed), VT Publisher is capable of encoding and sending multiple feeds. Hence, it needs more encoding power.

We recommend Nvidia hardware for optimal performance, for example:

  • NVIDIA GeForce GTX 1070 – for up to 2 channels of Full HD 60p video with a bitrate of 30 MB/s

  • NVIDIA Quadro M2000 – for up to 4 channels of Full HD 60p video with bitrate 10 MB/s

  • NVIDIA Quadro P4000 – for up to 8 channels of Full HD 60p video with a bitrate of 10 MB/s

  • NVIDIA GeForce GTX 1060 – for 1 channel of UHD 25p video with a bitrate of 40 MB/s

Here's Nvidia's comparison guide that will help you choose the right model.

I/O hardware

Video Transport is compatible with hardware by Blackmagic Design, AJA, Magewell and Bluefish444.

Bandwidth

Our technology currently supports up to 50 Mbps.

Quality

Minimum

Recommended

1080i/720p

10 Mbps

20 Mbps

1080p

15 Mbps

30 Mbps

4K

20 Mbps

40 Mbps

If the adaptive bit rate features are enabled, video quality may dynamically decrease if bandwidth is not available.

Allocating hardware

The hardware you'll need to properly use Video Transport depends on what will be the function of each machine in your scenario. It's best to allocate separate machines for sending and receiving functions:

  1. Sending (or publishing) machines will be running VT Publisher and need to have sufficient encoding power.

  2. Receiving machines will be running VT Receiver – these can be lighter machines since their job will be only to decode the incoming streams.

Make sure that you pay close attention to the specifications of the send machines since this is a common reason for streaming issues.

The following codecs are used in Video Transport:

  1. H.265 – used with the "SRT-HEVC" streaming mode (requires an Nvidia GPU card);

  2. H.264 – used with "WebRTC-AVC" and "SRT-AVC" streaming modes;

  3. VP9 – used with WebRTC when used by web applications.

We recommend using GPU encoders and decoders because the CPU can't provide the same quality of the video and often does not have sufficient power. There are two possible limitations to keep in mind when selecting the right Nvidia GPU product:

  1. The primary limitation of GPU encoding is the count of the simultaneous encoding processes. Most GPU cards have a limitation on 3 encoding processes. We recommend using the Quadro (starting with P2000), Grid, or Tesla series in scenarios when you want to send more than three streams from one machine.

  2. Another limitation is codec support – for example, the Quadro M2000 does not support H.265. In this case, if the "SRT-HEVC" mode is selected in VT, it will automatically switch to GPU-powered H.264 encoding.

Here's the Nvidia guide that shows how many encoding processes each Nvidia model supports: find the "Max # of concurrent sessions" and check whether it supports both H.264 and H.265, or just H.264. For example, you will find out that all GeForce GTX models support up to 3 simultaneous encoding processes, but not all models support H.265:

Alternatively, you may find out that the Quadro P1000 model does support H.265 (can be used with the "SRT-HEVC" setting), but is still limited to 3 concurrent encoding sessions – while some other models do not restrict the number of sessions.

GPU hardware suggestions

Here are some test results (still work in progress) for the most common configurations.

Number of streams

1

2

4

Processor

HD 720p60, 1080p30 (5 Mbps)

CPU: 5% SDI, 5% NDI. Gigabyte GeForce RTX 2060 OC R2.0 [GV-N2060OC-6GD Rev2.0]

CPU: 9% (SDI + NDI). Gigabyte GeForce RTX 2060 OC R2.0 [GV-N2060OC-6GD Rev2.0]

CPU: 20% (SDI, 2 NDI). Gigabyte GeForce RTX 2060 OC R2.0 [GV-N2060OC-6GD Rev2.0]

AMD Ryzen 9 3900X 12-Core Processor 3.79 GHz

HD 1080p60 (7,5 Mbps)

CPU: 6% SDI, 6% NDI. Gigabyte GeForce RTX 2060 OC R2.0 [GV-N2060OC-6GD Rev2.0]

CPU: 11% (SDI + NDI). Gigabyte GeForce RTX 2060 OC R2.0 [GV-N2060OC-6GD Rev2.0]

CPU: 29% (SDI, 2 NDI). Gigabyte GeForce RTX 2060 OC R2.0 [GV-N2060OC-6GD Rev2.0]

AMD Ryzen 9 3900X 12-Core Processor 3.79 GHz

4K UHD 2160p30 (20 Mbps)

CPU: 6% SDI, 8% NDI. Gigabyte GeForce RTX 2060 OC R2.0 [GV-N2060OC-6GD Rev2.0]

CPU: 20% (NDI + SDI). Gigabyte GeForce RTX 2060 OC R2.0 [GV-N2060OC-6GD Rev2.0]

CPU: 37% (SDI, 2 NDI). Gigabyte GeForce RTX 2060 OC R2.0 [GV-N2060OC-6GD Rev2.0]

AMD Ryzen 9 3900X 12-Core Processor 3.79 GHz

4K UHD 2160p60 (20 Mbps)

12 % SDI, 15% NDI. Gigabyte GeForce RTX 2060 OC R2.0 [GV-N2060OC-6GD Rev2.0]

25% (SDI + NDI). Gigabyte GeForce RTX 2060 OC R2.0 [GV-N2060OC-6GD Rev2.0]

CPU: 35% (SDI, 2 NDI). Gigabyte GeForce RTX 2060 OC R2.0 [GV-N2060OC-6GD Rev2.0]

AMD Ryzen 9 3900X 12-Core Processor 3.79 GHz

AWS deployment

The most suitable AWS EC2 instance for VT deployment is the G4 series: https://aws.amazon.com/ec2/instance-types/g4/

VT does not utilize multiple GPU resources in the current version, so Single GPU VMs are preferable. Starting from g4dn.xlarge all the way up to g4dn.16xlarge depending on the anticipated load.

On-prem deployment

If you are deploying Video Transport on your own infrastructure, you will also need to run instances of the signaling and TURN servers. These can be run on your own servers or in a cloud (such as AWS EC2).

The signaling server establishes a handshake between the endpoints and allows them to establish a direct connection. This server does not need much performance. An HTTP server + a "light" backend i7 should be enough.

The TURN server acts as a proxy (re-streamer) in case the endpoints can't establish a direct connection (due to firewall settings or network configuration). The load on the TURN server depends on the number of streams it will be re-sending.

The TURN server requires sufficient CPU and RAM for operation. For example, an i9 CPU with 32 GB RAM can handle up to 100 connections via TURN. Also, it is very important that the TURN server has enough network bandwidth.

TURN bandwidth = peerBitrate * peerCount + 5 Mbit for service messages.

For OS, we recommend running Ubuntu, a Debian-based Linux build (but other versions of Linux will also work).

Last updated