Skip to content

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
Step-by-step guide: how to use SRSInstall, first run, examples, tips and FAQs

How to get it

  1. 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. 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. 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

ProjectStarsTypeLevelUpdatedBest for
srs (this)29.4kAppintermediate6 days agoDevelopers building live streaming backends that need several delivery protocols
mediamtx20.6kAppintermediate4 days agoPeople routing IP camera streams to viewers in a browser or media player
go2rtc14.6kAppintermediate11 days agoHome users connecting IP cameras to a browser or Home Assistant
owncast11.6kAppintermediate10 days agoStreamers who want control over their content, interface and moderation
livego10.2kAppintermediate11 months agoDevelopers who want to self-host a basic live streaming endpoint
webtorrent-desktop10.1kAppbeginner6 days agoPeople 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.