• Stars
    star
    25,633
  • Rank 811 (Top 0.02 %)
  • Language
    C++
  • License
    MIT License
  • Created over 9 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

SRS is a simple, high-efficiency, real-time media server supporting RTMP, WebRTC, HLS, HTTP-FLV, HTTP-TS, SRT, MPEG-DASH, and GB28181.

SRS(Simple Realtime Server)

SRS/6.0 (Hang) is a simple, high-efficiency, and real-time video server, supporting RTMP/WebRTC/HLS/HTTP-FLV/SRT/MPEG-DASH/GB28181, Linux/Windows/macOS, X86_64/ARMv7/AARCH64/M1/RISCV/LOONGARCH/MIPS, and essential features.

SRS Overview

Note: For more details on the single-node architecture for SRS, please visit the following link.

SRS is licenced under MIT or MulanPSL-2.0. Please note that while MulanPSL-2.0 is compatible with Apache-2.0, some third-party libraries are distributed under their licenses.

Usage

Please refer to the Getting Started or 中文文档:起步 guide.

To compile SRS from source:

git clone -b develop https://gitee.com/ossrs/srs.git &&
cd srs/trunk && ./configure && make && ./objs/srs -c conf/srs.conf

Open http://localhost:8080/ to verify, and then stream using the following FFmpeg command:

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

Alternatively, stream by OBS using the following configuration:

  • Service: Custom
  • Server: rtmp://localhost/live
  • Stream Key: livestream

Play the following streams using media players:

Please note that to convert RTMP to WebRTC, you should use the file rtmp2rtc.conf.

Note: In addition to FFmpeg or OBS, it is possible to publish by H5 via WHIP as well. To enable WebRTC to publish and convert it to RTMP, please refer to the wiki(CN, EN) documentation. It is essential to ensure the candidate(CN or EN) is set correctly for WebRTC to avoid potential issues, as it can cause significant problems.

Note: It is highly recommended to run SRS directly with docker(CN / EN), CVM(CN / EN), or K8s(CN / EN). However, compiling SRS from source code is also possible and easy. For detailed instructions, please refer to the "Getting Started"(CN / EN) guide.

Note: If you require HTTPS for WebRTC and modern browsers, please refer to the HTTPS API(CN / EN), HTTPS Callback(CN / EN), and HTTPS Live Streaming(CN / EN) documentation. Additionally, SRS works perfectly with an HTTPS proxy like Nginx.

Please refer to the following wikis for more information:

  • What are the steps to deliver RTMP streaming? (CN, EN)
  • What is the process for delivering WebRTC streaming? (CN, EN)
  • What are the steps to convert RTMP to HTTP-FLV streaming? (CN, EN)
  • How can RTMP be converted to HLS streaming? (CN, EN)
  • What is the best approach for delivering low-latency streaming? (CN, EN)
  • How can an RTMP Edge-Cluster be constructed? (CN, EN)
  • What is the process for building an RTMP Origin-Cluster? (CN, EN)
  • How can an HLS Edge-Cluster be set up?(CN, EN)

Here are some other important wikis:

  • Usage: What is the method for delivering DASH (Experimental)? (CN, EN)
  • Usage: How can an RTMP stream be transcoded using FFMPEG? (CN, EN)
  • Usage: What is the process for setting up an HTTP FLV Live Streaming Cluster? (CN, EN)
  • Usage: How can HLS be delivered using an NGINX Cluster? (CN, EN)
  • Usage: What steps are to ingest a file, stream, or device to RTMP? (CN, EN)
  • Usage: How can a stream be forwarded to other servers? (CN, EN)
  • Usage: What are the strategies for improving edge performance on multiple CPUs? (CN, EN)
  • Usage: How can bugs be reported or contact be made with us? (CN, EN)

AUTHORS

We highly appreciate all our contributors for their significant contributions that have made a remarkable difference. Thank you! 🙏

If you wish to support this project financially, you can donate through Open Collective. We appreciate your contribution!

