srs is a free, open source collaboration & communication project written in C++ and released under MIT. It has 29,249 GitHub stars, 5,694 forks and 8 open issues, and was last pushed 10 hours ago. On this registry it ranks #6 of 41 tracked projects in Collaboration & Communication, with 5 head-to-head comparisons available. It gained 6 stars over the last 3 tracked days.

What is srs?

What it is

SRS (Simple Realtime Server) is an open-source, AI-driven real-time media server written in C++ and released under the MIT license. It ingests and republishes live audio and video across a broad set of streaming protocols, including RTMP, WebRTC, HLS, HTTP-FLV, HTTP-TS, SRT, MPEG-DASH, and GB28181. The project runs on Linux and macOS and is built for x86_64, ARMv7, AArch64, Apple M1, RISC-V, LoongArch, and MIPS architectures. Codec support covers H.264, H.265, AV1, VP9, AAC, Opus, and G.711. The current line is SRS 8.0, and the project has been developed for roughly eleven years, with documentation published in both English and Chinese.

The concrete problem SRS solves is protocol fragmentation in live streaming. A publisher such as FFmpeg or OBS sends one stream in one protocol, while viewers arrive on browsers, mobile players, and set-top boxes that each expect something different. SRS accepts the incoming feed and serves it out simultaneously as RTMP, HTTP-FLV, HLS, WebRTC, SRT, MPEG-DASH, or HTTP-TS, so a single ingest reaches every client without running a separate server per protocol. It also covers the conversion path between RTMP and WebRTC, which is the usual route for getting a low-latency browser feed out of an existing RTMP workflow.

Key capabilities

  • Multi-protocol ingest and delivery across RTMP, WebRTC, HLS, HTTP-FLV, HTTP-TS, SRT, MPEG-DASH, and GB28181.
  • Codec support for H.264, H.265, AV1, VP9, AAC, Opus, and G.711.
  • RTMP-to-WebRTC and WebRTC-to-RTMP conversion for browser playback of existing streams.
  • HTTP API for control and integration with external systems.
  • DVR for recording live streams to disk.
  • Transcoding between codecs and bitrates.
  • Clustering for scaling beyond a single node.
  • Prometheus exporter for metrics collection and monitoring.

Who uses it and how

  • Live broadcasters publish with FFmpeg or OBS to an RTMP endpoint and let SRS fan the stream out to HLS and HTTP-FLV viewers.
  • Video conferencing and low-latency deployments use the WebRTC path, including conversion from an RTMP source.
  • Operators run SRS in Docker, exposing the RTMP, HTTP API, HTTP server, and UDP ports for WebRTC and SRT traffic.
  • Monitoring stacks scrape the Prometheus exporter to track server and stream health.
  • Teams use the AI Agent wiki guidance to understand and maintain an existing SRS deployment.

Getting started

The README recommends Docker: `docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 -p 8000:8000/ud

project readme (upstream, from github) — read inline

SRS(Simple Realtime Server)

SRS/8.0 (Free) is a simple, high-performance, AI-driven real-time media server. It supports RTMP, WebRTC, HLS, HTTP-FLV, SRT, MPEG-DASH, and GB28181 on Linux and macOS across x86_64, ARMv7, AArch64, Apple M1, RISC-V, LoongArch, and MIPS architectures. Supported codecs include H.264, H.265, AV1, VP9, AAC, Opus, and G.711. See the complete list of features.

SRS Overview

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

SRS is licenced under MIT, and some third-party libraries are distributed under their licenses.

Usage

Please check the Getting Started guide in English or Chinese. We highly recommend using SRS with docker:

docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \
    -p 8000:8000/udp -p 10080:10080/udp ossrs/srs:6

Tips: If you're in China, use this image registry.cn-hangzhou.aliyuncs.com/ossrs/srs:6 for faster speed.

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:

If you'd like to use WebRTC, convert RTMP to WebRTC, or convert WebRTC to RTMP, please check out the wiki documentation in either English or Chinese.

To learn more about RTMP, HLS, HTTP-FLV, SRT, MPEG-DASH, WebRTC protocols, clustering, HTTP API, DVR, and transcoding, please check the documents in English or Chinese.

AI Agent

I recommend to use AI to understand and maintain your SRS, please follow the wiki AI Agent for details.

Contributing

The maintainers, and contributors are listed here. The maintainers who made significant contributions and maintained parts of SRS are listed below, ranked by the number of commits:

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

A huge THANK YOU goes out to:

We're really thankful to everyone in the community for helping us find bugs and improve the project. To stay in touch and keep helping our community, please check out this guide.

Of course, financial support is very important to us, so we can build the website and use AI tools to maintain the community. Please visit OpenCollective to become a backer or sponsor.

LICENSE

SRS is licenced under MIT, and some third-party libraries are distributed under their licenses.

Releases

readme truncated — read the full docs on github

Frequently asked questions

Is srs free to use?

srs is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does srs do?

SRS is a simple, high-performance, AI-driven real-time media server supporting RTMP, WebRTC, HLS, HTTP-FLV, HTTP-TS, SRT, MPEG-DASH, and GB28181, with codec sup

What is srs written in?

srs is primarily written in C++. Its source is publicly available at https://github.com/ossrs/srs, and it has 29,249 GitHub stars.