Git Product home page Git Product logo

ziniuw / srs-stack Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ossrs/oryx

0.0 0.0 0.0 8.28 MB

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.

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

License: GNU Affero General Public License v3.0

Shell 7.19% JavaScript 41.83% Python 3.39% Go 32.17% CSS 0.03% Makefile 0.20% HTML 14.91% Dockerfile 0.29%

srs-stack's Introduction

SRS-Stack

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.

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

Usage

Run srs-stack in one docker, then open http://localhost:2022 in browser:

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

Important: Remember to mount the /data volume to avoid losing data when the container restarts. For instance, if you mount /data to $HOME/data, all data will be stored in the $HOME/data folder. Be sure to modify this according to your desired directory.

Important: To use WebRTC WHIP in a browser, avoid using localhost or 127.0.0.1. Instead, use a private IP (e.g., https://192.168.3.85:2443), a public IP (e.g., https://136.12.117.13:2443), or a domain (e.g., https://your-domain.com:2443). To set up HTTPS, refer to this post.

Note: In China, use registry.cn-hangzhou.aliyuncs.com/ossrs/srs-stack:5 to accelerate the Docker pull process and ensure the proper language is set.

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.
    • transcript The storage directory for transcription, save transcription 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: Blog, EN, CN.
  • Support transcription for converting speech to text: Blog, EN, CN.

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 transcription for converting speech to text.
  • 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.