The TOC(Technical Oversight Committee) and contributors:

  • Winlin: Founder of the project, focusing on ST and Issues/PR. Responsible for architecture and maintenance.
  • ZhaoWenjie: One of the earliest contributors, focusing on HDS and Windows. Has expertise in client technology.
  • ShiWei: Specializes in SRT and H.265, maintaining SRT and FLV patches for FFmpeg. An expert in codecs and FFmpeg.
  • XiaoZhihong: Concentrates on WebRTC/QUIC and SRT, with expertise in network QoS. Contributed to ARM on ST and was the original contributor for WebRTC.
  • WuPengqiang: Focused on H.265, initially contributed to the FFmpeg module in SRS for transcoding AAC with OPUS for WebRTC.
  • XiaLixin: Specializes in GB28181, with expertise in live streaming and WebRTC.
  • LiPeng: Concentrates on WebRTC and contributes to memory management and smart pointers.
  • ChenGuanghua: Focused on WebRTC/QoS and introduced the Asan toolchain to SRS.
  • ChenHaibo: Specializes in GB28181 and HTTP API, contributing to patches for FFmpeg with WHIP.
  • ZhangJunqin: Focused on H.265, Prometheus Exporter, and API module.

A big THANK YOU also goes to:

Contributing

We extend our heartfelt gratitude to the community for their contributions in identifying bugs and enhancing the project. To stay connected with us and keep contributing to our community, please follow the guide.

LICENSE

FOSSA Status

SRS is licenced under MIT or MulanPSL-2.0. Please note that while MulanPSL-2.0 is compatible with Apache-2.0, some third-party libraries are distributed under their licenses.

Releases

  • 2023-07-09, Release v6.0-d0, v6.0-d0, 6.0 dev0, v6.0.59, 166739 lines.
  • 2023-07-09, Release v5.0-b2, v5.0-b2, 5.0 beta2, v5.0.166, 162520 lines.
  • 2023-06-11, Release v5.0-b1, v5.0-b1, 5.0 beta1, v5.0.157, 162494 lines.
  • 2023-05-14, Release v5.0-b0, v5.0-b0, 5.0 beta0, v5.0.155, 162600 lines.
  • 2023-03-23, Release v5.0-a5, v5.0-a5, 5.0 alpha5, v5.0.148, 162066 lines.
  • 2023-02-12, Release v5.0-a4, v5.0-a4, 5.0 alpha4, v5.0.141, 161897 lines.
  • 2023-01-02, Release v5.0-a3, v5.0-a3, 5.0 alpha3, v5.0.128, 161327 lines.
  • 2022-12-18, Release v5.0-a2, v5.0-a2, 5.0 alpha2, v5.0.112, 161233 lines.
  • 2022-12-01, Release v5.0-a1, v5.0-a1, 5.0 alpha1, v5.0.100, 160817 lines.
  • 2022-11-25, Release v5.0-a0, v5.0-a0, 5.0 alpha0, v5.0.98, 159813 lines.
  • 2022-11-22, Release v4.0-r4, v4.0-r4, 4.0 release4, v4.0.268, 145482 lines.
  • 2022-09-16, Release v4.0-r3, v4.0-r3, 4.0 release3, v4.0.265, 145328 lines.
  • 2022-08-24, Release v4.0-r2, v4.0-r2, 4.0 release2, v4.0.257, 144890 lines.
  • 2022-06-29, Release v4.0-r1, v4.0-r1, 4.0 release1, v4.0.253, 144680 lines.
  • 2022-06-11, Release v4.0-r0, v4.0-r0, 4.0 release0, v4.0.252, 144680 lines.
  • 2020-06-27, Release v3.0-r0, 3.0 release0, 3.0.141, 122674 lines.
  • 2020-02-02, Release v3.0-b0, 3.0 beta0, 3.0.112, 121709 lines.
  • 2019-10-04, Release v3.0-a0, 3.0 alpha0, 3.0.56, 107946 lines.
  • 2017-03-03, Release v2.0-r0, 2.0 release0, 2.0.234, 86373 lines.
  • 2016-08-06, Release v2.0-b0, 2.0 beta0, 2.0.210, 89704 lines.
  • 2015-08-23, Release v2.0-a0, 2.0 alpha0, 2.0.185, 89022 lines.
  • 2014-12-05, Release v1.0-r0, all bug fixed, 1.0.10, 59391 lines.
  • 2014-10-09, Release v0.9.8, all bug fixed, 1.0.0, 59316 lines.
  • 2014-04-07, Release v0.9.1, live streaming. 30000 lines.
  • 2013-10-23, Release v0.1.0, rtmp. 8287 lines.
  • 2013-10-17, Created.

Features

Please read FEATURES.

Changelog

Please read CHANGELOG.

Performance

Please read PERFORMANCE.

Architecture

Please read ARCHITECTURE.

Ports

Please read PORTS.

APIs

Please read APIS.

Mirrors

Please read MIRRORS.

Dockers

Please read DOCKERS.

Beijing, 2013.10
Winlin

More Repositories

1

state-threads

Lightweight thread library for C/C++ coroutine (similar to goroutine), for high performance network servers.
C++
720
star
2

