1 SRT introduction
SRT (Secure Reliable Transport) is an open source, free and flexible application specification. It is a transmission technology that can transmit data streams in a complex network environment in real time. It uses the UDP protocol at the transport layer, although the UDP protocol is an unreliable transmission protocol, with the powerful data recovery capability of SRT, coupled with the fast speed and low overhead of the UDP protocol, finally make SRT safe, stable and fast.
2 SRT application
2.1 Point-to-point one-way transmission and video interaction
During the transmission of audio and video streams from the SRT source device (shown as below
encoder) to the SRT target device (such as the below decoder), the SRT will detect and adapt to the changing network state between the two devices in real time, resist the bandwidth jitter that caused by network congestion. With its powerful error recovery mechanism, it can minimize the possibility of network packet loss. At the same time, SRT can also perform AES encryption to ensure data security during transmission.
Typical SRT Transmission Method
2.2 Point-to-multipoint transmission
The encoder supports adding multiple SRT points to push directly to multiple target decoder addresses for point-to-multipoint transmission. People can also use a streaming media gateway to distribute the video stream sent by one encoder to multiple decoders. The streaming media gateway is as the central node. The video stream sent by the encoder is received first, and then copied and distributed to multiple decoders for point-to-multipoint video transmission.
2.3 Video streaming protocol conversion and distribution
Media gateway devices (such as Kiloview D300plus/pro) can realize the mutual conversion of various video streaming protocols such as SRT, RTMP and RTSP. It copies, converts and distributes for each video stream, which greatly increases the compatibility of SRT system. It also enables various network flows such as local RTSP and RTMP to smoothly integrate into SRT system, improving the flexibility of video forwarding.
3 SRT configuration
1) Both encoder and decoder support all three SRT modes(caller,listener and rendezvous). You can choose the configuration as required.
2) Generally, we set the device with public IP address to listener mode. At the same time, we need to configure port forwarding for this device in router / firewall.The peer device needs to connect its public IP address and port.
3.1 Encoder SRT configuration
3.1.1 Click “Encoding & Stream”--“Encoding and Stream Settings”--“H.264 main stream”--“Add a
stream”. Choose “SRT-TS pushing”, click “OK” and add a SRT service.
3.1.2 Click for SRT configuration.
3.1.3 Fill in the pushing address and port, click “Save”. Then SRT pushing is working.
* Address: Set IP address of the receiver;
* Encryption mode: AES-128, AES-192, AES-256;
* Port: Set the listening port corresponding to the receiver;
* Advanced settings: show or hide advanced parameters;
* AES key: encryption AES key can be 10-32 letters or numbers combination;
* Handshake mode: The device set as CALLER mode will act as the caller of SRT session;
* Load size: Sending data packet size, it is optimal that the receiving port should equip with the same size. The default size is 1316, the optimal packet for the codec.
* Transport delay: Set it based on the performance of the current network, the delay value can be set on both the SRT source device and the SRT target device. The final SRT transmission delay will be the larger one of the two values. Default is 125ms;
* Bandwidth overhead: It is set as the percentage value based on network link quality. Using this value to multiply the total bitrate of the audio and video encoded by the encoder, this will get the occupied maximum bandwidth allowed by Bandwidth Overhead. This value plus the total of video and audio bitrate is the threshold of the current SRT transmission bandwidth, and also the maximum bandwidth that SRT stream can be used. From the perspective of "overhead", it is the extra "invalid" bandwidth to be used in addition to the media content required for transmission (which can be understood as the payload), but it is different from our common protocol overhead, TCP header overhead, UDP header overhead. The bandwidth overhead here is not a fixed 20~60 bytes TCP header overhead or 8 bytes UDP header overhead. It changes in real time according to the network conditions. The worse the network link conditions are, the more overhead needs for normal transmission. The range is 5%~100%, and the default overhead is 25%;
Note: Below format is the reference delay value under different packet loss. When RTT ＞ 20ms, it requires to increase the delay appropriately.
3.1.4 Save the settings, then a SRT-TS pushing address will be added. The encoder starts to initiate a handshake connection to the receiving port.
3.2 Decoder SRT configuration
3.2.1 Add a SRT source in the page of video decoder by “Media”--“Add Source”--“SRT”.
* Connection Mode: Listener;
* Name: You can name it freely, supporting letters and numbers combination;
* Bandwidth Overhead: Please set it according to encoder, the default one is 25%;
* Port: Configure a listening port which should be consistent with the sending port;
* Payload size: Please keep the same settings as the sender, the default one is 1316.
* Latency: please set it according to the configuration of the video encoder and the final delay will be the larger one between encoder and decoder. Default is 125ms;
* Encryption Mode/AES KEY: AES-128, AES-192 and AES-256. It should be the same as the sender;
3.2.2 Please drag the SRT source to the output window, and the decoder starts to listen for SRT requests, it will establish the SRT connection while receiving the right SRT“Call”， and decode then output video.
4 Media Gateway SRT protocol Conversion
Media Gateway (such as Kiloview D300Plus/Pro) can realize the video stream protocols conversion between SRT, RTMP, RTSP and some other protocols.
4.1 Other to SRT
If RTSP/TS-UDP/RTMP/HLS/SRT to SRT, that is, the decoder works as the “Caller” of SRT, and
connect with other SRT receivers.
1) Add a stream service in the publishing points and choose SRT, click “OK”.
2) Enter the SRT configuration page, the SRT parameters can refer to that of the encoder.
3) In “Choose a source”, you can choose the stream that you want to convert from the source, then the stream can be converted to SRT stream.
4.2 SRT to other
If SRT to RTSP/RTMP, it will convert or distribute the SRT received in local, and then convert it to RTSP or RTMP pushing.
1) In “Add Stream Services”, if adding type is RTMP or RTSP, it can convert SRT to RTSP/RTMP.
2) In “Choose a source”, please choose the SRT stream that you want to convert in the source, then it will be converted to RTSP/RTMP stream.