• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.github/H01-Oct-2021-164128

apps/H03-May-2022-6,7925,073

common/H01-Oct-2021-204139

docs/H01-Oct-2021-13,1359,515

examples/H01-Oct-2021-1,5261,030

haicrypt/H01-Oct-2021-4,3212,709

scripts/H03-May-2022-4,7863,439

srtcore/H01-Oct-2021-53,05533,112

test/H01-Oct-2021-8,8666,341

testing/H01-Oct-2021-6,8484,940

.appveyor.ymlH A D01-Oct-20211.5 KiB3226

.clang-formatH A D01-Oct-20212.8 KiB9190

.gitignoreH A D01-Oct-2021437 4635

.lgtm.ymlH A D01-Oct-2021122 65

.travis.ymlH A D01-Oct-20214.1 KiB104100

CONTRIBUTING.mdH A D01-Oct-20212.4 KiB5939

LICENSEH A D01-Oct-202116.3 KiB374293

README.mdH A D01-Oct-20216.1 KiB153114

cmake_object_lib_support.cH A D01-Oct-2021477 101

codecov.ymlH A D01-Oct-2021128 98

configureH A D01-Oct-20216.3 KiB269168

configure-data.tclH A D01-Oct-202112.4 KiB384278

nuget.configH A D01-Oct-2021444 1111

sonar-project.propertiesH A D01-Oct-20211.1 KiB3726

srt-ffplayH A D03-May-2022807 3216

README.md

