Introduction
Secure Reliable Transport (SRT) is an open-source transport protocol widely used in various industry applications for video streaming with a technology stack designed for low latency video and media streaming across lossy networks like the public internet.
SRT ensures high-quality video delivery by accounting for packet loss, jitter, and fluctuating bandwidth while maintaining the integrity and quality of the video.
SRT also features end-to-end security with AES encryption, packet loss recovery, stream timing recovery, simplified firewall configuration, and network health monitoring.
Prerequisites
On the client side, firewall ports must be opened for Outgoing (Client → Tricaster Now) as summarized in the table of section Firewall Ports, under the One time Setup topic.
For detailed information, check the section Firewall and Network Best Practices.
SRT Connection Models
SRT establishes a direct, point-to-point communication between systems.
In this setup, only the two involved devices share the communication channel. There are different SRT operational modes: caller, listener, and rendezvous. Caller and listener are the most relevant. Here's how they work:
The SRT caller initiates the connection to a listener.
The SRT listener waits to receive a connection from a caller.
These modes do not define which system sends or receives the video feed, they facilitate the establishment of the connection.
Once connected, media flows in the predetermined direction. Think of it like a phone call: either party can initiate the call to share important information, it doesn't matter who calls or receives it.
This section explains the different setup procedures.
Tricaster Now Setup
SRT Input Settings
By Default, Tricaster Now already has 8 x SRT Inputs (listener mode) configured as inputs ready for use.
To configure SRT Input Settings
With the Tricaster Now session opened, choose any free input.
Click the gear icon and from the Input tab, select Source > Local > SRT Listen.
The created SRT Listen [9001] until SRT Listen [9008] ports display as shown below:In the example above, if you choose SRT Listen > Port 9001, for the caller (the device that will send the SRT feed to Tricaster Now) the configuration is set up by the Public IP and the port 9001: srt://<public ip>:9001.
Below is an example of an application used for sending SRT Streaming in caller mode:
Important
In Tricaster Launch Pad, remember to grant access to the Source IP where SRT feed is being transmitted, by clicking in ALLOWED IPs and inserting the Public IP as shown below:
To configure SRT Input Settings
For different ports automatically set up in Tricaster Now (9001 to 9008), proceed as explained below.
With the Tricaster Now session opened, choose any free Input and click the gear icon and from the Input tab, select Local > Add IP Source.
Click Add New IP Source and choose Webstream or File.
Set up the SRT Input as shown below (in this example, port 9020 is used):
Click OK.
Close Tricaster session and open it again.
Click the gear icon and from the Input tab, select Local > SRT Listen > [Name of the SRT input created, here SRT Custom].
To configure Additional SRT Settings
If you are using the Webstream or File SRT option, there are additional parameters that can be appended to the URL.
Enter these parameters after the main URL as shown above, each key/value pair is separated by an ‘&’.
passphrase=string: Encryption string from 10 to 79 characters. Not needed if pbkeylen is 0.
pbkeylen=bytes: Encryption key length. Values of 0, 16, 24 or 32 valid. Default value is 0.
peerlatency=milliseconds: Latency value that is established by the sender as minimum value for the receiver.
rcvlatency=milliseconds: Time that should elapse between the packet being sent and delivered. Value should be large enough to cover the RTT time and the time to send another packet if needed.
streamid=string: Required if a stream id is specified for the SRT stream.
hw_accel=false: GPU acceleration is typically used and preferred, in some rare instances the H.264/HEVC parameters might not be compatible with GPU decoding. While this detection is attempted to be automatic, there might be cases where manually disabling is required.
Important
Tricaster Now has set up opened ports from 9001 to 9020. Please only use these ports for SRT Inputs and Outputs configuration.
An SRT listener source can only receive a connection, when it is configured on a TriCaster Now input.
SRT Output Settings
SRT can be used along with any other streaming options found in TriCaster.
To configure SRT Output settings
On the menu bar, select Stream/Encode, click the gear icon.
At the top left corner of this panel a gear icon represents the number of the stream channel output of the TriCaster system.
Click the gear icon to open configuration of the encode settings.Configure the settings for your output stream and click OK.
If you need to send out different signals, it is possible to configure multiple encoders with individual encode settings for each.
To add a new SRT output stream, click New preset and in the list of streaming presets, choose an SRT Stream.
A menu appears with the settings you can configure.Connection Name is a location for the name of this SRT stream. Clicking the drop down menu presents two options.
- Host Local SRT Stream
- Output to Remote Server.
Changing this option reveals further parameters in the lower part of the panel:
Host Local SRT Stream
If you want to have the TriCaster Now generate the stream with another system initiating the call to it, this is the mode you want to use. The TriCaster always operates in the SRT listener mode.
To configure a host local SRT stream
There is one option to set, Server Port.
At the bottom of the panel, select Access URL.
This is the SRT URL that another system will use to access the TriCaster.Click Close to finish.
The IP address that appears in Access URL is the private IP of the TriCaster Now.
As soon as the system that is attempting to connect to the TriCaster Now is located on the Internet, you will no longer use this IP.
Instead, you need to replace the IP address with the Public IP of your Tricaster Now, as shown in Tricaster Now Launchpad.
Important
Remember that ports set up in Tricaster Now are from 9001 to 9020. Ports 9001 to 9008 are automatically set up as SRT inputs.
For production setup, use ports from 9009 to 9020 for SRT outputs.
To configure output to the remote server
If the TriCaster Now needs to generate the stream and initial the call to another device, then you want to use the Output to Remote Server option.
This has more settings to configure.
This mode allows two methods of operation to be selected using the Listener Mode checkbox.
With this box checked, the operation will be identical to Host Local SRT Stream.Output to Remote Server mode with the Listener Mode checkbox deselected is the more common option.
This makes the TriCaster Now operate in Caller mode, allowing the TriCaster to initiate the connection to another system.
In Server URL and Server Port, enter the Public IP address and port of the remote SRT system that you want to connect with.Click Close to finish.
Important
Remember that ports set up in Tricaster Now are from 9001 to 9020. Ports 9001 to 9008 are automatically set up as SRT inputs.
For production setup, use ports from 9009 to 9020 for SRT outputs.
Recommendations
CPU
SRT, while efficient in video streaming, is known to be CPU intensive. Typically, each SRT feed can consume about 6% of Tricaster Now CPU resources. To ensure optimal performance of Tricaster Now and to preserve its capability for other system functionalities, it is recommended to carefully balance the number of simultaneous SRT inputs and outputs.
A good practice is to limit these to a maximum of four at any given time. This balance is crucial for maintaining the overall efficiency and responsiveness of the Tricaster Now system.
Bandwidth
SRT bandwidth usage is crucial for maintaining video quality.
For optimal performance, it's recommended to allocate between 6 to 20Mbps of bandwidth per stream.
This range ensures high-quality video while keeping the network load manageable. Users should adjust the stream's quality to align with their available bandwidth. Remember, higher quality streams will naturally require more bandwidth and more CPU usage in Tricaster Now. Striking the right balance between video quality and bandwidth usage is key to achieving smooth and efficient streaming, without overwhelming your network resources
Check the section Recommended Configurations for detailed information.