Features | Getting Started | Builds | Contribute | License | Examples | Releases | Sponsors | Security
SRT is an open source user-level protocol (over UDP) that provides reliability and security optimized for low latency live video streaming, as well as generic bulk data transfer. To accomplish this, SRT introduces control packet extensions, improved flow control, enhanced
congestion control and a mechanism for data encryption.
NOTE: The protocol was submitted to the IETF as a draft standard on 2020-03-09.
Access Control
Bonding
Encryption
Handshake
Live Streaming
Packet Filtering & FEC
Socket Groups
SRT Multiplex
What is SRT?
Secure, Reliable Transport, known simply as SRT, is a protocol that allows unreliable networks like the internet to be used for reliable, encrypted, live video contribution. Created by Haivision and now an open-source technology with an IETF draft spec, the alliance of SRT users continues to grow as the technology continues to develop and add features.
SRT is a transport technology that optimizes transmission across unpredictable networks, such as the Internet. It can be applied to contribution and distribution endpoints as part of a video stream workflow to deliver the best quality and lowest latency video at all times. As audio/video packets are streamed from a source to a destination, SRT detects and adapts to the real-time network conditions between the two endpoints. SRT helps compensate for jitter and bandwidth fluctuations due to congestion over noisy networks. Its error recovery mechanism minimizes the packet loss typical of Internet connections. And SRT supports AES encryption for end-to-end security.
SRT implements AES encryption to protect the payload of the media streams, and offers various error recovery mechanisms for minimizing the packet loss that is typical of Internet connections, of which Automatic Repeat reQuest (ARQ) is the primary method. With ARQ, when a receiver detects that a packet is missing it sends an alert to the sender requesting retransmission of this missing packet. Forward Error Correction (FEC) and Path Redundancy (or Connection Bonding in SRT terminology) are also supported by the protocol.
To learn more about the protocol subscribe to the Innovation Labs Blog on
Join the conversation in the #development channel on
A brief history and rationale for SRT by Marc Cymontkowski |
The working repo for the official SRT protocol RFC |
Resources, tools, statistics and templates for developers |
Early draft technical overview (precursor to the RFC) |
Environment setup to develop, build and test SRT |
Guidelines for providing feedback and report problems |
How SRT encryption protects stream payloads |
Reference documentation for the SRT API |
Instructions for using test apps (srt-live-transmit, srt-xtransmit, etc.) |
The SRT API | Internet Draft | Sample Apps |
Reference documentation for the SRT library API | The SRT Protocol Internet Draft | Instructions for using test apps (srt-live-transmit , srt-file-transmit , etc.) |
SRT Technical Overview | SRT Deployment Guide | SRT CookBook |
Early draft technical overview (precursor to the Internet RFC Draft) | A comprehensive overview of the protocol with deployment guidelines | Development notes on the SRT protocol |
Innovation Labs Blog | SRTLab YouTube Channel | Slack |
The blog on Medium with SRT-related technical articles | Technical YouTube channel with useful videos | Slack channels to get the latest updates and ask questions |
- CMake (as build system)
- Tcl 8.5 (optional for user-friendly build system)
- OpenSSL
- Pthreads (built in on POSIX systems; for Windows there is a library)
Linux (Ubuntu/CentOS) | Windows | Mac (Darwin) | iOS | Android
- For detailed descriptions of the build system and options, please read BuildOptions.md.
- If you encounter build failures, please refer to troubleshooting-build-issues.md
Anyone is welcome to contribute. If you decide to get involved, please take a moment to review the guidelines:
- Bug reports
- Feature requests
- Pull requests
TBD
Please visit the SRT Cookbook for more information.
Releases are tracked in srt-changelog.md
Please visit srtalliance.org for more information
Please report security issues to TBD
(12 Apr 2021) Example text borrowed from pandas.org: Is in the core of pandas to be respectful and welcoming with everybody, users, contributors and the broader community. Regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.
If you have any questions, please feel free to ask in the #development channel on Slack.