httpx-static

A HTTP/HTTPS API proxy for SRS.
Go
643
star
3

oryx

Oryx(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.
JavaScript
537
star
4

srs-bench

SB(SRS Bench) is a set of benchmark and regression test tools, for SRS and other media servers, supports HTTP-FLV, RTMP, HLS, WebRTC and GB28181.
Go
397
star
5

flutter_live

Live streaming player, iOS+Android, RTMP/HTTP-FLV/HLS/WebRTC, by Flutter+SRS.
JavaScript
332
star
6

srs-sea

The SEA(Stream Encoder for Android) publish live stream to SRS over HTTP-FLV.
313
star
7

srs-librtmp

The client library srs-librtmp of SRS(https://github.com/ossrs/srs)
249
star
8

librtmp

Fork from http://git.ffmpeg.org/rtmpdump integrated with srs.
C
142
star
9

go-oryx-lib

The public multiple media library for https://github.com/ossrs/oryx.
Go
107
star
10

srs-console

SRS console at http://ossrs.net/console
93
star
11

srs-gb28181

GB28181 server based on SRS
83
star
12

dev-docker

The docker for development environment for SRS.
Dockerfile
77
star
13

srs-unity

WebRTC Samples with SRS SFU server for Unity.
C#
72
star
14

signaling

A demo WebRTC signaling for https://github.com/ossrs/srs
JavaScript
49
star
15

ai-talk

AI-Talk allows you to talk with OpenAI GPT.
Go
34
star
16

srs-sip

The SIP demo application for SRS GB28181.
JavaScript
31
star
17

srs-ble

The BLE is a better BULL LIVE ENCODER than OBS for PC(Windows/MAC).
31
star
18

srs-dolphin

Multiple cores ability for https://github.com/ossrs/srs
26
star
19

Typecho-Plugin-SrsPlayer

SRS Player is a video streaming player, supports HLS/HTTP-FLV/WebRTC etc.
JavaScript
20
star
20

go-sharp

The go-sharp(go-srs-http-advanced-reverse-proxy) is the proxy for SRS HTTP FLV.
19
star
21

srs-k2

Apply https://github.com/k2-fsa/sherpa-ncnn in live streaming and WebRTC
Go
18
star
22

ai-translation

AI translation for English study based on FFmpeg, Whisper, Fairseq, OBS, SRS, and GPT.
Python
17
star
23

srs-k8s-template

Template repository for deploying SRS to any K8s service by GitHub Actions
16
star
24

WordPress-Plugin-SrsPlayer

SRS Player is a video streaming player, supports HLS/HTTP-FLV/WebRTC etc.
JavaScript
14
star
25

tc-ui

WebUI for tcconfig and tc on Linux server.
JavaScript
13
star
26

srs-windows

Adapt SRS for Windows
C++
12
star
27

srs-docs

The documents for SRS
JavaScript
11
star
28

srs-helm

Helm Charts for SRS media server and Oryx media solution.
Shell
10
star
29

issues-translation

Use AI/GPT to translate GitHub issues into English.
Python
5
star
30

flutter_rtc

WebRTC demo by Flutter for https://github.com/ossrs/srs
Dart
4
star
31

srs-simulcast

WebRTC simulcast for SRS
C++
4
star
32

srs-spa

The SPA(Stream Player for Android) play live stream from SRS over HTTP-FLV.
4
star
33

srs-ack-template

Template repository for deploying SRS to ACK(Alibaba Cloud Container Service for Kubernetes)
4
star
34

tea

TEA(TC eBPF for AV) is a network emulator and a set of tools for SRS and any media systems.
C
4
star
35

srs-las

LAS server based on SRS
C++
3
star
36

flutter_srs

A new Flutter project.
C++
2
star
37

srs-sctp

WebRTC datachannel for SRS
C++
2
star
38

srs-aks-template

Template repository for deploying SRS to AKS(Azure Kubernetes Service)
2
star
39

srs-toolkit-idea

SRS Toolkit for IntelliJ IDEA - a plugin for integrating with SRS from JetBrains IDEs, for https://github.com/ossrs/srs
Kotlin
2
star
40

ossrs.net

For https://ossrs.net
HTML
1
star
41

srs-droplet-template

Deploy SRS to DigitalOcean droplet
1
star
42

srs-g711

Support G.711 for SRS
C++
1
star
43

srs-secure-api

Demonstrated Secure HTTP API for SRS.
1
star
44

k8s-set-context-action

GitHub Action for setting context before deploying to Kubernetes clusters
JavaScript
1
star