Secure Reliable Transport
   HOME

TheInfoList



OR:

Secure Reliable Transport (SRT) is an open source video transport protocol that utilises the UDP transport protocol.


Overview

SRT provides connection and control, reliable transmission similar to
TCP TCP may refer to: Science and technology * Transformer coupled plasma * Tool Center Point, see Robot end effector Computing * Transmission Control Protocol, a fundamental Internet standard * Telephony control protocol, a Bluetooth communication s ...
; however, it does so at the
application layer An application layer is an abstraction layer that specifies the shared communications protocols and Interface (computing), interface methods used by Host (network), hosts in a communications network. An ''application layer'' abstraction is speci ...
, using UDP protocol as an underlying transport layer. It supports packet recovery while maintaining low latency (default: 120 ms). SRT also supports encryption using
AES AES may refer to: Businesses and organizations Companies * AES Corporation, an American electricity company * AES Data, former owner of Daisy Systems Holland * AES Eletropaulo, a former Brazilian electricity company * AES Andes, formerly AES Gener ...
. The protocol was derived from the UDT project, which was designed for fast file transmission. It provided the reliability mechanism by utilising similar methods for connection, sequence numbers, acknowledgements and re-transmission of lost packets. It utilises selective and immediate (NAK-based) re-transmission. SRT added several features on top of that in order to support live streaming mode: # Controlled latency, with source time transmission (timestamp-based packet delivery) # Relaxed sender speed control # Conditional "too late" packet dropping (prevents head-of-line blocking caused by a lost packet that wasn't recovered on time) # Eager packet re-transmission (periodic NAK-report)


Packet header

SRT packets are created at the application layer and handed to the transport layer for delivery. Each unit of SRT media or control data created by an application begins with the SRT packet header.


Data packet

The fields in the header are as follows: * Packet Sequence Number (31 bits) * PP (2 bits): Packet Position Flag * O (1 bit): Order Flag * KK (2 bits): Key-based Encryption Flag * R (1 bit): Retransmitted Packet Flag * Message Number (26 bits) * Data (variable length)


Control packet

The fields in the header are as follows: * Control Type (15 bits): Control Packet Type * Subtype (16 bits) * Type-specific Information (32 bits) * Control Information Field (variable length)


History

Secure Reliable Transport is an open source video transport protocol developed originally by Haivision. According to ''SRT Alliance'', an organisation that promotes the technology, it optimises streaming performance. This helps minimise effects of jitter and bandwidth changes, while error-correction mechanisms help minimise packet loss. SRT supports end-to-end encryption with AES. When performing retransmissions, SRT only attempts to retransmit packets for a limited amount of time based on the latency as configured by the application. According to Marc Cymontkowski, the architect of SRT, in addition to sending MPEG transport streams over the public internet, it is also being used for IoT connectivity, metadata exchange, as a communication protocol, as well as for uncompressed data delivery. The reference implementation of the protocol was originally published under the Lesser General Public License version 2.1, but was relicensed under the
Mozilla Public License The Mozilla Public License (MPL) is a free and open-source weak copyleft license for most Mozilla Foundation software such as Firefox and Thunderbird The MPL license is developed and maintained by Mozilla, which seeks to balance the concerns ...
on 22 March 2018. SRT is supported in the
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
multimedia frameworks GStreamer, FFmpeg,
OBS Studio OBS Studio (also Open Broadcaster Software or OBS, for short) is a free, open-source, and cross-platform screencasting and streaming app. It is available for Windows, macOS, Linux distributions, and BSD The Berkeley Software Distributio ...
and in VLC free software media player. The
UDP-based Data Transfer Protocol UDP-based Data Transfer Protocol (UDT), is a high-performance data transfer protocol designed for transferring large volumetric datasets over high-speed wide area networks. Such settings are typically disadvantageous for the more common TCP proto ...
(UDT) project has been a base for the SRT project. Marc Cymontkowski
"Why We Created SRT and the Difference Between SRT and UDT"
The SRT C API is largely based in design on the UDT API SRT was designed for low-latency live video transmission. Haivision released the SRT protocol and reference implementation as open source at the 2017 NAB Show. In March 2020, an individual Internet-Draft, draft-sharabayko-mops-srt, was submitted for consideration to the Media OPerationS (MOPS) working group of the
Internet Engineering Task Force The Internet Engineering Task Force (IETF) is a standards organization for the Internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster or requirements and a ...
.


SRT Alliance

''SRT Alliance'' is an organisation whose members develop, use and promote the ''Secure Reliable Transport'' protocol and software based on it. The founding members of the alliance are
Haivision Haivision is a Canadian company focused on developing video streaming technology. Haivision is headquartered in Montreal and Chicago with about 250 employees and 7 offices around the world, including one in Rendsburg, Germany. Haivision has addi ...
and
Wowza Streaming Engine Wowza Streaming Engine (known as Wowza Media Server prior to version 4) is a unified streaming media server software developed by Wowza. The server is used for streaming of live and on-demand video, audio, and rich Internet applications over IP ...
.


Implementations

There's currently one available implementation, which is the open-source SRT library. The C language API is mainly based on the previous UDT API, with further changes as new features are added. The API is very similar to the one of TCP. SRT offers actually three working modes, of which the first two were derived from UDT: * File-stream mode: like
TCP TCP may refer to: Science and technology * Transformer coupled plasma * Tool Center Point, see Robot end effector Computing * Transmission Control Protocol, a fundamental Internet standard * Telephony control protocol, a Bluetooth communication s ...
* File-message mode: similar to SCTP protocol – sending blocks of data with clearly defined boundaries * Live mode: the data should be sent in small packets (usually up to 1316 bytes, if the transmitted stream is MPEG-TS) with already appropriate time intervals between them. The same single packets with the same time intervals between them are then delivered at the receiver side. The SRT library also offers these features: # Encryption using a pre-shared key. Encryption support was originally provided by OpenSSL, now also alternatively, Nettle (GNU TLS) or mbedTLS can be used. # SRT Access Control (aka "StreamID") can be used by applications to identify resources and use user-password access method while using the same service port number for multiple purposes. # The optional
Forward Error Correction In computing, telecommunication, information theory, and coding theory, an error correction code, sometimes error correcting code, (ECC) is used for controlling errors in data over unreliable or noisy communication channels. The central idea is ...
mechanism. Further and more detailed documentation can be found in th
Source code documentation


See also

* Reliable Internet Stream Transport, intended to fill a gap in the market for professional protocols as opposed to the 'prosumer' SRT.


Notes


References


External links


Official website
{{Digital audio and video protocols Application layer protocols Streaming Video software