Total Pageviews

Thursday, 19 December 2019

SRS


SRS/3.0,OuXuli,是一个简单的流媒体直播集群,简单的快乐。
SRS(Simple RTMP Server) is a simple live streaming cluster, a simple joy.
Remark: Although SRS is licenced under MIT, but there are some depended libraries which are distributed using their own licenses, please read License Mixing.

Usage

Step 1: Get SRS.
git clone https://github.com/ossrs/srs &&
cd srs/trunk
Note: Repository too large? Please clone from these mirrors instead.
Step 2: Build SRS.
./configure && make
Remark: Recommend Centos6 64bits, please read wiki(CN,EN).
Note: You can also build SRS in docker, please read docker.
Step 3: Run SRS
./objs/srs -c conf/srs.conf
Whatever, you can also directly run SRS in docker:
docker run -p 1935:1935 -p 1985:1985 -p 8080:8080 ossrs/srs:3
From here, strongly recommend to read bellow wikis:
  • Usage: How to delivery RTMP?(CN, EN)
  • Usage: How to delivery RTMP Edge Cluster?(CN, EN)
  • Usage: How to create a RTMP Origin Cluster?(CN, EN)
  • Usage: How to delivery HTTP FLV Live Streaming?(CN, EN)
  • Usage: How to delivery HTTP FLV Live Streaming Cluster?(CN, EN)
  • Usage: How to delivery HLS?(CN, EN)
  • Usage: How to delivery HLS for other codec?(CN, EN)
  • Usage: How to transode RTMP stream by FFMPEG?(CN, EN)
  • Usage: How to forward stream to other servers?(CN, EN)
  • Usage: How to deploy in low lantency mode?(CN, EN)
  • Usage: How to ingest file/stream/device to RTMP?(CN, EN)
  • Usage: How to delivery HLS by SRS HTTP server?(CN, EN)
  • Usage: How to publish h.264 raw stream as RTMP? (CN, EN)
  • Usage: How to improve edge performance by multiple CPUs? (CN, EN)
  • Usage: Why choose SRS? About the milestone and product plan? (CN, EN)
  • Usage: How to file bug or chat with us? (CN, EN)

Wiki

Please select according to languages:
For previous versions, please read:

Features

  •  Using coroutine by ST, it's really simple and stupid enough.
  •  Support cluster which consists of origin (CN,EN) and edge(CN, EN) server and uses RTMP as default transport protocol.
  •  Origin server supports remuxing RTMP to HTTP-FLV(CN, EN) and HLS(CN, EN).
  •  Edge server supports remuxing RTMP to HTTP-FLV(CN, EN). As for HLS(CN, EN) edge server, recomment to use HTTP edge server, such as NGINX.
  •  Support HLS with audio-only(CN, EN), which need to build the timestamp from AAC samples, so we enhanced it please read #547.
  •  Support HLS with mp3(h.264+mp3) audio codec, please read bug #301.
  •  Support remuxing RTMP to http FLV/MP3/AAC/TS live streaming, please read wiki(CN, EN).
  •  Support ingesting(CN, EN) other protocols to SRS by FFMPEG.
  •  Support RTMP long time(>4.6hours) publishing/playing, with the timestamp corrected.
  •  Support publishing h264 raw stream(CN, EN) by srs-librtmp(CN, EN).
  •  Support publishing aac adts raw stream(CN, EN) by srs-librtmp(CN, EN).
  •  Support native HTTP server(CN, EN) for http api and http live streaming.
  •  Support HTTP CORS for js in http api and http live streaming.
  •  Support HTTP API(CN, EN) for system management.
  •  Support HTTP RAW API, please read #459, #470, #319.
  •  Support HTTP callback(CN, EN) for authentication and integration.
  •  Support RTMP client library: srs-librtmp(CN, EN)
  •  Support Adobe FMS/AMS token traverse(CN, EN) authentication.
  •  Support DVR(CN, EN) to record live streaming to FLV file.
  •  Support DVR in MP4 format, read #738.
  •  Support DVR control module like NGINX-RTMP, please read #459.
  •  Support EXEC like NGINX-RTMP, please read bug #367.
  •  Support security strategy including allow/deny publish/play IP(CN, EN).
  •  Support low latency(0.1s+) transport model, please read bug #257.
  •  Support gop-cache(CN, EN) for player fast startup.
  •  Support Vhost(CN, EN) and __defaultVhost__.
  •  Support reloading(CN, EN) to apply changes of config.
  •  Support bandwidth testing(CN, EN) and flash client example.
  •  Support listening at multiple ports.
  •  Support forwarding(CN, EN) from master to slave server.
  •  Support transcoding(CN, EN) live streaming by FFMPEG.
  •  All wikis are writen in Chinese and English.
  •  Enhanced json, replace NXJSON(LGPL) with json-parser(BSD), read #904.
  •  Support valgrind and latest ARM by patching ST, read ST#1 and ST#2.
  •  Support tracable and session-based log(CN, EN).
  •  High concurrency and performance(CN, EN), 6000+ connections(200kbps), CPU 82%, 203MB.
  •  Enhanced complex error code with description and stack, read #913.
  •  Enhanced RTMP url which supports vhost in stream, read #1059.
  •  Support origin cluster, please read #464, RTMP 302.
  •  Support listen at IPv4 and IPv6, read #460.
  •  Support SO_REUSEPORT, to improve edge server performance, read #775.
  •  [Deprecated] Support Adobe HDS(f4m), please read wiki(CN, EN).
  •  [Experimental] Support MPEG-DASH, the future live streaming protocol, read #299.
  •  [Experimental] Support pushing MPEG-TS over UDP, please read bug #250.
  •  [Experimental] Support pushing RTSP, please read bug #133.
  •  [Experimental] Support pushing FLV over HTTP POST, please read [wiki](CN, EN).
  •  [Experimental] Support multiple processes by dolphin or oryx.
  •  [Experimental] Support a simple mgmt console, please read srs-ngb.
  •  Utest cover almost all kernel code.
  •  Enhanced forwarding with vhost and variables.
  •  Support source cleanup for idle streams.
  •  Support H.265 by pushing H.265 over RTMP, deliverying in HLS, read #465.
  •  Support HLS+, the HLS edge server, please read #466 and #468.
  •  Support UDP protocol such as QUIC or KCP in cluster.
  •  Support H.264+Opus codec for WebRTC.
  •  Support publishing stream by WebRTC.
  •  Support playing stream by WebRTC.
Remark: About the milestone and product plan, please read (CN, EN) wiki.

from https://github.com/ossrs/srs