Secure Reliable Transport (SRT) Protocol
Secure Reliable Transport (SRT) is an open source transport technology that optimizes streaming performance across unpredictable networks, such as the Internet.
|Secure||Encrypts video streams|
|Reliable||Recovers from severe packet loss|
|Transport||Dynamically adapts to changing network conditions|
SRT is 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 device, 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, such as the Internet. Its error recovery mechanism minimizes the packet loss typical of Internet connections. And SRT supports AES encryption for end-to-end security, keeping your streams safe from prying eyes.
- Why SRT Was Created
- SRT Protocol Technical Overview
- SRT Cookbook: website, GitHub
- SRT RFC: txt, html, GitHub
- Using the
- Developer's Guide
- SRT Encryption
- Reporting problems
- cmake (as build system)
- Tcl 8.5 (optional for user-friendly build system)
- Pthreads (for POSIX systems it's builtin, for Windows there's a library)
For detailed description of the build system and options, please read BuildOptions.md.
Build on Linux
Install cmake and openssl-devel (or similar name) package. For pthreads there should be -lpthreads linker flag added.
Default installation path prefix of
make install is
To define a different installation path prefix, use the
--prefix option with
-DCMAKE_INSTALL_PREFIX CMake option.
To uninstall, call
make -n install to list all the dependencies, and then pass the list to
sudo apt-get update sudo apt-get upgrade sudo apt-get install tclsh pkg-config cmake libssl-dev build-essential ./configure make
sudo yum update sudo yum install tcl pkgconfig openssl-devel cmake gcc gcc-c++ make automake ./configure make
sudo yum update sudo yum install tcl pkgconfig openssl-devel cmake gcc gcc-c++ make automake sudo yum install centos-release-scl-rh devtoolset-3-gcc devtoolset-3-gcc-c++ scl enable devtoolset-3 bash ./configure --use-static-libstdc++ --with-compiler-prefix=/opt/rh/devtoolset-3/root/usr/bin/ make
Build on Mac (Darwin, iOS)
Homebrew supports "srt" formula.
brew update brew install srt
If you prefer using a head commit of
master branch, you should add
brew install --HEAD srt
Also, SRT can be built with
make on Mac.
Install cmake and openssl with development files from "brew". Note that the
system version of OpenSSL is inappropriate, although you should be able to
use any newer version compiled from sources, if you prefer.
brew install cmake brew install openssl export OPENSSL_ROOT_DIR=$(brew --prefix openssl) export OPENSSL_LIB_DIR=$(brew --prefix openssl)"/lib" export OPENSSL_INCLUDE_DIR=$(brew --prefix openssl)"/include" ./configure make
Build on Windows
Follow the Windows build instructions.