mirror of
https://github.com/ossrs/srs.git
synced 2025-02-15 04:42:04 +00:00
For some use scenario, the publisher is invited when player want to view the stream:
1. Publisher connect to system, but does not publish any stream to SRS yet.
2. Player connect to system and start to request the stream.
3. System notifies publisher to publish stream to SRS.
4. Player play the stream from SRS.
Please notice that `system` means your business system, not SRS.
This is what we called `on-demand-live-streaming`, so when the last player stop to view the stream, what happends?
1. System needs to notify publisher to stop publish.
2. Or, SRS disconnect the publisher when idle(the last player stops playing).
This PR is for the solution 2, so that the cleanup is very simple, your system does not need to notify publisher to stop publish, because SRS has already disconnected the publihser.
PICK 8fde0366fb
---------
Co-authored-by: winlin <winlin@vip.126.com>
Co-authored-by: chundonglinlin <chundonglinlin@163.com>
10 KiB
10 KiB
Features
The features of SRS.
- System: Support coroutine state-threads for high performance.
- System: Support native HTTP server(CN, EN) for http api and http live streaming.
- System: Support DVR(CN, EN) to record live streaming to FLV file.
- System: Support security strategy including allow/deny publish/play IP(CN, EN).
- System: Security: Enable CIDR for allow/deny play/publish, #2914. v4.0.248+
- System: Support Vhost(CN, EN) and __defaultVhost__.
- System: Support reloading(CN, EN) to apply changes of config.
- System: Support traceable and session-based log(CN, EN).
- System: Support listen at IPv4 and IPv6, read #460.
- System: Support docker by srs-docker.
- System: Support multiple processes by ReusePort(CN, EN), #775.
- System: Support include directive for config file, #2878.
- System: Support x86_64, armv7 and aarch64 docker image, #3058. v5.0.29+
- System: [Experimental] Enhance HTTP Stream Server for HTTP-FLV, HTTPS, HLS etc. #1657.
- System: [Experimental] Support DVR in MP4 format, read #738.
- System: [Experimental] Support Cygwin64 and MIPS cpu. v5.0.13+
- System: [Experimental] Support RISCV cpu, #3115. v5.0.33+
- System: [Experimental] Support loongarch, loongson CPU, #2689. v5.0.38+
- System: [Experimental] Support Apple Silicon M1(aarch64), #2747. v5.0.41+
- System: [Experimental] Support distributed tracing by Tencent Cloud APM. v5.0.64+
- System: [Experimental] Support grab backtrace stack when assert fail. v5.0.80+
- System: [Experimental] Support Google Address Sanitizer, #3216. v5.0.81+
- System: [Experimental] Windows: Support cygwin pipline and packager, #2532. v5.0.89+
- API: Support HTTP API(CN, EN) for system management.
- API: Support HTTP callback(CN, EN) for authentication and integration.
- API: Support reuse HTTP Stream port for HTTP API, #2881.
- API: [Experimental] Support Prometheus exporter, #2899. v5.0.67+
- Live: Support Edge Cluster for live streaming, see (CN, EN).
- Live: Support Origin server for converting RTMP to HTTP-FLV(CN, EN) and HLS(CN, EN).
- Live: Support Edge server for converting RTMP to HTTP-FLV(CN, EN).
- Live: Support HLS with aac(h.264+aac) and mp3(h.264+mp3) codec, please read bug #301.
- Live: Support transmux RTMP to HTTP-FLV/MP3/AAC/TS, please read wiki(CN, EN).
- Live: Support timestamp correcting for long time(>4.6hours) publishing/playing.
- Live: Support gop-cache(CN, EN) for player fast startup.
- Live: High performance(CN, EN) RTMP/HTTP-FLV, 6000+ connections.
- Live: Enhanced RTMP url which supports vhost in stream, read #1059.
- Live: Support origin cluster, please read #464, RTMP 302.
- Live: Support NGINX HLS Cluster, see CN or EN.
- Live: SRT: Support PUSH SRT by IP and optional port, see #3198. v5.0.76+
- Live: Kickoff publisher when stream is idle, which means no players. v5.0.144+
- Live: [Experimental] Support SRT server, read #1147. v4.0.143+
- Live: [Experimental] Support Coroutine Native SRT over ST, #3010. v5.0.30+
- RTC: Support playing stream by WebRTC, #307.
- RTC: Support publishing stream by WebRTC, #307.
- RTC: Support mux RTP/RTCP/DTLS/SRTP on one port for WebRTC, #307.
- RTC: Support client address changing for WebRTC, #307.
- RTC: Support transcode RTMP/AAC to WebRTC/Opus, #307.
- RTC: Support Unity to publish or play stream. v5.0.62+
- RTC: [Experimental] Support AV1 codec for WebRTC, #2324.
- RTC: [Experimental] Support transmux RTC to RTMP, #2093.
- RTC: [Experimental] Support WebRTC over TCP directly, #2852. v5.0.60+
- RTC: [Experimental] Support WHIP(WebRTC-HTTP ingestion protocol), #2324. v5.0.61+
- Other: Support ingesting(CN, EN) other protocols to SRS by FFMPEG.
- Other: Support forwarding(CN, EN) to other RTMP servers.
- Other: Support transcoding(CN, EN) by FFMPEG.
- Other: All wikis are writen in Chinese and English.
- Other: Support valgrind and latest ARM by patching ST, read ST#1 and ST#2.
- Other: Enhanced complex error code with description and stack, read #913.
- Other: Support test coverage for core/kernel/protocol/service.
- Other: Support a simple mgmt console, please read srs-console.
- Other: Support dynamic forwarding by backend api, #2799.
- Other: Support write log to tencent cloud CLS.
- Other: [Experimental] Support pushing MPEG-TS over UDP, please read bug #250.
- Other: [Experimental] Support pushing FLV over HTTP POST, please read wiki(CN, EN).
- Other: [Experimental] Support push stream by GB28181, #3176. v5.0.74+
- System: Support Windows/Cygwin 64bits, #2532.
- System: Support H.265 over RTMP and HLS, #465.
- System: Support source cleanup for idle streams, #413.
- Live: Support HLS variant, #463.
- RTC: Support IETF-QUIC for WebRTC Cluster, #2091.
- RTC: Improve RTC performance to 5K by multiple threading, #2188.
- Other: Support change user to run SRS, #1111.
- [Deprecated] Live: Support Adobe HDS(f4m), please read wiki(CN, EN) and #1535.
- [Deprecated] Other: Support bandwidth testing, please read #1535.
- [Deprecated] Other: Support Adobe FMS/AMS token traverse(CN, EN) authentication, please read #1535.
- [Removed] Other: Support pushing RTSP, please read #2304.
- [Removed] Other: Support HTTP RAW API, please read #2653.
- [Removed] Other: Support RTMP client library: srs-librtmp.
Remark: About the milestone and product plan, please read (CN, EN) wiki.