1# Secure Reliable Transport (SRT) Protocol
2
3<p align="left">
4  <a href="http://srtalliance.org/">
5    <img alt="SRT" src="http://www.srtalliance.org/wp-content/uploads/SRT_text_hor_logo_grey.png" width="500"/>
6  </a>
7</p>
8
9[![License: MPLv2.0][license-badge]](./LICENSE)
10[![Latest release][release-badge]][github releases]
11[![Debian Badge][debian-badge]][debian-package]
12[![LGTM Code Quality][lgtm-quality-badge]][lgtm-project]
13[![LGTM Alerts][lgtm-alerts-badge]][lgtm-project]
14[![codecov][codecov-badge]][codecov-project]
15[![Build Status Linux and macOS][travis-badge]][travis]
16[![Build Status Windows][appveyor-badge]][appveyor]
17
18## Introduction
19
20Secure Reliable Transport (SRT) is an open source transport technology that optimizes streaming performance across unpredictable networks, such as the Internet.
21
22|    |    |
23| --- | --- |
24| **S**ecure | Encrypts video streams |
25| **R**eliable | Recovers from severe packet loss |
26| **T**ransport | Dynamically adapts to changing network conditions |
27
28SRT 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.
29
30As 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.
31
32[Join the conversation](https://slackin-srtalliance.azurewebsites.net/) in the `#development` channel on [Slack](https://srtalliance.slack.com).
33
34### Guides
35
36* [SRT API Documents](docs/API/)
37* [Using the `srt-live-transmit` App](docs/apps/srt-live-transmit.md)
38* [SRT Developer's Guide](docs/dev/developers-guide.md)
39* [Contributing](CONTRIBUTING.md)
40* [Reporting Issues](docs/dev/making-srt-better.md)
41* SRT RFC: [Latest IETF Draft](https://datatracker.ietf.org/doc/html/draft-sharabayko-srt-00), [Latest Working Copy](https://haivision.github.io/srt-rfc/draft-sharabayko-srt.html), [GitHub Repo](https://github.com/Haivision/srt-rfc)
42* SRT CookBook: [Website](https://srtlab.github.io/srt-cookbook), [GitHub Repo](https://github.com/SRTLab/srt-cookbook)
43* [SRT Protocol Technical Overview](https://github.com/Haivision/srt/files/2489142/SRT_Protocol_TechnicalOverview_DRAFT_2018-10-17.pdf)
44* [Why SRT Was Created](docs/misc/why-srt-was-created.md)
45
46## Requirements
47
48* C++03 (or above) compliant compiler.
49* CMake 2.8.12 or above (as build system).
50* OpenSSL 1.1 (to enable encryption, or build with `-DENABLE_ENCRYPTION=OFF`).
51* Multithreading is provided by either of the following:
52  * C++11: standard library (`std` by `-DENABLE_STDCXX_SYNC=ON` CMake option);
53  * C++03: Pthreads (for POSIX systems it's built in, for Windows there is a ported library).
54* Tcl 8.5 (optional, used by `./configure` script or use CMake directly).
55
56For a detailed description of the build system and options, please refer to [SRT Build Options](docs/build/build-options.md).
57
58### Build on Linux
59
60Install cmake and openssl-devel (or similar name) package. For pthreads
61there should be -lpthreads linker flag added.
62
63Default installation path prefix of `make install` is `/usr/local`.
64
65To define a different installation path prefix, use the `--prefix` option with `configure`
66or [`-DCMAKE_INSTALL_PREFIX`](https://cmake.org/cmake/help/v3.0/variable/CMAKE_INSTALL_PREFIX.html) CMake option.
67
68To uninstall, call `make -n install` to list all the dependencies, and then pass the list to `rm`.
69
70#### Ubuntu 14
71
72```shell
73sudo apt-get update
74sudo apt-get upgrade
75sudo apt-get install tclsh pkg-config cmake libssl-dev build-essential
76./configure
77make
78```
79
80#### CentOS 7
81
82```shell
83sudo yum update
84sudo yum install tcl pkgconfig openssl-devel cmake gcc gcc-c++ make automake
85./configure
86make
87```
88
89#### CentOS 6
90
91```shell
92sudo yum update
93sudo yum install tcl pkgconfig openssl-devel cmake gcc gcc-c++ make automake
94sudo yum install centos-release-scl-rh devtoolset-3-gcc devtoolset-3-gcc-c++
95scl enable devtoolset-3 bash
96./configure --use-static-libstdc++ --with-compiler-prefix=/opt/rh/devtoolset-3/root/usr/bin/
97make
98```
99
100### Build on Mac (Darwin, iOS)
101
102[Homebrew](https://brew.sh/) supports "srt" formula.
103
104```shell
105brew update
106brew install srt
107```
108
109If you prefer using a head commit of `master` branch, you should add `--HEAD` option
110to `brew` command.
111
112```shell
113brew install --HEAD srt
114```
115
116Also, SRT can be built with `cmake` and `make` on Mac.
117Install cmake and openssl with development files from "brew". Note that the
118system version of OpenSSL is inappropriate, although you should be able to
119use any newer version compiled from sources, if you prefer.
120
121```shell
122brew install cmake
123brew install openssl
124export OPENSSL_ROOT_DIR=$(brew --prefix openssl)
125export OPENSSL_LIB_DIR=$(brew --prefix openssl)"/lib"
126export OPENSSL_INCLUDE_DIR=$(brew --prefix openssl)"/include"
127./configure
128make
129```
130
131### Build on Windows
132
133Follow the [Building SRT for Windows](docs/build/build-win.md) instructions.
134
135[appveyor-badge]: https://img.shields.io/appveyor/ci/Haivision/srt/master.svg?label=Windows
136[appveyor]: https://ci.appveyor.com/project/Haivision/srt
137[travis-badge]: https://img.shields.io/travis/Haivision/srt/master.svg?label=Linux/macOS
138[travis]: https://travis-ci.org/Haivision/srt
139[license-badge]: https://img.shields.io/badge/License-MPLv2.0-blue
140
141[lgtm-alerts-badge]: https://img.shields.io/lgtm/alerts/github/Haivision/srt
142[lgtm-quality-badge]: https://img.shields.io/lgtm/grade/cpp/github/Haivision/srt
143[lgtm-project]: https://lgtm.com/projects/g/Haivision/srt/
144
145[codecov-project]: https://codecov.io/gh/haivision/srt
146[codecov-badge]: https://codecov.io/gh/haivision/srt/branch/master/graph/badge.svg
147
148[github releases]: https://github.com/Haivision/srt/releases
149[release-badge]: https://img.shields.io/github/release/Haivision/srt.svg
150
151[debian-badge]: https://badges.debian.net/badges/debian/testing/libsrt1/version.svg
152[debian-package]: https://packages.debian.org/testing/libsrt1
153