Giter Site home page Giter Site logo

gizahnl / srt Goto Github PK

View Code? Open in Web Editor NEW

This project forked from haivision/srt

0.0 1.0 0.0 12.3 MB

Secure, Reliable, Transport

Home Page: https://www.srtalliance.org

License: Mozilla Public License 2.0

CMake 2.32% C++ 87.70% C 5.41% Tcl 1.28% Shell 0.39% Batchfile 0.06% PowerShell 1.13% Lua 1.33% Vim Script 0.03% Python 0.08% NSIS 0.26%

srt's Introduction

Secure Reliable Transport (SRT) Protocol

SRT

License: MPLv2.0 Latest release Debian Badge
LGTM Code Quality LGTM Alerts codecov
Build Status Linux and macOS Build Status Windows

Introduction

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.

Join the conversation in the #development channel on Slack.

Guides

Requirements

  • C++03 (or above) compliant compiler.
  • CMake 2.8.12 or above (as build system).
  • OpenSSL 1.1 (to enable encryption, or build with -DENABLE_ENCRYPTION=OFF).
  • Multithreading is provided by either of the following:
    • C++11: standard library (std by -DENABLE_STDCXX_SYNC=ON CMake option);
    • C++03: Pthreads (for POSIX systems it's built in, for Windows there is a ported library).
  • Tcl 8.5 (optional, used by ./configure script or use CMake directly).

For a detailed description of the build system and options, please refer to SRT Build Options.

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 /usr/local.

To define a different installation path prefix, use the --prefix option with configure or -DCMAKE_INSTALL_PREFIX CMake option.

To uninstall, call make -n install to list all the dependencies, and then pass the list to rm.

Ubuntu 14

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install tclsh pkg-config cmake libssl-dev build-essential
./configure
make

CentOS 7

sudo yum update
sudo yum install tcl pkgconfig openssl-devel cmake gcc gcc-c++ make automake
./configure
make

CentOS 6

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 --HEAD option to brew command.

brew install --HEAD srt

Also, SRT can be built with cmake and 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 Building SRT for Windows instructions.

srt's People

Contributors

adamyellen avatar ademiller avatar alexpokotilo avatar bananahemic avatar disigma avatar ethouris avatar gegles avatar gou4shi1 avatar gummilion avatar jeandube avatar jlsantiago0 avatar justinjoy avatar lance-lmwang avatar lelegard avatar lewk2 avatar maxsharabayko avatar maxtomilov avatar mbakholdina avatar mypopydev avatar ocrete avatar quink-black avatar rndi avatar russelltg avatar sergeiignatov avatar sorayuki avatar stevomatthews avatar sthibaul avatar wiiaboo avatar zerodefect avatar zmousm avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.