SRS

SRS Stack is an all-in-one, out-of-the-box, and open-source video solution for creating online video services, including live streaming and WebRTC, on the cloud or through self-hosting.

SRS Stack makes it easy for you to create an online video service. It is made using Go, Reactjs, SRS, FFmpeg, and WebRTC. It supports protocols like RTMP, WebRTC, HLS, HTTP-FLV, and SRT. It offers features like authentication, streaming on multiple platforms, recording, transcoding, virtual live events, automatic HTTPS, and an easy-to-use HTTP Open API.

Features

  • Publish live streams with WebRTC, RTMP or SRT
  • Play Live streams with RTMP, SRT, HTTP-FLV, WebRTC and HLS
  • WebRTC to RTMP Adapter, vice versa
  • Web Management Dashboard
  • Stream authentication for publisher
  • Open Source SRS Media Server
  • Automatic HTTPS by letsencrypt
  • Support restreaming to multiple platforms.
  • Record live stream to MP4 file.
  • Support virtual live streaming, covert file or other resource to live.
  • Support live streaming transcoding by FFmpeg.
  • Support transcription for converting speech to text.
  • Support pull RTSP from IP Camera and stream to YouTube/Twitch/Facebook.
  • Support AI assistant for live room.

Tutorials

Software Included

Package Version License
SRS Stack 5.13.31 AGPL-3.0-or-later
SRS 5.0 MIT
Docker 20.10 Apache-2.0
Nginx 1.18.0 Custom
Redis 5.0 BSD-3-Clause
FFmpeg 4.2 GPL-2.0

Creating an App using the Control Panel

Click the Deploy to DigitalOcean button to create a Droplet based on this 1-Click App. If you aren’t logged in, this link will prompt you to log in with your DigitalOcean account.

Deploy to DO

Creating an App using the API

In addition to creating a Droplet from the SRS 1-Click App using the control panel, you can also use the DigitalOcean API. As an example, to create a 4GB SRS Droplet in the SFO2 region, you can use the following curl command. You need to either save your API access token) to an environment variable or substitute it in the command below.

curl -X POST -H 'Content-Type: application/json' \
         -H 'Authorization: Bearer '$TOKEN'' -d \
        '{"name":"choose_a_name","region":"sfo2","size":"s-2vcpu-4gb","image": "ossrs-srs"}' \
        "https://api.digitalocean.com/v2/droplets"

Getting Started After Deploying SRS

Please follow the steps to configure SRS.

Step 1

Create a droplet from the image available in the Marketplace.

Step 2

After you created a Droplet, you can navigate to http://your_droplet_public_ipv4/mgmt to initialize it.

Note: If you forget the password, you can find it at /data/config/.env as env MGMT_PASSWORD

Step 3

Follow the guide in SRS, to publish stream and play it.

Step 4 (Optional)

If wants to publish by WebRTC, you must setup the HTTPS.

Add a domain to your droplet. This is required because most browsers require HTTPS in order to allow you to use the camera and microphone in a website, and it’s not possible to enable HTTPS just with an IP.

Then navigate to System / HTTPS and input your domain, click the Submit to request a HTTPS cert from letsencrypt.