SRS 6.0-b0 源码 + danmaku 后端(排除 objs/3rdparty/测试媒体)
This commit is contained in:
Executable
+292
@@ -0,0 +1,292 @@
|
||||
# Architecture
|
||||
|
||||
The architecture of SRS.
|
||||
|
||||
## Architecture
|
||||
|
||||
The stream architecture of SRS.
|
||||
|
||||
```
|
||||
+----------+ +----------+
|
||||
| Upstream | | Deliver |
|
||||
+---|------+ +----|-----+
|
||||
+---+------------------+------+---------------------+----------------+
|
||||
| Input | SRS(Simple RTMP Server) | Output |
|
||||
+----------------------+----------------------------+----------------+
|
||||
| | +-> DASH ----------------+-> DASH player |
|
||||
| Encoder(1) | +-> RTMP/HDS -----------+-> Flash player |
|
||||
| (FMLE,OBS, --RTMP-+->-+-> HLS/HTTP ------------+-> M3U8 player |
|
||||
| FFmpeg,XSPLIT, | +-> FLV/MP3/Aac/Ts ------+-> HTTP player |
|
||||
| ......) | +-> Fowarder ------------+-> RTMP server |
|
||||
| | +-> Transcoder ----------+-> RTMP server |
|
||||
| | +-> EXEC(5) -------------+-> External app |
|
||||
| | +-> DVR -----------------+-> FLV file |
|
||||
| | +-> BandwidthTest -------+-> Flash |
|
||||
| | +-> WebRTC --------------+-> Flash |
|
||||
+----------------------+ | |
|
||||
| WebRTC Client | +--> RTMP | |
|
||||
| (H5,Native...) --RTC-+---+---> WebRTC ------------+-> WebRTC Client|
|
||||
+----------------------+ | |
|
||||
| MediaSource(2) | | |
|
||||
| (RTSP,FILE, | | |
|
||||
| HTTP,HLS, --pull-+->-- Ingester(3) -(rtmp)----+-> SRS |
|
||||
| Device, | | |
|
||||
| ......) | | |
|
||||
+----------------------+ | |
|
||||
| MediaSource(2) | | |
|
||||
| (MPEGTSoverUDP | | |
|
||||
| HTTP-FLV, --push-+->-- Stream(4) ----(rtmp)-+-> SRS |
|
||||
| SRT, | Converter | |
|
||||
| ......) | | |
|
||||
+----------------------+ | |
|
||||
| FFMPEG --push(srt)--+->- SRTModule(5) ---(rtmp)-+-> SRS |
|
||||
+----------------------+----------------------------+----------------+
|
||||
```
|
||||
|
||||
Remark:
|
||||
|
||||
1. Encoder: Encoder pushs RTMP stream to SRS.
|
||||
1. MediaSource: Supports any media source, ingesting by ffmpeg.
|
||||
1. Ingester: Forks a ffmpeg(or other tools) to ingest as rtmp to SRS, please read [Ingest][v4_CN_Ingest].
|
||||
1. Stream Converter: Remuxs other protocols to RTMP, please read [Stream Converter][v4_CN_Streamer].
|
||||
1. EXEC: Like NGINX-RTMP, EXEC forks external tools for events, please read [ng-exec][v4_CN_NgExec].
|
||||
1. SRTModule: A isolate module which run in [hybrid](https://github.com/ossrs/srs/issues/1147#issuecomment-577574883) model.
|
||||
|
||||
## System Requirements
|
||||
|
||||
Supported operating systems and hardware:
|
||||
|
||||
* Linux, with x86, x86-64 or arm.
|
||||
* Mac, with intel chip.
|
||||
* Other OS, such as Windows, please use [docker][docker-srs4].
|
||||
|
||||
[authors]: https://github.com/ossrs/srs/blob/4.0release/trunk/AUTHORS.txt
|
||||
[bigthanks]: https://ossrs.net/lts/zh-cn/product#release40
|
||||
[st]: https://github.com/ossrs/state-threads
|
||||
[st2]: https://github.com/ossrs/state-threads/tree/srs
|
||||
[state-threads]: https://github.com/ossrs/state-threads/tree/srs
|
||||
[nginx]: http://nginx.org/
|
||||
[srs]: https://github.com/ossrs/srs
|
||||
[gitee]: https://gitee.com/ossrs/srs
|
||||
[srs-bench]: https://github.com/ossrs/srs-bench
|
||||
[srs-ngb]: https://github.com/ossrs/srs-console
|
||||
[srs-librtmp]: https://github.com/ossrs/srs-librtmp
|
||||
[gitlab]: https://gitlab.com/winlinvip/srs-gitlab
|
||||
[console]: http://ossrs.net:8080/console
|
||||
[docker-srs3]: https://github.com/ossrs/srs-docker/tree/v3#usage
|
||||
[docker-srs4]: https://github.com/ossrs/srs-docker/tree/v4#usage
|
||||
[docker-dev]: https://github.com/ossrs/srs-docker/tree/dev#usage
|
||||
|
||||
[v4_CN_Git]: https://ossrs.net/lts/zh-cn/docs/v4/doc/git
|
||||
[v4_EN_Git]: https://ossrs.io/lts/en-us/docs/v4/doc/git
|
||||
[v4_CN_SampleRTMP]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-rtmp
|
||||
[v4_EN_SampleRTMP]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-rtmp
|
||||
[v4_CN_SampleRTMPCluster]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-rtmp-cluster
|
||||
[v4_EN_SampleRTMPCluster]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-rtmp-cluster
|
||||
[v4_CN_SampleOriginCluster]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-origin-cluster
|
||||
[v4_EN_SampleOriginCluster]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-origin-cluster
|
||||
[v4_CN_SampleHLS]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-hls
|
||||
[v4_EN_SampleHLS]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-hls
|
||||
[v4_CN_SampleTranscode2HLS]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-transcode-to-hls
|
||||
[v4_EN_SampleTranscode2HLS]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-transcode-to-hls
|
||||
[v4_CN_SampleFFMPEG]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-ffmpeg
|
||||
[v4_EN_SampleFFMPEG]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-ffmpeg
|
||||
[v4_CN_SampleForward]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-forward
|
||||
[v4_EN_SampleForward]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-forward
|
||||
[v4_CN_SampleRealtime]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-realtime
|
||||
[v4_EN_SampleRealtime]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-realtime
|
||||
[v4_CN_WebRTC]: https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc
|
||||
[v4_EN_WebRTC]: https://ossrs.io/lts/en-us/docs/v4/doc/webrtc
|
||||
[v4_CN_WebRTC#config-candidate]: https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#config-candidate
|
||||
[v4_EN_WebRTC#config-candidate]: https://ossrs.io/lts/en-us/docs/v4/doc/webrtc#config-candidate
|
||||
[v4_CN_SampleARM]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-arm
|
||||
[v4_EN_SampleARM]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-arm
|
||||
[v4_CN_SampleIngest]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-ingest
|
||||
[v4_EN_SampleIngest]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-ingest
|
||||
[v4_CN_SampleHTTP]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-http
|
||||
[v4_EN_SampleHTTP]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-http
|
||||
[v4_CN_SampleDemo]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sampleDemo
|
||||
[v4_EN_SampleDemo]: https://ossrs.io/lts/en-us/docs/v4/doc/sampleDemo
|
||||
[v4_CN_OriginCluster]: https://ossrs.net/lts/zh-cn/docs/v4/doc/origin-cluster
|
||||
[v4_EN_OriginCluster]: https://ossrs.io/lts/en-us/docs/v4/doc/origin-cluster
|
||||
[v4_CN_REUSEPORT]: https://ossrs.net/lts/zh-cn/docs/v4/doc/reuse-port
|
||||
[v4_EN_REUSEPORT]: https://ossrs.io/lts/en-us/docs/v4/doc/reuse-port
|
||||
[v4_CN_Sample]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample
|
||||
[v4_EN_Sample]: https://ossrs.io/lts/en-us/docs/v4/doc/sample
|
||||
[v4_CN_Product]: https://ossrs.net/lts/zh-cn/product
|
||||
[v4_EN_Product]: https://ossrs.io/lts/en-us/product
|
||||
[v4_CN_Home]: https://ossrs.net/lts/zh-cn/docs/v4/doc/introduction
|
||||
[v4_EN_Home]: https://ossrs.io/lts/en-us/docs/v4/doc/introduction
|
||||
|
||||
[v4_CN_Build]: https://ossrs.net/lts/zh-cn/docs/v4/doc/install
|
||||
[v4_EN_Build]: https://ossrs.io/lts/en-us/docs/v4/doc/install
|
||||
[v4_CN_Performance]: https://ossrs.net/lts/zh-cn/docs/v4/doc/performance
|
||||
[v4_EN_Performance]: https://ossrs.io/lts/en-us/docs/v4/doc/performance
|
||||
[v4_CN_DeliveryRTMP]: https://ossrs.net/lts/zh-cn/docs/v4/doc/delivery-rtmp
|
||||
[v4_EN_DeliveryRTMP]: https://ossrs.io/lts/en-us/docs/v4/doc/delivery-rtmp
|
||||
[v4_CN_Edge]: https://ossrs.net/lts/zh-cn/docs/v4/doc/edge
|
||||
[v4_EN_Edge]: https://ossrs.io/lts/en-us/docs/v4/doc/edge
|
||||
[v4_CN_RtmpUrlVhost]: https://ossrs.net/lts/zh-cn/docs/v4/doc/rtmp-url-vhost
|
||||
[v4_EN_RtmpUrlVhost]: https://ossrs.io/lts/en-us/docs/v4/doc/rtmp-url-vhost
|
||||
[v4_CN_RTMPHandshake]: https://ossrs.net/lts/zh-cn/docs/v4/doc/rtmp-handshake
|
||||
[v4_EN_RTMPHandshake]: https://ossrs.io/lts/en-us/docs/v4/doc/rtmp-handshake
|
||||
[v4_CN_HTTPServer]: https://ossrs.net/lts/zh-cn/docs/v4/doc/http-server
|
||||
[v4_EN_HTTPServer]: https://ossrs.io/lts/en-us/docs/v4/doc/http-server
|
||||
[v4_CN_DeliveryHLS]: https://ossrs.net/lts/zh-cn/docs/v4/doc/delivery-hls
|
||||
[v4_EN_DeliveryHLS]: https://ossrs.io/lts/en-us/docs/v4/doc/delivery-hls
|
||||
[v4_CN_DeliveryHLS2]: https://ossrs.net/lts/zh-cn/docs/v4/doc/delivery-hls#hlsaudioonly
|
||||
[v4_EN_DeliveryHLS2]: https://ossrs.io/lts/en-us/docs/v4/doc/delivery-hls#hlsaudioonly
|
||||
[v4_CN_Reload]: https://ossrs.net/lts/zh-cn/docs/v4/doc/reload
|
||||
[v4_EN_Reload]: https://ossrs.io/lts/en-us/docs/v4/doc/reload
|
||||
[v4_CN_LowLatency2]: https://ossrs.net/lts/zh-cn/docs/v4/doc/low-latency#gop-cache
|
||||
[v4_EN_LowLatency2]: https://ossrs.io/lts/en-us/docs/v4/doc/low-latency#gop-cache
|
||||
[v4_CN_Forward]: https://ossrs.net/lts/zh-cn/docs/v4/doc/forward
|
||||
[v4_EN_Forward]: https://ossrs.io/lts/en-us/docs/v4/doc/forward
|
||||
[v4_CN_FFMPEG]: https://ossrs.net/lts/zh-cn/docs/v4/doc/ffmpeg
|
||||
[v4_EN_FFMPEG]: https://ossrs.io/lts/en-us/docs/v4/doc/ffmpeg
|
||||
[v4_CN_HTTPCallback]: https://ossrs.net/lts/zh-cn/docs/v4/doc/http-callback
|
||||
[v4_EN_HTTPCallback]: https://ossrs.io/lts/en-us/docs/v4/doc/http-callback
|
||||
[v4_CN_SampleDemo]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sampleDemo
|
||||
[v4_EN_SampleDemo]: https://ossrs.io/lts/en-us/docs/v4/doc/sampleDemo
|
||||
[v4_CN_SrsLinuxArm]: https://ossrs.net/lts/zh-cn/docs/v4/doc/arm
|
||||
[v4_EN_SrsLinuxArm]: https://ossrs.io/lts/en-us/docs/v4/doc/arm
|
||||
[v4_CN_LinuxService]: https://ossrs.net/lts/zh-cn/docs/v4/doc/service
|
||||
[v4_EN_LinuxService]: https://ossrs.io/lts/en-us/docs/v4/doc/service
|
||||
[v4_CN_RTMP-ATC]: https://ossrs.net/lts/zh-cn/docs/v4/doc/rtmp-atc
|
||||
[v4_EN_RTMP-ATC]: https://ossrs.io/lts/en-us/docs/v4/doc/rtmp-atc
|
||||
[v4_CN_HTTPApi]: https://ossrs.net/lts/zh-cn/docs/v4/doc/http-api
|
||||
[v4_EN_HTTPApi]: https://ossrs.io/lts/en-us/docs/v4/doc/http-api
|
||||
[v4_CN_Ingest]: https://ossrs.net/lts/zh-cn/docs/v4/doc/ingest
|
||||
[v4_EN_Ingest]: https://ossrs.io/lts/en-us/docs/v4/doc/ingest
|
||||
[v4_CN_DVR]: https://ossrs.net/lts/zh-cn/docs/v4/doc/dvr
|
||||
[v4_EN_DVR]: https://ossrs.io/lts/en-us/docs/v4/doc/dvr
|
||||
[v4_CN_SrsLog]: https://ossrs.net/lts/zh-cn/docs/v4/doc/log
|
||||
[v4_EN_SrsLog]: https://ossrs.io/lts/en-us/docs/v4/doc/log
|
||||
[v4_CN_DRM2]: https://ossrs.net/lts/zh-cn/docs/v4/doc/drm#tokentraverse
|
||||
[v4_EN_DRM2]: https://ossrs.io/lts/en-us/docs/v4/doc/drm#tokentraverse
|
||||
[v4_CN_SampleHTTP]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-http
|
||||
[v4_EN_SampleHTTP]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-http
|
||||
[v4_CN_FlvVodStream]: https://ossrs.net/lts/zh-cn/docs/v4/doc/flv-vod-stream
|
||||
[v4_EN_FlvVodStream]: https://ossrs.io/lts/en-us/docs/v4/doc/flv-vod-stream
|
||||
[v4_CN_Security]: https://ossrs.net/lts/zh-cn/docs/v4/doc/security
|
||||
[v4_EN_Security]: https://ossrs.io/lts/en-us/docs/v4/doc/security
|
||||
[v4_CN_DeliveryHttpStream]: https://ossrs.net/lts/zh-cn/docs/v4/doc/delivery-http-flv
|
||||
[v4_EN_DeliveryHttpStream]: https://ossrs.io/lts/en-us/docs/v4/doc/delivery-http-flv
|
||||
[v4_CN_DeliveryHDS]: https://ossrs.net/lts/zh-cn/docs/v4/doc/delivery-hds
|
||||
[v4_EN_DeliveryHDS]: https://ossrs.io/lts/en-us/docs/v4/doc/delivery-hds
|
||||
[v4_CN_Streamer]: https://ossrs.net/lts/zh-cn/docs/v4/doc/streamer
|
||||
[v4_EN_Streamer]: https://ossrs.io/lts/en-us/docs/v4/doc/streamer
|
||||
[v4_CN_Streamer2]: https://ossrs.net/lts/zh-cn/docs/v4/doc/streamer#push-http-flv-to-srs
|
||||
[v4_EN_Streamer2]: https://ossrs.io/lts/en-us/docs/v4/doc/streamer#push-http-flv-to-srs
|
||||
[v4_CN_SampleHttpFlv]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-http-flv
|
||||
[v4_EN_SampleHttpFlv]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-http-flv
|
||||
[v4_CN_SampleHttpFlvCluster]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-http-flvCluster
|
||||
[v4_EN_SampleHttpFlvCluster]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-http-flvCluster
|
||||
[v4_CN_SampleDASH]:https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-dash
|
||||
[v4_EN_SampleDASH]:https://ossrs.io/lts/en-us/docs/v4/doc/sample-dash
|
||||
|
||||
[bug #547]: https://github.com/ossrs/srs/issues/547
|
||||
[bug #301]: https://github.com/ossrs/srs/issues/301
|
||||
[bug #459]: https://github.com/ossrs/srs/issues/459
|
||||
[bug #367]: https://github.com/ossrs/srs/issues/367
|
||||
[bug #257]: https://github.com/ossrs/srs/issues/257
|
||||
[bug #904]: https://github.com/ossrs/srs/issues/904
|
||||
[bug #913]: https://github.com/ossrs/srs/issues/913
|
||||
[bug #1059]: https://github.com/ossrs/srs/issues/1059
|
||||
[bug #92]: https://github.com/ossrs/srs/issues/92
|
||||
[bug #464]: https://github.com/ossrs/srs/issues/464
|
||||
[bug #460]: https://github.com/ossrs/srs/issues/460
|
||||
[bug #775]: https://github.com/ossrs/srs/issues/775
|
||||
[bug #307]: https://github.com/ossrs/srs/issues/307
|
||||
[bug #2324]: https://github.com/ossrs/srs/issues/2324
|
||||
[bug #1657]: https://github.com/ossrs/srs/issues/1657
|
||||
[bug #1500]: https://github.com/ossrs/srs/issues/1500
|
||||
[bug #738]: https://github.com/ossrs/srs/issues/738
|
||||
[bug #299]: https://github.com/ossrs/srs/issues/299
|
||||
[bug #250]: https://github.com/ossrs/srs/issues/250
|
||||
[bug #459]: https://github.com/ossrs/srs/issues/459
|
||||
[bug #470]: https://github.com/ossrs/srs/issues/470
|
||||
[bug #319]: https://github.com/ossrs/srs/issues/319
|
||||
[bug #1147]: https://github.com/ossrs/srs/issues/1147
|
||||
[bug #2304]: https://github.com/ossrs/srs/issues/2304
|
||||
[bug #1535]: https://github.com/ossrs/srs/issues/1535
|
||||
[bug #1342]: https://github.com/ossrs/srs/issues/1342
|
||||
[bug #1193]: https://github.com/ossrs/srs/issues/1193
|
||||
[bug #2093]: https://github.com/ossrs/srs/issues/2093
|
||||
[bug #465]: https://github.com/ossrs/srs/issues/465
|
||||
[bug #2091]: https://github.com/ossrs/srs/issues/2091
|
||||
[bug #2188]: https://github.com/ossrs/srs/issues/2188
|
||||
[bug #413]: https://github.com/ossrs/srs/issues/413
|
||||
[bug #1111]: https://github.com/ossrs/srs/issues/1111
|
||||
[bug #463]: https://github.com/ossrs/srs/issues/463
|
||||
[bug #775]: https://github.com/ossrs/srs/issues/775
|
||||
[bug #257-c0]: https://github.com/ossrs/srs/issues/257#issuecomment-66864413
|
||||
|
||||
[r3.0r5]: https://github.com/ossrs/srs/releases/tag/v3.0-r5
|
||||
[r3.0r4]: https://github.com/ossrs/srs/releases/tag/v3.0-r4
|
||||
[r3.0r3]: https://github.com/ossrs/srs/releases/tag/v3.0-r3
|
||||
[r3.0r2]: https://github.com/ossrs/srs/releases/tag/v3.0-r2
|
||||
[r3.0r1]: https://github.com/ossrs/srs/releases/tag/v3.0-r1
|
||||
[r3.0r0]: https://github.com/ossrs/srs/releases/tag/v3.0-r0
|
||||
[r3.0b4]: https://github.com/ossrs/srs/releases/tag/v3.0-b4
|
||||
[r3.0b3]: https://github.com/ossrs/srs/releases/tag/v3.0-b3
|
||||
[r3.0b2]: https://github.com/ossrs/srs/releases/tag/v3.0-b2
|
||||
[r3.0b1]: https://github.com/ossrs/srs/releases/tag/v3.0-b1
|
||||
[r3.0b0]: https://github.com/ossrs/srs/releases/tag/v3.0-b0
|
||||
[r3.0a9]: https://github.com/ossrs/srs/releases/tag/v3.0-a9
|
||||
[r3.0a8]: https://github.com/ossrs/srs/releases/tag/v3.0-a8
|
||||
[r3.0a7]: https://github.com/ossrs/srs/releases/tag/v3.0-a7
|
||||
[r3.0a6]: https://github.com/ossrs/srs/releases/tag/v3.0-a6
|
||||
[r3.0a5]: https://github.com/ossrs/srs/releases/tag/v3.0-a5
|
||||
[r3.0a4]: https://github.com/ossrs/srs/releases/tag/v3.0-a4
|
||||
[r3.0a3]: https://github.com/ossrs/srs/releases/tag/v3.0-a3
|
||||
[r3.0a2]: https://github.com/ossrs/srs/releases/tag/v3.0-a2
|
||||
[r3.0a1]: https://github.com/ossrs/srs/releases/tag/v3.0-a1
|
||||
[r3.0a0]: https://github.com/ossrs/srs/releases/tag/v3.0-a0
|
||||
[r2.0r8]: https://github.com/ossrs/srs/releases/tag/v2.0-r8
|
||||
[r2.0r7]: https://github.com/ossrs/srs/releases/tag/v2.0-r7
|
||||
[r2.0r6]: https://github.com/ossrs/srs/releases/tag/v2.0-r6
|
||||
[r2.0r5]: https://github.com/ossrs/srs/releases/tag/v2.0-r5
|
||||
[r2.0r4]: https://github.com/ossrs/srs/releases/tag/v2.0-r4
|
||||
[r2.0r3]: https://github.com/ossrs/srs/releases/tag/v2.0-r3
|
||||
[r2.0r2]: https://github.com/ossrs/srs/releases/tag/v2.0-r2
|
||||
[r2.0r1]: https://github.com/ossrs/srs/releases/tag/v2.0-r1
|
||||
[r2.0r0]: https://github.com/ossrs/srs/releases/tag/v2.0-r0
|
||||
[r2.0b4]: https://github.com/ossrs/srs/releases/tag/v2.0-b4
|
||||
[r2.0b3]: https://github.com/ossrs/srs/releases/tag/v2.0-b3
|
||||
[r2.0b2]: https://github.com/ossrs/srs/releases/tag/v2.0-b2
|
||||
[r2.0b1]: https://github.com/ossrs/srs/releases/tag/v2.0-b1
|
||||
[r2.0b0]: https://github.com/ossrs/srs/releases/tag/v2.0-b0
|
||||
[r2.0a3]: https://github.com/ossrs/srs/releases/tag/v2.0-a3
|
||||
[r2.0a2]: https://github.com/ossrs/srs/releases/tag/v2.0-a2
|
||||
[r2.0a1]: https://github.com/ossrs/srs/releases/tag/v2.0-a1
|
||||
[r2.0a0]: https://github.com/ossrs/srs/releases/tag/v2.0-a0
|
||||
[r1.0r4]: https://github.com/ossrs/srs/releases/tag/v1.0-r4
|
||||
[r1.0r3]: https://github.com/ossrs/srs/releases/tag/v1.0-r3
|
||||
[r1.0r2]: https://github.com/ossrs/srs/releases/tag/v1.0-r2
|
||||
[r1.0r1]: https://github.com/ossrs/srs/releases/tag/v1.0-r1
|
||||
[r1.0r0]: https://github.com/ossrs/srs/releases/tag/v1.0-r0
|
||||
[r1.0b0]: https://github.com/ossrs/srs/releases/tag/v0.9.8
|
||||
[r1.0a7]: https://github.com/ossrs/srs/releases/tag/v0.9.7
|
||||
[r1.0a6]: https://github.com/ossrs/srs/releases/tag/v0.9.6
|
||||
[r1.0a5]: https://github.com/ossrs/srs/releases/tag/v0.9.5
|
||||
[r1.0a4]: https://github.com/ossrs/srs/releases/tag/v0.9.4
|
||||
[r1.0a3]: https://github.com/ossrs/srs/releases/tag/v0.9.3
|
||||
[r1.0a2]: https://github.com/ossrs/srs/releases/tag/v0.9.2
|
||||
[r1.0a0]: https://github.com/ossrs/srs/releases/tag/v0.9.1
|
||||
[r0.9]: https://github.com/ossrs/srs/releases/tag/v0.9.0
|
||||
[r0.8]: https://github.com/ossrs/srs/releases/tag/v0.8.0
|
||||
[r0.7]: https://github.com/ossrs/srs/releases/tag/v0.7.0
|
||||
[r0.6]: https://github.com/ossrs/srs/releases/tag/v0.6.0
|
||||
[r0.5]: https://github.com/ossrs/srs/releases/tag/v0.5.0
|
||||
[r0.4]: https://github.com/ossrs/srs/releases/tag/v0.4.0
|
||||
[r0.3]: https://github.com/ossrs/srs/releases/tag/v0.3.0
|
||||
[r0.2]: https://github.com/ossrs/srs/releases/tag/v0.2.0
|
||||
[r0.1]: https://github.com/ossrs/srs/releases/tag/v0.1.0
|
||||
|
||||
[LICENSE]: https://github.com/ossrs/srs/blob/4.0release/LICENSE
|
||||
[LicenseMixing]: https://ossrs.net/lts/zh-cn/license
|
||||
|
||||
[release2]: https://ossrs.net/lts/zh-cn/product#release20
|
||||
[release3]: https://ossrs.net/lts/zh-cn/product#release30
|
||||
[release4]: https://ossrs.net/lts/zh-cn/product#release40
|
||||
Executable
+1282
File diff suppressed because it is too large
Load Diff
Executable
+94
@@ -0,0 +1,94 @@
|
||||
# Dockers
|
||||
|
||||
About SRS Dockerfile:
|
||||
|
||||
* Dockerfile: For release and test.
|
||||
* trunk/Dockerfile.pkg: For package binary.
|
||||
* trunk/Dockerfile.builds: For test.
|
||||
* trunk/Dockerfile.test: For test.
|
||||
* trunk/Dockerfile.cov: For test and coverage.
|
||||
|
||||
```bash
|
||||
docker build -t srs -f Dockerfile .
|
||||
```
|
||||
|
||||
## Dependency Tree
|
||||
|
||||
The dependency tree about Dockerfile:
|
||||
|
||||
* Dockerfile
|
||||
* [ossrs/srs:ubuntu20](https://github.com/ossrs/dev-docker/tree/ubuntu20)
|
||||
* [ossrs/srs:ubuntu20-base2](https://github.com/ossrs/dev-docker/blob/ubuntu20/Dockerfile.base2)
|
||||
* [ossrs/srs:ubuntu20-base](https://github.com/ossrs/dev-docker/blob/ubuntu20/Dockerfile.base)
|
||||
* ubuntu:focal
|
||||
* ubuntu:focal
|
||||
* [ossrs/srs:ubuntu20-cache](https://github.com/ossrs/dev-docker/tree/ubuntu20-cache)
|
||||
* [ossrs/srs:ubuntu20](https://github.com/ossrs/dev-docker/tree/ubuntu20)
|
||||
* ubuntu:focal
|
||||
* ubuntu:focal
|
||||
* trunk/Dockerfile.test
|
||||
* [ossrs/srs:dev-gcc7-cache](https://github.com/ossrs/dev-docker/tree/ossrs/srs:dev-gcc7-cache)
|
||||
* [ossrs/srs:dev-gcc7](https://github.com/ossrs/dev-docker/tree/ossrs/srs:dev-gcc7)
|
||||
* centos:7
|
||||
* trunk/Dockerfile.cov
|
||||
* [ossrs/srs:dev-gcc7-cache](https://github.com/ossrs/dev-docker/tree/ossrs/srs:dev-gcc7-cache)
|
||||
* [ossrs/srs:dev-gcc7](https://github.com/ossrs/dev-docker/tree/ossrs/srs:dev-gcc7)
|
||||
* centos:7
|
||||
* trunk/Dockerfile.pkg
|
||||
* [ossrs/srs:dev](https://github.com/ossrs/dev-docker/tree/ossrs/srs:dev)
|
||||
* centos:7
|
||||
* trunk/Dockerfile.builds
|
||||
* [ossrs/srs:dev-cache](https://github.com/ossrs/dev-docker/tree/ossrs/srs:dev-cache)
|
||||
* [ossrs/srs:dev](https://github.com/ossrs/dev-docker/tree/ossrs/srs:dev)
|
||||
* centos:7
|
||||
* [ossrs/srs:dev6-cache](https://github.com/ossrs/dev-docker/tree/ossrs/srs:dev6-cache)
|
||||
* [ossrs/srs:dev6](https://github.com/ossrs/dev-docker/tree/ossrs/srs:dev6)
|
||||
* centos:6
|
||||
* [ossrs/srs:ubuntu16-cache](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu16-cache)
|
||||
* [ossrs/srs:ubuntu16](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu16)
|
||||
* ubuntu:xenial
|
||||
* [ossrs/srs:ubuntu18-cache](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu18-cache)
|
||||
* [ossrs/srs:ubuntu18](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu18)
|
||||
* ubuntu:bionic
|
||||
* [ossrs/srs:ubuntu20-cache](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu20-cache)
|
||||
* [ossrs/srs:ubuntu20](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu20)
|
||||
* ubuntu:focal
|
||||
* [ossrs/srs:ubuntu16-cache-cross-arm](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu16-cache-cross-arm)
|
||||
* [ossrs/srs:ubuntu16](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu16)
|
||||
* ubuntu:xenial
|
||||
* [ossrs/srs:ubuntu16-cache-cross-aarch64](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu16-cache-cross-aarch64)
|
||||
* [ossrs/srs:ubuntu16](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu16)
|
||||
* ubuntu:xenial
|
||||
* [ossrs/srs:ubuntu20-cache-cross-arm](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu20-cache-cross-arm)
|
||||
* [ossrs/srs:ubuntu20](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu20)
|
||||
* ubuntu:focal
|
||||
* [ossrs/srs:ubuntu20-cache-cross-aarch64](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu20-cache-cross-aarch64)
|
||||
* [ossrs/srs:ubuntu20](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu20)
|
||||
* ubuntu:focal
|
||||
|
||||
## Image for Cache
|
||||
|
||||
To speedup the test, we use a set of cache images.
|
||||
|
||||
If need to reconfigure SRS, please update SRS, then update the images:
|
||||
|
||||
* [ossrs/srs:dev-cache](https://github.com/ossrs/dev-docker/tree/ossrs/srs:dev-cache)
|
||||
* [ossrs/srs:dev6-cache](https://github.com/ossrs/dev-docker/tree/ossrs/srs:dev6-cache)
|
||||
* [ossrs/srs:ubuntu16-cache](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu16-cache)
|
||||
* [ossrs/srs:ubuntu18-cache](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu18-cache)
|
||||
* [ossrs/srs:ubuntu20-cache](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu20-cache)
|
||||
* [ossrs/srs:ubuntu16-cache-cross-arm](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu16-cache-cross-arm)
|
||||
* [ossrs/srs:ubuntu16-cache-cross-aarch64](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu16-cache-cross-aarch64)
|
||||
* [ossrs/srs:ubuntu20-cache-cross-arm](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu20-cache-cross-arm)
|
||||
* [ossrs/srs:ubuntu20-cache-cross-aarch64](https://github.com/ossrs/dev-docker/tree/ossrs/srs:ubuntu20-cache-cross-aarch64)
|
||||
|
||||
For example, update the [release.yml](https://github.com/ossrs/dev-docker/blob/ubuntu20-cache/.github/workflows/release.yml) for ubuntu20-cache:
|
||||
|
||||
```bash
|
||||
# Build SRS for cache, never install it.
|
||||
# SRS is 2d036c3fd Fix #2747: Support Apple Silicon M1(aarch64). v5.0.41
|
||||
# Please update this comment, if need to refresh the cached dependencies, like st/openssl/ffmpeg/libsrtp/libsrt etc.
|
||||
```
|
||||
|
||||
Then push to github and the image will be updated automatically.
|
||||
|
||||
Executable
+95
@@ -0,0 +1,95 @@
|
||||
# Features
|
||||
|
||||
The features of SRS.
|
||||
|
||||
- [x] System: Support coroutine [state-threads](https://github.com/ossrs/state-threads) for high performance. v1.0.0+
|
||||
- [x] System: Support native HTTP server([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-http), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/sample-http)) for http api and http live streaming. v2.0.0+
|
||||
- [x] System: Support DVR([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/dvr), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/dvr)) to record live streaming to FLV file. v1.0.0+
|
||||
- [x] System: Support security strategy including allow/deny publish/play IP([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/security), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/security)). v1.0.0+
|
||||
- [x] System: Security: Enable CIDR for allow/deny play/publish, [#2914](https://github.com/ossrs/srs/pull/2914). v4.0.248+
|
||||
- [x] System: Support Vhost([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/rtmp-url-vhost), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/rtmp-url-vhost)) and \_\_defaultVhost\_\_. v1.0.0+
|
||||
- [x] System: Support reloading([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/reload), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/reload)) to apply changes of config. v1.0.0+
|
||||
- [x] System: Support traceable and session-based log([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/log), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/log)). v1.0.0+
|
||||
- [x] System: Support listen at IPv4 and IPv6, read [#460](https://github.com/ossrs/srs/issues/460). v3.0.59+
|
||||
- [x] System: Support docker by [srs-docker](https://hub.docker.com/r/ossrs/srs/tags). v2.0.265+
|
||||
- [x] System: Support multiple processes by ReusePort([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/reuse-port), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/reuse-port)), [#775](https://github.com/ossrs/srs/issues/775). v4.0.23+
|
||||
- [x] System: Support include directive for config file, [#2878](https://github.com/ossrs/srs/pull/2878). v5.0.23+
|
||||
- [x] System: Support x86_64, armv7 and aarch64 docker image, [#3058](https://github.com/ossrs/srs/pull/3058). v5.0.29+
|
||||
- [x] System: [Experimental] Enhance HTTP Stream Server for HTTP-FLV, HTTPS, HLS etc. [#1657](https://github.com/ossrs/srs/issues/1657).
|
||||
- [x] System: [Experimental] Support DVR in MP4 format, read [#738](https://github.com/ossrs/srs/issues/738). v3.0.86+
|
||||
- [x] System: [Experimental] Support Cygwin64 and MIPS cpu. v5.0.13+
|
||||
- [x] System: [Experimental] Support RISCV cpu, [#3115](https://github.com/ossrs/srs/pull/3115). v5.0.33+
|
||||
- [x] System: [Experimental] Support loongarch, loongson CPU, [#2689](https://github.com/ossrs/srs/issues/2689). v5.0.38+
|
||||
- [x] System: [Experimental] Support Apple Silicon M1(aarch64), [#2747](https://github.com/ossrs/srs/issues/2747). v5.0.41+
|
||||
- [x] System: [Experimental] Support distributed tracing by Tencent Cloud APM. v5.0.64+
|
||||
- [x] System: [Experimental] Support grab backtrace stack when assert fail. v5.0.80+
|
||||
- [x] System: [Experimental] Support Google Address Sanitizer, [#3216](https://github.com/ossrs/srs/issues/3216). v5.0.81+
|
||||
- [x] System: [Experimental] Windows: Support cygwin pipline and packager, [#2532](https://github.com/ossrs/srs/issues/2532). v5.0.89+
|
||||
- [x] System: [Experimental] Support H.265 over RTMP and HTTP-FLV, [#465](https://github.com/ossrs/srs/issues/465). v6.0.2+
|
||||
- [x] System: [Experimental] Support H.265 over HTTP-TS and HLS, [#465](https://github.com/ossrs/srs/issues/465). v6.0.11+
|
||||
- [x] System: [Experimental] Support H.265 over MPEG-DASH and DVR to MP4/FLV, [#465](https://github.com/ossrs/srs/issues/465). v6.0.14+
|
||||
- [x] System: [Experimental] Support H.265 over SRT and GB, [#465](https://github.com/ossrs/srs/issues/465). v6.0.25+
|
||||
- [x] API: Support HTTP API([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/http-api), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/http-api)) for system management. v1.0.0+
|
||||
- [x] API: Support HTTP callback([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/http-callback), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/http-callback)) for authentication and integration. v2.0.0+
|
||||
- [x] API: Support on_play/stop/publish/unpublish for WebRTC, [#2509](https://github.com/ossrs/srs/issues/2509). v4.0.163+
|
||||
- [x] API: Support statistic and on_play/stop for HLS stream, [#2578](https://github.com/ossrs/srs/issues/2578). v4.0.163+
|
||||
- [x] API: Support reuse HTTP Stream port for HTTP API, [#2881](https://github.com/ossrs/srs/issues/2881). v5.0.47+
|
||||
- [x] API: [Experimental] Support Prometheus exporter, [#2899](https://github.com/ossrs/srs/issues/2899). v5.0.67+
|
||||
- [x] Live: Support Edge Cluster for live streaming, see ([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/edge), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/edge)). v1.0.0+
|
||||
- [x] Live: Support Origin server for converting RTMP to HTTP-FLV([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-http-flv), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/sample-http-flv)) and HLS([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/delivery-hls), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/delivery-hls)). v3.0.0+
|
||||
- [x] Live: Support Edge server for converting RTMP to HTTP-FLV([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-http-flv), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/sample-http-flv)). v1.0.0+
|
||||
- [x] Live: Support HLS with aac(h.264+aac) and mp3(h.264+mp3) codec, please read [bug #301](https://github.com/ossrs/srs/issues/301). v1.0.0+
|
||||
- [x] Live: Support transmux RTMP to HTTP-FLV/MP3/AAC/TS, please read wiki([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/delivery-http-flv), [EN](https://ossrs.net/lts/zh-cn/docs/v4/doc/delivery-http-flv)). v1.0.0+
|
||||
- [x] Live: Support timestamp correcting for long time(>4.6hours) publishing/playing. v1.0.0+
|
||||
- [x] Live: Support gop-cache([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/low-latency#gop-cache), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/low-latency#gop-cache)) for player fast startup. v1.0.0+
|
||||
- [x] Live: High performance([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/performance), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/performance)) RTMP/HTTP-FLV, 6000+ connections. v2.0.0+
|
||||
- [x] Live: Enhanced RTMP url which supports vhost in stream, read [#1059](https://github.com/ossrs/srs/issues/1059). v1.0.0+
|
||||
- [x] Live: Support origin cluster, please read [#464](https://github.com/ossrs/srs/issues/464), [RTMP 302](https://github.com/ossrs/srs/issues/92). v3.0.0+
|
||||
- [x] Live: Support NGINX HLS Cluster, see [CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-hls-cluster) or [EN](https://ossrs.io/lts/en-us/docs/v4/doc/sample-hls-cluster). v5.0.28+
|
||||
- [x] Live: SRT: Support PUSH SRT by IP and optional port, see [#3198](https://github.com/ossrs/srs/issues/3198). v5.0.76+
|
||||
- [x] Live: Kickoff publisher when stream is idle, which means no players. v5.0.144+
|
||||
- [x] Live: [Experimental] Support SRT server, read [#1147](https://github.com/ossrs/srs/issues/1147). v4.0.143+
|
||||
- [x] Live: [Experimental] Support Coroutine Native SRT over ST, [#3010](https://github.com/ossrs/srs/pull/3010). v5.0.30+
|
||||
- [x] Live: [Experimental] Support MPEG-DASH, Dynamic Adaptive Streaming over HTTP, read [#299](https://github.com/ossrs/srs/issues/299). v5.0.96+
|
||||
- [x] RTC: Support playing stream by WebRTC, [#307](https://github.com/ossrs/srs/issues/307). v4.0.17+
|
||||
- [x] RTC: Support publishing stream by WebRTC, [#307](https://github.com/ossrs/srs/issues/307). v4.0.17+
|
||||
- [x] RTC: Support mux RTP/RTCP/DTLS/SRTP on one port for WebRTC, [#307](https://github.com/ossrs/srs/issues/307). v4.0.17+
|
||||
- [x] RTC: Support client address changing for WebRTC, [#307](https://github.com/ossrs/srs/issues/307). v4.0.17+
|
||||
- [x] RTC: Support transcode RTMP/AAC to WebRTC/Opus, [#307](https://github.com/ossrs/srs/issues/307). v4.0.17+
|
||||
- [x] RTC: Support [Unity](https://github.com/ossrs/srs-unity) to publish or play stream. v5.0.62+
|
||||
- [x] RTC: [Experimental] Support AV1 codec for WebRTC, [#2324](https://github.com/ossrs/srs/issues/2324). v4.0.207+
|
||||
- [x] RTC: [Experimental] Support transmux RTC to RTMP, [#2093](https://github.com/ossrs/srs/issues/2093). v4.0.95
|
||||
- [x] RTC: [Experimental] Support WebRTC over TCP directly, [#2852](https://github.com/ossrs/srs/issues/2852). v5.0.60+
|
||||
- [x] RTC: [Experimental] Support WHIP(WebRTC-HTTP ingestion protocol), [#3170](https://github.com/ossrs/srs/issues/3170). v5.0.61+
|
||||
- [x] RTC: [Experimental] Support [Larix Broadcaster](https://softvelum.com/larix/), [#3476](https://github.com/ossrs/srs/issues/3476). v5.0.148+
|
||||
- [x] Other: Support ingesting([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/ingest), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/ingest)) other protocols to SRS by FFMPEG. v1.0.0+
|
||||
- [x] Other: Support forwarding([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/forward), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/forward)) to other RTMP servers. v1.0.0+
|
||||
- [x] Other: Support transcoding([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/ffmpeg), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/ffmpeg)) by FFMPEG. v1.0.0+
|
||||
- [x] Other: All wikis are writen in [Chinese](https://ossrs.net) and [English](https://ossrs.io). v2.0.23+
|
||||
- [x] Other: Support valgrind and latest ARM by patching ST, read [ST#1](https://github.com/ossrs/state-threads/issues/1) and [ST#2](https://github.com/ossrs/state-threads/issues/2). v3.0.11+
|
||||
- [x] Other: Enhanced complex error code with description and stack, read [#913](https://github.com/ossrs/srs/issues/913). v3.0.26+
|
||||
- [x] Other: Support test coverage for core/kernel/protocol/service. v3.0.91+
|
||||
- [x] Other: Support a simple [mgmt console](http://ossrs.net/console/), please read [srs-console](https://github.com/ossrs/srs-console). v3.0.43+
|
||||
- [x] Other: Support dynamic forwarding by backend api, [#2799](https://github.com/ossrs/srs/pull/2799). v5.0.24+
|
||||
- [x] Other: Support write log to tencent cloud CLS. v5.0.44+
|
||||
- [x] Other: [Experimental] Support pushing MPEG-TS over UDP, please read [bug #250](https://github.com/ossrs/srs/issues/250). v2.0.111+
|
||||
- [x] Other: [Experimental] Support pushing FLV over HTTP POST, please read wiki([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/streamer#push-http-flv-to-srs), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/streamer#push-http-flv-to-srs)). v2.0.163+
|
||||
- [x] Other: [Experimental] Support push stream by GB28181, [#3176](https://github.com/ossrs/srs/issues/3176). v5.0.74+
|
||||
- [x] Other: Support WHIP/WHEP player, [#3460](https://github.com/ossrs/srs/pull/3460). v5.0.147+
|
||||
- [ ] System: Proxy to extend origin servers, [#3138](https://github.com/ossrs/srs/issues/3138).
|
||||
- [ ] System: Support source cleanup for idle streams, [#413](https://github.com/ossrs/srs/issues/413).
|
||||
- [ ] System: Support JT808 and JT1708 for transport, [#3420](https://github.com/ossrs/srs/issues/3420).
|
||||
- [ ] System: SRS integrates with kaldi or K2 for live and WebRTC, [#3421](https://github.com/ossrs/srs/issues/3421).
|
||||
- [ ] Live: Support HLS variant, [#463](https://github.com/ossrs/srs/issues/463).
|
||||
- [ ] RTC: Support IETF-QUIC for WebRTC Cluster, [#2091](https://github.com/ossrs/srs/issues/2091).
|
||||
- [ ] RTC: Improve RTC performance to 5K by multiple threading, [#2188](https://github.com/ossrs/srs/issues/2188).
|
||||
- [ ] Other: Support change user to run SRS, [#1111](https://github.com/ossrs/srs/issues/1111).
|
||||
- [x] [Deprecated] Live: Support Adobe HDS(f4m), please read wiki([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/delivery-hds), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/delivery-hds)) and [#1535](https://github.com/ossrs/srs/issues/1535). v2.0.138+
|
||||
- [x] [Deprecated] Other: Support bandwidth testing, please read [#1535](https://github.com/ossrs/srs/issues/1535). v1.0.0+
|
||||
- [x] [Deprecated] Other: Support Adobe FMS/AMS token traverse([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/drm#tokentraverse), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/drm#tokentraverse)) authentication, please read [#1535](https://github.com/ossrs/srs/issues/1535). v1.0.0+
|
||||
- [x] [Removed] Other: Support pushing RTSP, please read [#2304](https://github.com/ossrs/srs/issues/2304#issuecomment-826009290).
|
||||
- [x] [Removed] Other: Support HTTP RAW API, please read [#2653](https://github.com/ossrs/srs/issues/2653).
|
||||
- [x] [Removed] Other: Support RTMP client library: [srs-librtmp](https://github.com/ossrs/srs-librtmp).
|
||||
|
||||
> Remark: About the milestone and product plan, please read ([CN](https://ossrs.net/lts/zh-cn/product), [EN](https://ossrs.io/lts/en-us/product)) wiki.
|
||||
|
||||
Executable
+107
@@ -0,0 +1,107 @@
|
||||
# Performance
|
||||
|
||||
Here are the listed performance benchmark data with corresponding commits for your reference.
|
||||
|
||||
* [Performance Guide for x86/x64 Tests.](https://ossrs.net/lts/zh-cn/docs/v4/doc/performance)
|
||||
* [Performance Guide for RaspberryPi.](https://ossrs.net/lts/zh-cn/docs/v4/doc/raspberrypi)
|
||||
* If you are interested in multiple processes performance, please refer to [#775](https://github.com/ossrs/srs/issues/775): REUSEPORT or OriginCluster([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/origin-cluster)/[EN](https://ossrs.io/lts/en-us/docs/v4/doc/origin-cluster)).
|
||||
* For RTC benchmarking, you may use [srs-bench](https://github.com/ossrs/srs-bench/tree/feature/rtc#usage).
|
||||
|
||||
## Play RTMP benchmark
|
||||
|
||||
The following data reflects the performance of RTMP playback, as tested using the [srs-bench](https://github.com/ossrs/srs-bench) tool:
|
||||
|
||||
| Update | SRS | Clients | Type | CPU | Memory | Commit |
|
||||
| ------------- | --------- | ------------- | ------------- | --------- | -------- |--------------------------------------------------------------------------------------|
|
||||
| 2014-12-07 | 2.0.67 | 10k(10000) | players | 95% | 656MB | [code](https://github.com/ossrs/srs/commit/1311b6fe6576fd7b9c6d299b0f8f2e8d202f4bf8) |
|
||||
| 2014-12-05 | 2.0.57 | 9.0k(9000) | players | 90% | 468MB | [code](https://github.com/ossrs/srs/commit/9ee138746f83adc26f0e236ec017f4d68a300004) |
|
||||
| 2014-12-05 | 2.0.55 | 8.0k(8000) | players | 89% | 360MB | [code](https://github.com/ossrs/srs/commit/58136ec178e3d47db6c90a59875d7e40946936e5) |
|
||||
| 2014-11-22 | 2.0.30 | 7.5k(7500) | players | 87% | 320MB | [code](https://github.com/ossrs/srs/commit/58136ec178e3d47db6c90a59875d7e40946936e5) |
|
||||
| 2014-11-13 | 2.0.15 | 6.0k(6000) | players | 82% | 203MB | [code](https://github.com/ossrs/srs/commit/cc6aca9ad55342a06440ce7f3b38453776b2b2d1) |
|
||||
| 2014-11-12 | 2.0.14 | 3.5k(3500) | players | 95% | 78MB | [code](https://github.com/ossrs/srs/commit/8acd143a7a152885b815999162660fd4e7a3f247) |
|
||||
| 2014-11-12 | 2.0.14 | 2.7k(2700) | players | 69% | 59MB | - |
|
||||
| 2014-11-11 | 2.0.12 | 2.7k(2700) | players | 85% | 66MB | - |
|
||||
| 2014-11-11 | 1.0.5 | 2.7k(2700) | players | 85% | 66MB | - |
|
||||
| 2014-07-12 | 0.9.156 | 2.7k(2700) | players | 89% | 61MB | [code](https://github.com/ossrs/srs/commit/1ae3e6c64cc5cee90e6050c26968ebc3c18281be) |
|
||||
| 2014-07-12 | 0.9.156 | 1.8k(1800) | players | 68% | 38MB | - |
|
||||
| 2013-11-28 | 0.5.0 | 1.8k(1800) | players | 90% | 41M | - |
|
||||
|
||||
| Update | SFU | Clients | Type | CPU | Memory | Threads | VM |
|
||||
| ---------- | ---------------- | -------- | ------------- | --------- | -------- | ------- | ---- |
|
||||
| 2021-05-11 | SRS/v4.0.105 | 4000 | players | ~94% x1 | 419MB | 1 | G5 8CPU |
|
||||
| 2021-05-11 | NginxRTMP/v1.2.1 | 2400 | players | ~92% x1 | 173MB | 1 | G5 8CPU |
|
||||
|
||||
> Note: The test was conducted on CentOS7 with a video bitrate of 600Kbps and CPU of G5-2.5GHZ (SkyLake).
|
||||
|
||||
## Publish RTMP benchmark
|
||||
|
||||
The following data reflects RTMP publishing performance, as tested using the [srs-bench](https://github.com/ossrs/srs-bench) tool:
|
||||
|
||||
| Update | SRS | Clients | Type | CPU | Memory | Commit |
|
||||
| ------------- | --------- | ------------- | ------------- | --------- | -------- | ------------ |
|
||||
| 2014-12-04 | 2.0.52 | 4.0k(4000) | publishers | 80% | 331MB | [code][p5] |
|
||||
| 2014-12-04 | 2.0.51 | 2.5k(2500) | publishers | 91% | 259MB | [code][p4] |
|
||||
| 2014-12-04 | 2.0.49 | 2.5k(2500) | publishers | 95% | 404MB | [code][p3] |
|
||||
| 2014-12-04 | 2.0.49 | 1.4k(1400) | publishers | 68% | 144MB | - |
|
||||
| 2014-12-03 | 2.0.48 | 1.4k(1400) | publishers | 95% | 140MB | [code][p2] |
|
||||
| 2014-12-03 | 2.0.47 | 1.4k(1400) | publishers | 95% | 140MB | - |
|
||||
| 2014-12-03 | 2.0.47 | 1.2k(1200) | publishers | 84% | 76MB | [code][p1] |
|
||||
| 2014-12-03 | 2.0.12 | 1.2k(1200) | publishers | 96% | 43MB | - |
|
||||
| 2014-12-03 | 1.0.10 | 1.2k(1200) | publishers | 96% | 43MB | - |
|
||||
|
||||
| Update | SFU | Clients | Type | CPU | Memory | Threads | VM |
|
||||
| ---------- | ---------------- | -------- | ------------- | --------- | -------- | ------- | ---- |
|
||||
| 2021-05-11 | SRS/v4.0.105 | 2300 | publishers | ~89% x1 | 1.1GB | 1 | G5 8CPU |
|
||||
| 2021-05-11 | NginxRTMP/v1.2.1 | 1300 | publishers | ~84% x1 | 198MB | 1 | G5 8CPU |
|
||||
|
||||
> Note: The test was conducted on CentOS7 with a video bitrate of 600Kbps and CPU of G5-2.5GHZ (SkyLake).
|
||||
|
||||
##Play HTTP FLV benchmark
|
||||
|
||||
Here is the data for HTTP-FLV playback, as tested using the [srs-bench](https://github.com/ossrs/srs-bench) tool:
|
||||
|
||||
| Update | SRS | Clients | Type | CPU | Memory | Commit |
|
||||
| ------------- | --------- | ------------- | ------------- | --------- | -------- | ------------ |
|
||||
| 2014-05-25 | 2.0.171 | 6.0k(6000) | players | 84% | 297MB | [code][p20] |
|
||||
| 2014-05-24 | 2.0.170 | 3.0k(3000) | players | 89% | 96MB | [code][p19] |
|
||||
| 2014-05-24 | 2.0.169 | 3.0k(3000) | players | 94% | 188MB | [code][p18] |
|
||||
| 2014-05-24 | 2.0.168 | 2.3k(2300) | players | 92% | 276MB | [code][p17] |
|
||||
| 2014-05-24 | 2.0.167 | 1.0k(1000) | players | 82% | 86MB | - |
|
||||
|
||||
## RTC benchmark
|
||||
|
||||
The following data reflects WebRTC playback performance, as tested using the [srs-bench](https://github.com/ossrs/srs-bench/tree/feature/rtc#usage) tool:
|
||||
|
||||
| Update | SFU | Clients | Type | CPU | Memory | Threads | VM |
|
||||
| ---------- | ------------- | -------- | ------------- | --------- | -------- | ------- | ---- |
|
||||
| 2021-05-10 | SRS/v4.0.105 | 2000 | players | ~94% x1 | 462MB | 1 | G7 2CPU |
|
||||
| 2021-05-10 | SRS/v4.0.105 | 1000 | players | ~90% x1 | 180MB | 1 | G5 2CPU |
|
||||
| 2021-03-31 | SRS/v4.0.87 | 800 | players | ~94% x1 | 444MB | 1 | G5 2CPU |
|
||||
| 2021-05-10 | Janus/v0.11.1 | 700 | players | ~93% x2 | 430MB | 24 | G5 2CPU |
|
||||
| 2021-05-10 | SRS/v4.0.105 | 1700 | publishers | ~92% x1 | 334MB | 1 | G7 2CPU |
|
||||
| 2021-05-10 | SRS/v4.0.105 | 950 | publishers | ~92% x1 | 132MB | 1 | G5 2CPU |
|
||||
| 2021-03-31 | SRS/v4.0.87 | 550 | publishers | ~86% x1 | 1.3GB | 1 | G5 2CPU |
|
||||
| 2021-05-10 | Janus/v0.11.1 | 350 | publishers | ~93% x2 | 405MB | 23 | G5 2CPU |
|
||||
|
||||
> Note: The test was conducted on CentOS7 with a video bitrate of 600Kbps and CPU of G5-2.5GHZ (SkyLake).
|
||||
|
||||
## Latency benchmark
|
||||
|
||||
The following benchmark data shows end-to-end latency tested using the srs-bench tool with SRS running in real-time
|
||||
configuration([CN](https://ossrs.net/lts/zh-cn/docs/v4/doc/low-latency), [EN](https://ossrs.io/lts/en-us/docs/v4/doc/low-latency)):
|
||||
|
||||
| Update | SRS | Protocol | VP6 | H.264 | VP6+MP3 | H.264+MP3 |
|
||||
| ------------- | --------- | --------- | --------- | --------- | --------- | -------- |
|
||||
| 2014-12-16 | 2.0.72 | RTMP | 0.1s | 0.4s |[0.8s][p15]|[0.6s][p16]|
|
||||
| 2014-12-12 | 2.0.70 | RTMP |[0.1s][p13]|[0.4s][p14]| 1.0s | 0.9s |
|
||||
| 2014-12-03 | 1.0.10 | RTMP | 0.4s | 0.4s | 0.9s | 1.2s |
|
||||
| 2021-04-02 | 4.0.87 | WebRTC | x | 80ms | x | x |
|
||||
|
||||
> 2018-08-05, [c45f72e](https://github.com/ossrs/srs/commit/c45f72ef7bac9c7cf85b9125fc9e3aafd53f396f), Refine HTTP-FLV latency, support realtime mode. 2.0.252
|
||||
|
||||
> Note: Multiple factors can impact end-to-end latency, such as the encoder, server, protocol, player, and network.
|
||||
|
||||
> Note: VLC player is not recommended for low latency use scenarios due to its large buffer, resulting in significant latency.
|
||||
|
||||
Winlin 2021
|
||||
|
||||
Executable
+12
@@ -0,0 +1,12 @@
|
||||
# Doc
|
||||
|
||||
The reference docs.
|
||||
|
||||
* [SRS 4.0 English](https://ossrs.io/lts/en-us/docs/v4/tools/specs)
|
||||
* [SRS 4.0 中文文档](https://ossrs.net/lts/zh-cn/docs/v4/tools/specs)
|
||||
|
||||
* [SRS 5.0 English](https://ossrs.io/lts/en-us/docs/v5/tools/specs)
|
||||
* [SRS 5.0 中文文档](https://ossrs.net/lts/zh-cn/docs/v5/tools/specs)
|
||||
|
||||
Winlin
|
||||
|
||||
Executable
+309
@@ -0,0 +1,309 @@
|
||||
# Resources
|
||||
|
||||
The resources of SRS.
|
||||
|
||||
## Ports
|
||||
|
||||
The ports used by SRS, kernel services:
|
||||
|
||||
* `tcp://1935`, for RTMP live streaming server([CN][v4_CN_DeliveryRTMP],[EN][v4_EN_DeliveryRTMP]).
|
||||
* `tcp://1985`, HTTP API server, for HTTP-API([CN][v4_CN_HTTPApi], [EN][v4_EN_HTTPApi]), WebRTC([CN][v4_CN_WebRTC], [EN][v4_EN_WebRTC]), etc.
|
||||
* `tcp://8080`, HTTP live streaming server, HTTP-FLV([CN][v4_CN_SampleHttpFlv], [EN][v4_EN_SampleHttpFlv]), HLS([CN][v4_CN_SampleHLS], [EN][v4_EN_SampleHLS]) as such.
|
||||
* `udp://8000`, WebRTC Media([CN][v4_CN_WebRTC], [EN][v4_EN_WebRTC]) server.
|
||||
|
||||
For optional HTTPS services, which might be provided by other web servers:
|
||||
|
||||
* `tcp://8088`, HTTPS live streaming server.
|
||||
* `tcp://1990`, HTTPS API server.
|
||||
|
||||
For optional stream caster services, to push streams to SRS:
|
||||
|
||||
* `udp://8935`, Stream Caster: [Push MPEGTS over UDP](https://ossrs.net/lts/zh-cn/docs/v4/doc/streamer#push-mpeg-ts-over-udp) server.
|
||||
* `tcp://554`, Stream Caster: [Push RTSP](https://ossrs.net/lts/zh-cn/docs/v4/doc/streamer#push-rtsp-to-srs) server.
|
||||
* `tcp://8936`, Stream Caster: [Push HTTP-FLV](https://ossrs.net/lts/zh-cn/docs/v4/doc/streamer#push-http-flv-to-srs) server.
|
||||
* `udp://10080`, Stream Caster: [Push SRT Media](https://github.com/ossrs/srs/issues/1147#issuecomment-577469119) server.
|
||||
|
||||
For external services to work with SRS:
|
||||
|
||||
* `udp://1989`, [WebRTC Signaling](https://github.com/ossrs/signaling#usage) server.
|
||||
|
||||
## APIs
|
||||
|
||||
The API used by SRS:
|
||||
|
||||
* `/api/v1/` The HTTP API path.
|
||||
* `/rtc/v1/` The HTTP API path for RTC.
|
||||
* `/sig/v1/` The [demo signaling](https://github.com/ossrs/signaling) API.
|
||||
|
||||
Other API used by [ossrs.net](https://ossrs.net):
|
||||
|
||||
* `/gif/v1` The statistic API.
|
||||
* `/service/v1/` The latest available version API.
|
||||
* `/ws-service/v1/` The latest available version API, by websocket.
|
||||
* `/im-service/v1/` The latest available version API, by IM.
|
||||
* `/code-service/v1/` The latest available version API, by Code verification.
|
||||
|
||||
The statistic path for [ossrs.net](https://ossrs.net):
|
||||
|
||||
* `/srs/xxx` The GitHub pages for [srs](https://github.com/ossrs/srs)
|
||||
* `/wiki/xxx` The GitHub wiki for [srs](https://ossrs.net/lts/zh-cn/docs/v4/doc/getting-started)
|
||||
* `/release/xxx` The pages for [ossrs.net](https://ossrs.net)
|
||||
* `/console/xxx` The pages for [console](http://ossrs.net/console/)
|
||||
* `/player/xxx` The pages for [players and publishers](http://ossrs.net/players/)
|
||||
* `/k8s/xxx` The template and repository deploy by K8s, like [srs-k8s-template](https://github.com/ossrs/srs-k8s-template)
|
||||
|
||||
## Mirrors
|
||||
|
||||
Gitee: [https://gitee.com/ossrs/srs][gitee], the GIT usage([CN][v4_CN_Git], [EN][v4_EN_Git])
|
||||
|
||||
```
|
||||
git clone https://gitee.com/ossrs/srs.git &&
|
||||
cd srs && git remote set-url origin https://github.com/ossrs/srs.git && git pull
|
||||
```
|
||||
|
||||
> Remark: For users in China, recomment to use mirror from CSDN or OSChina, because they are much faster.
|
||||
|
||||
Gitlab: [https://gitlab.com/winlinvip/srs-gitlab][gitlab], the GIT usage([CN][v4_CN_Git], [EN][v4_EN_Git])
|
||||
|
||||
```
|
||||
git clone https://gitlab.com/winlinvip/srs-gitlab.git srs &&
|
||||
cd srs && git remote set-url origin https://github.com/ossrs/srs.git && git pull
|
||||
```
|
||||
|
||||
Github: [https://github.com/ossrs/srs][srs], the GIT usage([CN][v4_CN_Git], [EN][v4_EN_Git])
|
||||
|
||||
```
|
||||
git clone https://github.com/ossrs/srs.git
|
||||
```
|
||||
|
||||
| Branch | Cost | Size | CMD |
|
||||
| --- | --- | --- | --- |
|
||||
| 3.0release | 2m19.931s | 262MB | git clone -b 3.0release https://gitee.com/ossrs/srs.git |
|
||||
| 3.0release | 0m56.515s | 95MB | git clone -b 3.0release --depth=1 https://gitee.com/ossrs/srs.git |
|
||||
| develop | 2m22.430s | 234MB | git clone -b develop https://gitee.com/ossrs/srs.git |
|
||||
| develop | 0m46.421s | 42MB | git clone -b develop --depth=1 https://gitee.com/ossrs/srs.git |
|
||||
| min | 2m22.865s | 217MB | git clone -b min https://gitee.com/ossrs/srs.git |
|
||||
| min | 0m36.472s | 11MB | git clone -b min --depth=1 https://gitee.com/ossrs/srs.git |
|
||||
|
||||
[authors]: https://github.com/ossrs/srs/blob/4.0release/trunk/AUTHORS.txt
|
||||
[bigthanks]: https://ossrs.net/lts/zh-cn/product#release40
|
||||
[st]: https://github.com/ossrs/state-threads
|
||||
[st2]: https://github.com/ossrs/state-threads/tree/srs
|
||||
[state-threads]: https://github.com/ossrs/state-threads/tree/srs
|
||||
[nginx]: http://nginx.org/
|
||||
[srs]: https://github.com/ossrs/srs
|
||||
[gitee]: https://gitee.com/ossrs/srs
|
||||
[srs-bench]: https://github.com/ossrs/srs-bench
|
||||
[srs-ngb]: https://github.com/ossrs/srs-console
|
||||
[srs-librtmp]: https://github.com/ossrs/srs-librtmp
|
||||
[gitlab]: https://gitlab.com/winlinvip/srs-gitlab
|
||||
[console]: http://ossrs.net:8080/console
|
||||
[docker-srs3]: https://github.com/ossrs/srs-docker/tree/v3#usage
|
||||
[docker-srs4]: https://github.com/ossrs/srs-docker/tree/v4#usage
|
||||
[docker-dev]: https://github.com/ossrs/srs-docker/tree/dev#usage
|
||||
|
||||
[v4_CN_Git]: https://ossrs.net/lts/zh-cn/docs/v4/doc/git
|
||||
[v4_EN_Git]: https://ossrs.io/lts/en-us/docs/v4/doc/git
|
||||
[v4_CN_SampleRTMP]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-rtmp
|
||||
[v4_EN_SampleRTMP]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-rtmp
|
||||
[v4_CN_SampleRTMPCluster]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-rtmp-cluster
|
||||
[v4_EN_SampleRTMPCluster]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-rtmp-cluster
|
||||
[v4_CN_SampleOriginCluster]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-origin-cluster
|
||||
[v4_EN_SampleOriginCluster]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-origin-cluster
|
||||
[v4_CN_SampleHLS]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-hls
|
||||
[v4_EN_SampleHLS]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-hls
|
||||
[v4_CN_SampleTranscode2HLS]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-transcode-to-hls
|
||||
[v4_EN_SampleTranscode2HLS]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-transcode-to-hls
|
||||
[v4_CN_SampleFFMPEG]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-ffmpeg
|
||||
[v4_EN_SampleFFMPEG]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-ffmpeg
|
||||
[v4_CN_SampleForward]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-forward
|
||||
[v4_EN_SampleForward]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-forward
|
||||
[v4_CN_SampleRealtime]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-realtime
|
||||
[v4_EN_SampleRealtime]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-realtime
|
||||
[v4_CN_WebRTC]: https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc
|
||||
[v4_EN_WebRTC]: https://ossrs.io/lts/en-us/docs/v4/doc/webrtc
|
||||
[v4_CN_WebRTC#config-candidate]: https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#config-candidate
|
||||
[v4_EN_WebRTC#config-candidate]: https://ossrs.io/lts/en-us/docs/v4/doc/webrtc#config-candidate
|
||||
[v4_CN_SampleARM]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-arm
|
||||
[v4_EN_SampleARM]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-arm
|
||||
[v4_CN_SampleIngest]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-ingest
|
||||
[v4_EN_SampleIngest]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-ingest
|
||||
[v4_CN_SampleHTTP]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-http
|
||||
[v4_EN_SampleHTTP]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-http
|
||||
[v4_CN_SampleDemo]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sampleDemo
|
||||
[v4_EN_SampleDemo]: https://ossrs.io/lts/en-us/docs/v4/doc/sampleDemo
|
||||
[v4_CN_OriginCluster]: https://ossrs.net/lts/zh-cn/docs/v4/doc/origin-cluster
|
||||
[v4_EN_OriginCluster]: https://ossrs.io/lts/en-us/docs/v4/doc/origin-cluster
|
||||
[v4_CN_REUSEPORT]: https://ossrs.net/lts/zh-cn/docs/v4/doc/reuse-port
|
||||
[v4_EN_REUSEPORT]: https://ossrs.io/lts/en-us/docs/v4/doc/reuse-port
|
||||
[v4_CN_Sample]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample
|
||||
[v4_EN_Sample]: https://ossrs.io/lts/en-us/docs/v4/doc/sample
|
||||
|
||||
[v4_CN_Build]: https://ossrs.net/lts/zh-cn/docs/v4/doc/install
|
||||
[v4_EN_Build]: https://ossrs.io/lts/en-us/docs/v4/doc/install
|
||||
[v4_CN_Performance]: https://ossrs.net/lts/zh-cn/docs/v4/doc/performance
|
||||
[v4_EN_Performance]: https://ossrs.io/lts/en-us/docs/v4/doc/performance
|
||||
[v4_CN_DeliveryRTMP]: https://ossrs.net/lts/zh-cn/docs/v4/doc/delivery-rtmp
|
||||
[v4_EN_DeliveryRTMP]: https://ossrs.io/lts/en-us/docs/v4/doc/delivery-rtmp
|
||||
[v4_CN_Edge]: https://ossrs.net/lts/zh-cn/docs/v4/doc/edge
|
||||
[v4_EN_Edge]: https://ossrs.io/lts/en-us/docs/v4/doc/edge
|
||||
[v4_CN_RtmpUrlVhost]: https://ossrs.net/lts/zh-cn/docs/v4/doc/rtmp-url-vhost
|
||||
[v4_EN_RtmpUrlVhost]: https://ossrs.io/lts/en-us/docs/v4/doc/rtmp-url-vhost
|
||||
[v4_CN_RTMPHandshake]: https://ossrs.net/lts/zh-cn/docs/v4/doc/rtmp-handshake
|
||||
[v4_EN_RTMPHandshake]: https://ossrs.io/lts/en-us/docs/v4/doc/rtmp-handshake
|
||||
[v4_CN_HTTPServer]: https://ossrs.net/lts/zh-cn/docs/v4/doc/http-server
|
||||
[v4_EN_HTTPServer]: https://ossrs.io/lts/en-us/docs/v4/doc/http-server
|
||||
[v4_CN_DeliveryHLS]: https://ossrs.net/lts/zh-cn/docs/v4/doc/delivery-hls
|
||||
[v4_EN_DeliveryHLS]: https://ossrs.io/lts/en-us/docs/v4/doc/delivery-hls
|
||||
[v4_CN_DeliveryHLS2]: https://ossrs.net/lts/zh-cn/docs/v4/doc/delivery-hls#hlsaudioonly
|
||||
[v4_EN_DeliveryHLS2]: https://ossrs.io/lts/en-us/docs/v4/doc/delivery-hls#hlsaudioonly
|
||||
[v4_CN_Reload]: https://ossrs.net/lts/zh-cn/docs/v4/doc/reload
|
||||
[v4_EN_Reload]: https://ossrs.io/lts/en-us/docs/v4/doc/reload
|
||||
[v4_CN_LowLatency2]: https://ossrs.net/lts/zh-cn/docs/v4/doc/low-latency#gop-cache
|
||||
[v4_EN_LowLatency2]: https://ossrs.io/lts/en-us/docs/v4/doc/low-latency#gop-cache
|
||||
[v4_CN_Forward]: https://ossrs.net/lts/zh-cn/docs/v4/doc/forward
|
||||
[v4_EN_Forward]: https://ossrs.io/lts/en-us/docs/v4/doc/forward
|
||||
[v4_CN_FFMPEG]: https://ossrs.net/lts/zh-cn/docs/v4/doc/ffmpeg
|
||||
[v4_EN_FFMPEG]: https://ossrs.io/lts/en-us/docs/v4/doc/ffmpeg
|
||||
[v4_CN_HTTPCallback]: https://ossrs.net/lts/zh-cn/docs/v4/doc/http-callback
|
||||
[v4_EN_HTTPCallback]: https://ossrs.io/lts/en-us/docs/v4/doc/http-callback
|
||||
[v4_CN_SampleDemo]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sampleDemo
|
||||
[v4_EN_SampleDemo]: https://ossrs.io/lts/en-us/docs/v4/doc/sampleDemo
|
||||
[v4_CN_SrsLinuxArm]: https://ossrs.net/lts/zh-cn/docs/v4/doc/arm
|
||||
[v4_EN_SrsLinuxArm]: https://ossrs.io/lts/en-us/docs/v4/doc/arm
|
||||
[v4_CN_LinuxService]: https://ossrs.net/lts/zh-cn/docs/v4/doc/service
|
||||
[v4_EN_LinuxService]: https://ossrs.io/lts/en-us/docs/v4/doc/service
|
||||
[v4_CN_RTMP-ATC]: https://ossrs.net/lts/zh-cn/docs/v4/doc/rtmp-atc
|
||||
[v4_EN_RTMP-ATC]: https://ossrs.io/lts/en-us/docs/v4/doc/rtmp-atc
|
||||
[v4_CN_HTTPApi]: https://ossrs.net/lts/zh-cn/docs/v4/doc/http-api
|
||||
[v4_EN_HTTPApi]: https://ossrs.io/lts/en-us/docs/v4/doc/http-api
|
||||
[v4_CN_Ingest]: https://ossrs.net/lts/zh-cn/docs/v4/doc/ingest
|
||||
[v4_EN_Ingest]: https://ossrs.io/lts/en-us/docs/v4/doc/ingest
|
||||
[v4_CN_DVR]: https://ossrs.net/lts/zh-cn/docs/v4/doc/dvr
|
||||
[v4_EN_DVR]: https://ossrs.io/lts/en-us/docs/v4/doc/dvr
|
||||
[v4_CN_SrsLog]: https://ossrs.net/lts/zh-cn/docs/v4/doc/log
|
||||
[v4_EN_SrsLog]: https://ossrs.io/lts/en-us/docs/v4/doc/log
|
||||
[v4_CN_DRM2]: https://ossrs.net/lts/zh-cn/docs/v4/doc/drm#tokentraverse
|
||||
[v4_EN_DRM2]: https://ossrs.io/lts/en-us/docs/v4/doc/drm#tokentraverse
|
||||
[v4_CN_SampleHTTP]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-http
|
||||
[v4_EN_SampleHTTP]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-http
|
||||
[v4_CN_FlvVodStream]: https://ossrs.net/lts/zh-cn/docs/v4/doc/flv-vod-stream
|
||||
[v4_EN_FlvVodStream]: https://ossrs.io/lts/en-us/docs/v4/doc/flv-vod-stream
|
||||
[v4_CN_Security]: https://ossrs.net/lts/zh-cn/docs/v4/doc/security
|
||||
[v4_EN_Security]: https://ossrs.io/lts/en-us/docs/v4/doc/security
|
||||
[v4_CN_DeliveryHttpStream]: https://ossrs.net/lts/zh-cn/docs/v4/doc/delivery-http-flv
|
||||
[v4_EN_DeliveryHttpStream]: https://ossrs.io/lts/en-us/docs/v4/doc/delivery-http-flv
|
||||
[v4_CN_DeliveryHDS]: https://ossrs.net/lts/zh-cn/docs/v4/doc/delivery-hds
|
||||
[v4_EN_DeliveryHDS]: https://ossrs.io/lts/en-us/docs/v4/doc/delivery-hds
|
||||
[v4_CN_Streamer]: https://ossrs.net/lts/zh-cn/docs/v4/doc/streamer
|
||||
[v4_EN_Streamer]: https://ossrs.io/lts/en-us/docs/v4/doc/streamer
|
||||
[v4_CN_Streamer2]: https://ossrs.net/lts/zh-cn/docs/v4/doc/streamer#push-http-flv-to-srs
|
||||
[v4_EN_Streamer2]: https://ossrs.io/lts/en-us/docs/v4/doc/streamer#push-http-flv-to-srs
|
||||
[v4_CN_SampleHttpFlv]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-http-flv
|
||||
[v4_EN_SampleHttpFlv]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-http-flv
|
||||
[v4_CN_SampleHttpFlvCluster]: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-http-flvCluster
|
||||
[v4_EN_SampleHttpFlvCluster]: https://ossrs.io/lts/en-us/docs/v4/doc/sample-http-flvCluster
|
||||
[v4_CN_SampleDASH]:https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-dash
|
||||
[v4_EN_SampleDASH]:https://ossrs.io/lts/en-us/docs/v4/doc/sample-dash
|
||||
|
||||
[bug #547]: https://github.com/ossrs/srs/issues/547
|
||||
[bug #301]: https://github.com/ossrs/srs/issues/301
|
||||
[bug #459]: https://github.com/ossrs/srs/issues/459
|
||||
[bug #367]: https://github.com/ossrs/srs/issues/367
|
||||
[bug #257]: https://github.com/ossrs/srs/issues/257
|
||||
[bug #904]: https://github.com/ossrs/srs/issues/904
|
||||
[bug #913]: https://github.com/ossrs/srs/issues/913
|
||||
[bug #1059]: https://github.com/ossrs/srs/issues/1059
|
||||
[bug #92]: https://github.com/ossrs/srs/issues/92
|
||||
[bug #464]: https://github.com/ossrs/srs/issues/464
|
||||
[bug #460]: https://github.com/ossrs/srs/issues/460
|
||||
[bug #775]: https://github.com/ossrs/srs/issues/775
|
||||
[bug #307]: https://github.com/ossrs/srs/issues/307
|
||||
[bug #2324]: https://github.com/ossrs/srs/issues/2324
|
||||
[bug #1657]: https://github.com/ossrs/srs/issues/1657
|
||||
[bug #1500]: https://github.com/ossrs/srs/issues/1500
|
||||
[bug #738]: https://github.com/ossrs/srs/issues/738
|
||||
[bug #299]: https://github.com/ossrs/srs/issues/299
|
||||
[bug #250]: https://github.com/ossrs/srs/issues/250
|
||||
[bug #459]: https://github.com/ossrs/srs/issues/459
|
||||
[bug #470]: https://github.com/ossrs/srs/issues/470
|
||||
[bug #319]: https://github.com/ossrs/srs/issues/319
|
||||
[bug #1147]: https://github.com/ossrs/srs/issues/1147
|
||||
[bug #2304]: https://github.com/ossrs/srs/issues/2304
|
||||
[bug #1535]: https://github.com/ossrs/srs/issues/1535
|
||||
[bug #1342]: https://github.com/ossrs/srs/issues/1342
|
||||
[bug #1193]: https://github.com/ossrs/srs/issues/1193
|
||||
[bug #2093]: https://github.com/ossrs/srs/issues/2093
|
||||
[bug #465]: https://github.com/ossrs/srs/issues/465
|
||||
[bug #2091]: https://github.com/ossrs/srs/issues/2091
|
||||
[bug #2188]: https://github.com/ossrs/srs/issues/2188
|
||||
[bug #413]: https://github.com/ossrs/srs/issues/413
|
||||
[bug #1111]: https://github.com/ossrs/srs/issues/1111
|
||||
[bug #463]: https://github.com/ossrs/srs/issues/463
|
||||
[bug #775]: https://github.com/ossrs/srs/issues/775
|
||||
[bug #257-c0]: https://github.com/ossrs/srs/issues/257#issuecomment-66864413
|
||||
|
||||
[r3.0r5]: https://github.com/ossrs/srs/releases/tag/v3.0-r5
|
||||
[r3.0r4]: https://github.com/ossrs/srs/releases/tag/v3.0-r4
|
||||
[r3.0r3]: https://github.com/ossrs/srs/releases/tag/v3.0-r3
|
||||
[r3.0r2]: https://github.com/ossrs/srs/releases/tag/v3.0-r2
|
||||
[r3.0r1]: https://github.com/ossrs/srs/releases/tag/v3.0-r1
|
||||
[r3.0r0]: https://github.com/ossrs/srs/releases/tag/v3.0-r0
|
||||
[r3.0b4]: https://github.com/ossrs/srs/releases/tag/v3.0-b4
|
||||
[r3.0b3]: https://github.com/ossrs/srs/releases/tag/v3.0-b3
|
||||
[r3.0b2]: https://github.com/ossrs/srs/releases/tag/v3.0-b2
|
||||
[r3.0b1]: https://github.com/ossrs/srs/releases/tag/v3.0-b1
|
||||
[r3.0b0]: https://github.com/ossrs/srs/releases/tag/v3.0-b0
|
||||
[r3.0a9]: https://github.com/ossrs/srs/releases/tag/v3.0-a9
|
||||
[r3.0a8]: https://github.com/ossrs/srs/releases/tag/v3.0-a8
|
||||
[r3.0a7]: https://github.com/ossrs/srs/releases/tag/v3.0-a7
|
||||
[r3.0a6]: https://github.com/ossrs/srs/releases/tag/v3.0-a6
|
||||
[r3.0a5]: https://github.com/ossrs/srs/releases/tag/v3.0-a5
|
||||
[r3.0a4]: https://github.com/ossrs/srs/releases/tag/v3.0-a4
|
||||
[r3.0a3]: https://github.com/ossrs/srs/releases/tag/v3.0-a3
|
||||
[r3.0a2]: https://github.com/ossrs/srs/releases/tag/v3.0-a2
|
||||
[r3.0a1]: https://github.com/ossrs/srs/releases/tag/v3.0-a1
|
||||
[r3.0a0]: https://github.com/ossrs/srs/releases/tag/v3.0-a0
|
||||
[r2.0r8]: https://github.com/ossrs/srs/releases/tag/v2.0-r8
|
||||
[r2.0r7]: https://github.com/ossrs/srs/releases/tag/v2.0-r7
|
||||
[r2.0r6]: https://github.com/ossrs/srs/releases/tag/v2.0-r6
|
||||
[r2.0r5]: https://github.com/ossrs/srs/releases/tag/v2.0-r5
|
||||
[r2.0r4]: https://github.com/ossrs/srs/releases/tag/v2.0-r4
|
||||
[r2.0r3]: https://github.com/ossrs/srs/releases/tag/v2.0-r3
|
||||
[r2.0r2]: https://github.com/ossrs/srs/releases/tag/v2.0-r2
|
||||
[r2.0r1]: https://github.com/ossrs/srs/releases/tag/v2.0-r1
|
||||
[r2.0r0]: https://github.com/ossrs/srs/releases/tag/v2.0-r0
|
||||
[r2.0b4]: https://github.com/ossrs/srs/releases/tag/v2.0-b4
|
||||
[r2.0b3]: https://github.com/ossrs/srs/releases/tag/v2.0-b3
|
||||
[r2.0b2]: https://github.com/ossrs/srs/releases/tag/v2.0-b2
|
||||
[r2.0b1]: https://github.com/ossrs/srs/releases/tag/v2.0-b1
|
||||
[r2.0b0]: https://github.com/ossrs/srs/releases/tag/v2.0-b0
|
||||
[r2.0a3]: https://github.com/ossrs/srs/releases/tag/v2.0-a3
|
||||
[r2.0a2]: https://github.com/ossrs/srs/releases/tag/v2.0-a2
|
||||
[r2.0a1]: https://github.com/ossrs/srs/releases/tag/v2.0-a1
|
||||
[r2.0a0]: https://github.com/ossrs/srs/releases/tag/v2.0-a0
|
||||
[r1.0r4]: https://github.com/ossrs/srs/releases/tag/v1.0-r4
|
||||
[r1.0r3]: https://github.com/ossrs/srs/releases/tag/v1.0-r3
|
||||
[r1.0r2]: https://github.com/ossrs/srs/releases/tag/v1.0-r2
|
||||
[r1.0r1]: https://github.com/ossrs/srs/releases/tag/v1.0-r1
|
||||
[r1.0r0]: https://github.com/ossrs/srs/releases/tag/v1.0-r0
|
||||
[r1.0b0]: https://github.com/ossrs/srs/releases/tag/v0.9.8
|
||||
[r1.0a7]: https://github.com/ossrs/srs/releases/tag/v0.9.7
|
||||
[r1.0a6]: https://github.com/ossrs/srs/releases/tag/v0.9.6
|
||||
[r1.0a5]: https://github.com/ossrs/srs/releases/tag/v0.9.5
|
||||
[r1.0a4]: https://github.com/ossrs/srs/releases/tag/v0.9.4
|
||||
[r1.0a3]: https://github.com/ossrs/srs/releases/tag/v0.9.3
|
||||
[r1.0a2]: https://github.com/ossrs/srs/releases/tag/v0.9.2
|
||||
[r1.0a0]: https://github.com/ossrs/srs/releases/tag/v0.9.1
|
||||
[r0.9]: https://github.com/ossrs/srs/releases/tag/v0.9.0
|
||||
[r0.8]: https://github.com/ossrs/srs/releases/tag/v0.8.0
|
||||
[r0.7]: https://github.com/ossrs/srs/releases/tag/v0.7.0
|
||||
[r0.6]: https://github.com/ossrs/srs/releases/tag/v0.6.0
|
||||
[r0.5]: https://github.com/ossrs/srs/releases/tag/v0.5.0
|
||||
[r0.4]: https://github.com/ossrs/srs/releases/tag/v0.4.0
|
||||
[r0.3]: https://github.com/ossrs/srs/releases/tag/v0.3.0
|
||||
[r0.2]: https://github.com/ossrs/srs/releases/tag/v0.2.0
|
||||
[r0.1]: https://github.com/ossrs/srs/releases/tag/v0.1.0
|
||||
|
||||
[LICENSE]: https://github.com/ossrs/srs/blob/4.0release/LICENSE
|
||||
[LicenseMixing]: https://ossrs.net/lts/zh-cn/license
|
||||
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 8.5 KiB |
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 6.2 KiB |
Executable
+1
@@ -0,0 +1 @@
|
||||
Moved to https://github.com/ossrs/srs/blob/develop/trunk/doc/README.md
|
||||
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 44 KiB |
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 3.2 KiB |
Reference in New Issue
Block a user