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:
Sending (or publishing) machines will be running VT Publisher and need to have sufficient encoding power.
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:
H.265 – used with the "SRT-HEVC" streaming mode (requires an Nvidia GPU card);
H.264 – used with "WebRTC-AVC" and "SRT-AVC" streaming modes;
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:
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.
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