Features.md 21 KB

Features

The features of SRS.

Note: Please read Wiki: Gettting Started( EN / CN ) first.

  • 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 transmux RTMP to HTTP-FLV/MP3/AAC/TS, 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 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 callback(CN, EN) for authentication and integration.
  • Support DVR(CN, EN) to record live streaming to FLV file.
  • 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 listening at multiple ports.
  • Support forwarding(CN, EN) to other RTMP servers.
  • Support transcoding(CN, EN) 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 traceable and session-based log(CN, EN).
  • High performance(CN, EN) RTMP/HTTP-FLV, 6000+ connections.
  • 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.
  • Improve test coverage for core/kernel/protocol/service.
  • Support docker by srs-docker.
  • Support multiple processes by ReusePort(CN, EN), #775.
  • Support a simple mgmt console, please read srs-console.
  • [Experimental] Support playing stream by WebRTC, #307.
  • [Experimental] Support publishing stream by WebRTC, #307.
  • [Experimental] Support mux RTP/RTCP/DTLS/SRTP on one port for WebRTC, #307.
  • [Experimental] Support client address changing for WebRTC, #307.
  • [Experimental] Support transcode RTMP/AAC to WebRTC/Opus, #307.
  • [Experimental] Support AV1 codec for WebRTC, #2324.
  • [Experimental] Enhance HTTP Stream Server for HTTP-FLV, HTTPS, HLS etc. #1657.
  • [Experimental] Support DVR in MP4 format, read #738.
  • [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 FLV over HTTP POST, please read wiki(CN, EN).
  • [Experimental] Support SRT server, read #1147.
  • [Experimental] Support transmux RTC to RTMP, #2093.
  • [Deprecated] Support Adobe HDS(f4m), please read wiki(CN, EN) and #1535.
  • [Deprecated] Support bandwidth testing, please read #1535.
  • [Deprecated] Support Adobe FMS/AMS token traverse(CN, EN) authentication, please read #1535.
  • [Removed] Support pushing RTSP, please read #2304.
  • [Removed] Support HTTP RAW API, please read #2653.
  • [Removed] Support RTMP client library: srs-librtmp.
  • Support Windows/Cygwin 64bits, #2532.
  • Support push stream by GB28181, #1500.
  • Support IETF-QUIC for WebRTC Cluster, #2091.
  • Enhanced forwarding with vhost and variables, #1342.
  • Support DVR to Cloud Storage, #1193.
  • Support H.265 over RTMP and HLS, #465.
  • Improve RTC performance to 5K by multiple threading, #2188.
  • Support source cleanup for idle streams, #413.
  • Support change user to run SRS, #1111.
  • Support HLS variant, #463.

Remark: About the milestone and product plan, please read (CN, EN) wiki.