AWS for M&E Blog

Getting started with SRT inputs in AWS Elemental Live

What is SRT?

Secure Reliable Transport (SRT) is an open source video transport protocol, originally developed by Haivision, that optimizes video streaming performance. It includes a technology package and protocol that connect two endpoints to deliver low latency video across unreliable networks. It is designed to deliver superior video quality over unreliable networks and survive minor network blips.

SRT protects against jitter, packet loss, and network bandwidth fluctuations, providing the viewers with the best quality video. It is a low latency protocol with configurable latency, which allows for optimization of latency and reliability.

SRT is a great protocol for customers who have to send video over a lossy network; for example, live streaming from a concert venue or convention center with limited connectivity. SRT can work over these lossy networks and still get a reliable, low latency stream out. SRT also provides end-to-end 128 bit, 192 bit, or 256 bit AES encryption to ensure that content is protected in transit.

SRT Inputs in AWS Elemental Live 2.21.1 and beyond

AWS Elemental Live 2.21.1 introduces SRT as a live input. AWS Elemental Live supports the listener-caller configuration of SRT. The SRT input in AWS Elemental Live acts as the caller, meaning that AWS Elemental Live initiates the handshake with the remote stream. The caller contacts the listener (remote source) over the specified port, and initiates a handshake via bidirectional UDP traffic. The firewall at both ends must have the specified port open in both incoming and outgoing directions for UDP traffic. The remote stream has to be in “listener” mode; think of it as a similar mechanism to RTMP Pull endpoint. The listener waits for the caller to initiate the handshake.

The Caller initiates the handshake to the listener; The listener completes the handshake before sending video to the caller.

The caller initiates the handshake to the listener; The listener completes the handshake before sending video to the caller

 

In AWS Elemental Live, enter the IP address and port of the source stream. Make sure that the chosen port is open on the firewall. The usage of ports between 5000 and 5100 is recommended. Since SRT uses bidirectional UDP communication on the port; make sure that the chosen port is open on both the sending and receiving end.

Set up an SRT workflow in AWS Elemental Live

Select Secure Reliable Transport from the input drop-down menu.

Select Secure Reliable Transport from the input drop-down menu.

 

Steps

  1. From the AWS Elemental Live choose Create a new Event
  2. In the input  drop-down menu select Secure Reliable Transport
  3. Provide the network location (required)
    a) The network location must start with srt:// and must include the port, for example srt://192.168.10.21:5000
  4. (Optional) provide the Ethernet interface on the AWS Elemental Live system on which the SRT stream is to be received, for example eth1.
    a) If an interface is not specified, the system routing table is used to select the interface.
  5. (Optional) specify a latency.
    a) If no explicit latency provided, the default is 120 milliseconds.
    b) Valid values are in the range of 120 through 15000 (that is 120 milliseconds to 15 seconds.)
    c) The latency value specified is the preferred latency on AWS Elemental Live and specifies the length of the SRT recovery window. This latency aids in packet recovery and matching the sender’s packet timing as closely as possible.
    d) Note: the SRT protocol chooses the maximum of the receiver’s and sender’s proposed latencies as the negotiated latency.
    e) Larger latencies allow for the possible recovery of more dropped packets; however, it also consumes more resources as those packets have to be cached by the SRT library
  6. (Optional) specify an encryption key length and passphrase.
    a) If the encryption key length is anything other than “None,” the passphrase is required
    b) If the encryption key length is “None,” the passphrase must be left blank
    c) The passphrase, if provided, must be between 10 and 72 characters.
  7. (Optional) specify the stream ID.
    a) The stream ID, if provided, can be up to 512 characters long.
    b) The stream ID is a free-form string that follows a format specified by the SRT sender; the stream ID on the sender and the receiver (AWS Elemental Live) must match each other exactly.

Getting started with SRT

We hope this how-to makes SRT fast and easy for you to set up. Utilizing SRT adds minimal latency to your video workflow, while adding the capability recover packets over a lossy or less than ideal networks. SRT streams can be sent securely through the use of encryption. SRT is open source and can be used without any additional licensing.

 

If you have questions, feedback, or would like to get involved in discussions with other community members, visit the AWS Developer Forums: Media Services.