SRT in vMix

Secure Reliable Transport is an open source video-transport-protocol. It optimizes streaming performance over unpredictable networks like the Internet by dynamically adapting to real-time network conditions. (The technical requirements for Internet connectivity are at the end of this manual)

Features

- Input and output support (send and receive) for the connection methods Caller, Listener and Rendezvous.
- Optional 256-bit encryption using PassPhrase.
- Hardware (GPU) accelerated encoding and decoding of HEVC or H264 video in up to 4K (if supported by existing hardware and operating system).
- Up to 8 channels of AAC audio.

Technical/System Requirements

- Windows 10 x64 or higher
- graphics card with support for HEVC and H264 encoding and decoding.
(NVIDIA Quadro P2000 or higher series recommended)
- If HEVC is used under Windows 10, the “HEVC Video Extensions” must be installed from the Microsoft Store. (1$)
- Only progressive video formats are supported. (Interlaced support is not available)
- vMix supports only HEVC or H264 video and AAC audio (AAC-LC) packed in a transport stream. Other codecs are not supported.

CAUTION: The older NVIDIA GeForce 9xx series or lower should not be used with SRT and is not supported.

Setting up an input stream

Add Input

To connect to an SRT source, select the Stream / SRT option and choose either SRT (Caller), SRT (Listener) or SRT (Rendezvous) from the Stream Type drop-down list.

The following settings are possible

Listener:

Listen for connections on the specified port on all network adapters of the computer. Hostname is ignored.

Caller:

Connect to the specified hostname (public IP) and port.

Rendezvous:

Connect to the specified hostname and port. The other side must also be set to Rendezvous, and an identical port number must be specified. This mode allows an automatic connection through most firewalls. In theory, this should also work via the Internet. But since most routers use PAT (PortAdressTranslation), this NEVER works in my experience. Within a network Rendezvous works fine, but there Caller/Listener works too.

Latency

Specify the latency of the connection in milliseconds to adapt to network congestion. The higher this value is, the better SRT can handle difficult network conditions. Typically, this value should be set to at least 4 times the target IP of the ping time. 20 ms would thus require a latency setting of at least 80 ms. This value must be set the same at both ends.

Decoder Delay

Some encoders may not send evenly distributed frames, also known as jitter. Encoders can also send audio long before or after the associated video frame. To compensate for this, a decoder delay can be configured to account for potential jitter on the encoder side. For example, if frames can arrive 100 ms apart, set the decoder delay here to at least 150.

Passphrase

Optionally specify a password to encrypt the connection. This password must be used by both sides to establish the connection. ATTENTION, the encryption needs bandwidth and computing power. If the connection is bad, do not use encryption if necessary. Without encryption, another SRT signal can be sent from another computer to the same IP/port, the image will then switch back and forth in the “latency” period. The password must be at least 10 characters and at most 72 characters long.

Stream ID

Optional stream ID, which may be required by your streaming provider/server to uniquely identify the stream.I am of the opinion that vMix does not evaluate the StreamID

Use Hardware Decoder

Use hardware coding, if available on the graphics card. NVIDIA GeForce cards (and some low-end Quadro cards) are limited to 2 simultaneous encodings per system. This includes the streaming and recording features in vMix, so when using these types of cards make sure that this checkbox is only checked in two places. (such as 1x Stream and 1x SRT). In general it is recommended to use NVidia Quadro graphics cards of the P or RTX generation. At least a Quadro P2200, better a Quadro RTX 4000 or higher.

MultiCorder Recordings

Because SRT is already compressed, the Multicorder SRT sources can only be used in Transport Stream (.ts format). All MultiCorder recordings of this input save the stream directly to a file without using the compression settings specified in the MultiCorder window.

Setting up an Output Stream

In vMix settings, go to the Outputs tab and click the gear icon next to the output channel you want to send.

The following settings appear:

Enable SRT

Check this box to enable SRT output.
Type, Latency, Passphrase, Stream ID, Use Hardware Decoder (see description above at the inputs)

Quality

Select one of the built-in compression profiles from the list or click on the gear icon to adjust the encoding settings.

Video Codec

Select either H264 or HEVC as the video compression method. Attention: some Android cell phones do not support HEVC /H265) encoding, no connection will be established with this setting (on the cell phone it shows connection, but vMix only shows a black image)

Video Bandwidth / Audio Bandwidth

Specify the bandwidth in bits per second for video and audio. Example 2000000 = 2mbps and 128000 = 128kbps. The audio bandwidth is the total bandwidth for all channels. Example for 8 channels: 384 = 48 kbps per channel.

Use Hardware Decoder

Use hardware coding, if available on the graphics card. NVIDIA GeForce cards (and some low-end Quadro cards) are limited to 2 simultaneous encodings per system. This includes the streaming and recording features in vMix, so when using these types of cards make sure that this checkbox is only checked in two places. (such as 1x Stream and 1x SRT). In general it is recommended to use NVidia Quadro graphics cards of the P or RTX generation. At least a Quadro P2200, better a Quadro RTX 4000 or higher.

Use Low Power Encoder

Some Intel graphics drivers support “VDENC”, a high performance, low power consumption encoder built into some CPUs. Check this box if you have such a graphics card (e.g. Intel HD630 graphics)

Audio Channels

Specify the audio source for this SRT stream. Maximum 8 audio channels are supported by AAC.

Resolution

Optionally, specify a resolution to which you want to downsample. Only progressive formats are supported.

Alpha Channel

This setting must be set to None, because a key signal is not supported by SRT