
SRS
A real-time media server that receives and delivers live video over many streaming protocols.
- Stars
- 29.4k
- Forks
- 5.7k
- Licence
- MIT
- Language
- C++
- Last update
- 6 days ago
- Type
- App
What it is
SRS is a server that receives live video and audio streams and sends them out to viewers in the formats they need. It supports protocols such as RTMP, WebRTC, HLS, HTTP-FLV, and SRT, so a broadcaster can publish one stream and many kinds of players can watch it. The README describes it as open source under the MIT license.
- Stream a video file or OBS broadcast to a local server and watch it in a browser player
- Convert an RTMP stream into WebRTC for low-latency playback
- Serve HLS or HTTP-FLV streams to web and mobile viewers
- Receive SRT or GB28181 feeds and republish them to other players
Great for
- Developers building live streaming backends that need several delivery protocols
- Teams that want to convert between RTMP and WebRTC streams
- People hosting their own low-latency live video service
- Users who can run a server with Docker and follow a getting-started guide
Not ideal for
- People who only want to watch or stream casually with no server setup, since a server must be run and configured
- Beginners looking for a point-and-click tool, because the README is aimed at operators comfortable with the command line and networking
How to get it
- 1
Run with Docker
You'll need: Docker
Run 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 - 2
Run it
- Run the Docker command from the README to start the server
- Open http://localhost:8080/ in a browser to verify it is running
- Stream a file with FFmpeg to rtmp://localhost/live/livestream, or use OBS with server rtmp://localhost/live and stream key livestream
- Play the stream in VLC via RTMP or in a browser via HTTP-FLV or HLS using the srs-player links in the README
- 3
Get the most out of it
- Use the HTTP API documented in the wiki to manage and inspect streams
- Read the WebRTC section of the getting-started guide to convert between RTMP and WebRTC
- Review the DVR and transcoding documentation if you need recording or re-encoding
- Check the features list linked from the README to see the full set of supported protocols and codecs
Downloads
Strengths
- The README lists support for many streaming protocols and codecs in one server
- Docker quick start is provided, which makes a first test relatively simple
- Released under the MIT license with a regularly updated release history
Trade-offs
- Configuration and production deployment details are in external docs, not fully covered in the README
- The README mixes version references (v5, v6, v7, v8), so users should confirm which version to use
- Some features and integrations depend on the wiki and external documentation rather than this README
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| srs (this) | 29.4k | App | intermediate | 6 days ago | Developers building live streaming backends that need several delivery protocols |
| mediamtx | 20.6k | App | intermediate | 4 days ago | People routing IP camera streams to viewers in a browser or media player |
| go2rtc | 14.6k | App | intermediate | 11 days ago | Home users connecting IP cameras to a browser or Home Assistant |
| owncast | 11.6k | App | intermediate | 10 days ago | Streamers who want control over their content, interface and moderation |
| livego | 10.2k | App | intermediate | 11 months ago | Developers who want to self-host a basic live streaming endpoint |
| webtorrent-desktop | 10.1k | App | beginner | 6 days ago | People who want to stream torrent video without waiting for a full download |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.