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.
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:
- To play an RTMP stream with URL
rtmp://localhost/live/livestream
on VLC player, open the player, go to Media > Open Network Stream, enter the URL and click Play. - You can play HTTP-FLV stream URL http://localhost:8080/live/livestream.flv on a webpage using the srs-player, an HTML5-based player.
- Use srs-player for playing HLS stream with URL http://localhost:8080/live/livestream.m3u8.
Please note that to convert RTMP to WebRTC, you should use the file rtmp2rtc.conf.
- Use the srs-player to play the WebRTC stream with URL http://localhost:1985/rtc/v1/whip-play/?app=live&stream=livestream via WHEP.
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:
- All contributors of SRS.
- All friends of SRS for big supports.
- Genes, Mabbott and Michael Talyanksy for creating and introducing st.
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
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