Skip to content

v5_EN_Home

Winlin edited this page May 23, 2022 · 3 revisions

HOME > EN

Remark: SRS5 is developing and not stable.

SRS Overview

SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT.

SRS Overview

Note: The single node architecture for SRS, general and major use scenario, please see figma.

SRS Overview

Note: The cluster architecture, for detail picture please see here

Getting Started

To learn the basics of SRS, you may choose one of the following favorite methods.

Build From Source

Get SRS source, recommend CentOS7:

git clone -b 4.0release https://gitee.com/ossrs/srs.git

Build SRS in srs/trunk:

cd srs/trunk
./configure
make

Run SRS server:

./objs/srs -c conf/srs.conf

Check SRS by http://localhost:8080/ or:

# Check the process status
./etc/init.d/srs status

# Check the SRS logs
tail -n 30 -f ./objs/srs.log

Publish stream by FFmpeg or OBS :

ffmpeg -re -i ./doc/source.flv -c copy -f flv rtmp://localhost/live/livestream

Or use docker of FFmpeg to publish, please replace the 192.168.1.10 by your IP:

docker run --rm ossrs/srs:encoder \
  ffmpeg -re -i ./doc/source.200kbps.768x320.flv -c copy -f flv rtmp://192.168.1.10/live/livestream

Play stream by:

Note that if convert RTMP to WebRTC, please use rtmp2rtc.conf:

Note: Recommend docker, or K8s

Note: Please set CANDIDATE if need to enable WebRTC, please read CANDIDATE

Note: If need HTTPS, by which WebRTC and modern browsers require, please read HTTPS API and HTTPS Callback and HTTPS Live Streaming, however HTTPS proxy also works perfect with SRS such as Nginx.

Please read more information about SRS.

Docker

Run SRS docker, the available images is here :

docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \
    ossrs/srs:4 ./objs/srs -c conf/docker.conf

If need to enable WebRTC, please set the CANDIDATE and expose UDP/8000 :

docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \
    --env CANDIDATE="192.168.1.10" -p 8000:8000/udp \
    ossrs/srs:4 ./objs/srs -c conf/docker.conf

For HTTPS, please map the HTTPS ports, and use configs like conf/https.*, for example, conf/https.docker.conf:

CANDIDATE="192.168.1.10"
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 -p 1990:1990 -p 8088:8088 \
    --env CANDIDATE=$CANDIDATE -p 8000:8000/udp \
    ossrs/srs:4 ./objs/srs -c conf/https.docker.conf

Note: About CANDIDATE, please read CANDIDATE

Note: If convert RTMP to WebRTC, please use rtmp2rtc.conf

Remark: Please use your HTTPS key and cert file, please read HTTPS API and HTTPS Callback and HTTPS Live Streaming, however HTTPS proxy also works perfect with SRS such as Nginx.

Publish stream by FFmpeg or OBS :

ffmpeg -re -i ./doc/source.flv -c copy -f flv rtmp://localhost/live/livestream

Or use docker of FFmpeg to publish, please replace the 192.168.1.10 by your IP:

docker run --rm ossrs/srs:encoder \
  ffmpeg -re -i ./doc/source.200kbps.768x320.flv -c copy -f flv rtmp://192.168.1.10/live/livestream

Play stream by:

Please read more information about SRS.

Cloud Virtual Machine

SRS works well on Cloud Virtual Machine:

K8s

Highly recommend that you Deploy to Cloud Platforms.

SRS provides a set of template repository for fast deploy:

Please read more information about SRS.

Effective SRS

SRS is industrial-strength live streaming cluster, for the best conceptual integrity and the simplest implementation. SRS provides variety of inputs, for example, Push RTMP to SRS, Push RTSP/UDP/FLV to SRS, Pull Stream to SRS. SRS can transform the RTMP to other protocols or deliveries, for example, RTMP Transcode, Snapshot, Forward to Other Servers, Transmux to HTTP-FLV, Transmux to HLS, Transmux to HDS, Transmux SRT, DVR to FLV/MP4. SRS canbe used in CDN for large stream clusters, for example, RTMP ClusterOriginCluster, VHOST, Reload, HTTP-FLV Cluster. Futhermore, SRS provides apis, for example, HTTP Callback, Security, HTTP API. There're lots of Applications in both CDN and origin servers.

Note: Please read https://www.processon.com/view/link/619f25c37d9c083e98adb37e for details.

Note: Use K8S to deploy Edge ClusterOrigin Cluster

Deployment Guides:

We illustrate and explain how to deploy SRS for typical use scenarios.

Cluster Guides:

The examples here are aimed for deploying and maintaining origin/edge cluster.

Integration Guides:

Develop Guide

Migrate From NGINX-RTMP:

If you are a user of nginx-rtmp, there is a tendency to use SRS as nginx-rtmp that you already know. Be aware of this bias and try to avoid it.

  • NG EXEC: Fork/Exec external program when got some event.

User Guides:

  • Quick Start: A quick introduction of SRS, please start here.
  • Milestones: The milestone and product design。
  • Why SRS: Why you should choose SRS? What's the roadmap?
  • GIT Mirrors: The GIT mirrors of SRS to get SRS faster.
  • Main Features: The features list of SRS. Some features is introduced from specified version; while some features are experiment.
  • Releases: The released versions of SRS.
  • Docs: The detail tech docs of SRS.
  • Compare: The comparation of SRS to other servers.
  • Performance: The performance benchmark.

Join Us:

Questions or need help?

For any help, contact us.

Winlin 2020.01

Welcome to SRS wiki!

SRS 5.0 wiki

Please select your language:

SRS 4.0 wiki

Please select your language:

SRS 3.0 wiki

Please select your language:

SRS 2.0 wiki

Please select your language:

SRS 1.0 wiki

Please select your language:

Clone this wiki locally