Giter Site home page Giter Site logo

gogojames / srs-stack Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ossrs/oryx

0.0 0.0 0.0 6.69 MB

SRS Stack is a one-click, open-source video solution for creating online services on cloud or self-hosting. Built with SRS, FFmpeg, and WebRTC, it supports various protocols and offers features like authentication, multi-platform streaming, recording, virtual live events, automatic HTTPS, and HTTP Open API.

Home Page: https://ossrs.io/lts/en-us/docs/v5/doc/getting-started-stack

License: GNU Affero General Public License v3.0

Shell 8.09% JavaScript 45.59% Python 3.82% Go 26.06% CSS 0.03% Makefile 0.20% HTML 16.00% Dockerfile 0.22%

srs-stack's Introduction

SRS-Stack

SRS Stack makes it easy for you to create an online video service with just one click, either on cloud platforms like DigitalOcean or AWS or by self-hosting. This open-source, simple video solution 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, virtual live events, automatic HTTPS, and an easy-to-use HTTP Open API.

Note: For more details on the SRS Stack, please visit the following link.

Usage

Run srs-stack in one docker:

docker run --rm -it --name srs-stack -v $HOME/data:/data \
  -p 2022:2022 -p 2443:2443 -p 1935:1935 -p 8000:8000/udp -p 10080:10080/udp \
  ossrs/srs-stack:5

Note: Please use -e REACT_APP_LOCALE=zh and registry.cn-hangzhou.aliyuncs.com/ossrs/srs-stack:5 in China.

Note: All data will be saved in $HOME/data directory, please change it to your directory.

Then open http://localhost:2022 in browser.

The ports used for SRS Stack:

  • 2022/tcp: The HTTP port, you can also use 80 instead, such as -p 80:2022 etc.
  • 2443/tcp: The HTTPS port, you can also use 443 instead, such as -p 443:2443 etc.
  • 1935/tcp: The RTMP port, to support publish stream by RTMP to SRS Stack.
  • 8000/udp: The WebRTC UDP port, to transport WebRTC media data like RTP packets.
  • 10080/udp: The SRT UDP port, to support publish stream via SRT protocol.

You have the option to modify the volumes for srs-stack and direct them to different directories.

  • /data The global data directory.
    • .well-known The directory for Let's Encrypt ACME challenge.
    • config The .env for password, srs/redis/nginx/prometheus config, and SSL files.
    • dvr The dvr storage directory, save dvr files.
    • lego The LEGO Let's Encrypt ACME challenge directory.
    • record The record storage directory, save record files.
    • redis The redis data directory, the publish secret and record configuration.
    • signals The signals storage directory, save signal files.
    • upload The upload storage directory, save upload files.
    • vlive The storage directory for virtual live, save video files.
    • vod The storage directory for VoD, save video files.
    • nginx-cache The storage directory for nginx cache, save cache files.

You can use environment variables to modify the settings.

  • MGMT_PASSWORD: The mgmt administrator password.
  • REACT_APP_LOCALE: The i18n config for ui, en or zh, default to en.

Note: The MGMT_PASSWORD is also saved in /data/config/.env, you can modify it by yourself.

To access additional environment variables, please refer to the Environments section.

Sponsor

Would you like additional assistance from us? By becoming a sponsor or backer of SRS, we can provide you with the support you need:

  • Backer: $5 per month, online text chat support through Discord.
  • Sponsor: $100 per month, online meeting support, 1 meeting per month in 1 hour.

Please visit OpenCollective to become a backer or sponsor, and send us a direct message on Discord. We are currently providing support to the developers listed below:

We at SRS aim to establish a non-profit, open-source community that assists developers worldwide in creating your own high-quality streaming and RTC platforms to support your businesses.

FAQ

  1. English FAQ
  2. δΈ­ζ–‡ FAQ

Tutorials

  • Getting Started: Blog, EN, CN.
  • Support WordPress Plugin: Blog, EN, CN or WordPress Plugin.
  • Support Automatic HTTPS: Blog, EN, CN.
  • Support aaPanel to install on any linux: Blog, EN, CN.
  • Support DVR to local disk: Blog, EN, CN.
  • Support Virtual Live Streaming: CN.
  • Support Stream IP Camera: Blog, EN, CN.
  • Support build small HLS deliver CDN by Nginx.
  • Support Live Streaming: CN.
  • Support Realtime SRT Streaming: CN.
  • Support DVR to Tencent Cloud Storage or VoD: CN.
  • Support Typecho Plugin: CN.
  • Support live stream transcoding.

Other more use scenarios is on the way, please read this post.

Features

The features that we're developing:

  • A mgmt support authentication and automatic updates.
  • Run SRS in docker, query status by docker and SRS API.
  • Support publish by RTMP/WebRTC, play by RTMP/HTTP-FLV/HLS/WebRTC.
  • SRS container use docker logs json-file and rotate for logging.
  • Support high-resolution and realtime(200~500ms) live streaming by SRT.
  • Run SRS hooks in docker, to callback by SRS server.
  • Support publish by SRT, play by RTMP/HTTP-FLV/HLS/WebRTC/SRT.
  • Change redis port and use randomly password.
  • Support integrity with tencent cloud VoD.
  • Forward stream to multiple platforms.
  • Support WordPress Plugin: SrsPlayer.
  • Support aaPanel to install on any linux.
  • Support DVR to local disk.
  • Support upgrade to latest version manually.
  • Support HTTPS by let's encrypt with LEGO.
  • Support virtual live streaming, covert file or other resource to live.
  • Support self-host HLS CDN, to serve 10k+ viewers.
  • Support Typecho Plugin: Typecho-Plugin-SrsPlayer.
  • Support DVR to TencentCloud storage.
  • Support pull RTSP from IP Camera and stream to YouTube/Twitch/Facebook.
  • Support live streaming transcoding by FFmpeg, see #2869.
  • Support limit the streaming duration to limit the fee.
  • Support GB28181 by SRS 5.0 container.
  • Support WebRTC face to face chat, see #2857.
  • Support WebRTC video chat room, see #2924.
  • Support a set of tools for developer, see #2891.
  • Collect logs of mgmt and containers together.
  • Stop, restart and upgrade containers.
  • Support logrotate to manage the logs.
  • Enhance prometheus API with authentication.
  • Integrate with prometheus and node-exporter.

License

SRS Stack is an open-source project, licensed under the AGPL-3.0-or-later license.

Developer

For development, please refer to the Environments about the API and architecture.

2022.11

srs-stack's People

Contributors

winlinvip avatar limjoe avatar dependabot[bot] avatar panda1986 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.