mirror of https://github.com/ossrs/srs.git
Update README, move docs to trunk.
parent
5fc455ba3b
commit
5e876277b6
@ -0,0 +1,300 @@
|
||||
# Architecture
|
||||
|
||||
The architecture of SRS.
|
||||
|
||||
> Note: Please read **Wiki: Gettting Started( [EN](https://github.com/ossrs/srs/wiki/v4_EN_Home#getting-started) / [CN](https://github.com/ossrs/srs/wiki/v4_CN_Home#getting-started) )** first.
|
||||
|
||||
## 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-+->- StreamCaster(4) -(rtmp)-+-> SRS |
|
||||
| SRT, | | |
|
||||
| ......) | | |
|
||||
+----------------------+ | |
|
||||
| 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. Streamer: Remuxs other protocols to RTMP, please read [Streamer][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://github.com/ossrs/srs/wiki/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://github.com/ossrs/srs/wiki/v4_CN_Git
|
||||
[v4_EN_Git]: https://github.com/ossrs/srs/wiki/v4_EN_Git
|
||||
[v4_CN_SampleRTMP]: https://github.com/ossrs/srs/wiki/v4_CN_SampleRTMP
|
||||
[v4_EN_SampleRTMP]: https://github.com/ossrs/srs/wiki/v4_EN_SampleRTMP
|
||||
[v4_CN_SampleRTMPCluster]: https://github.com/ossrs/srs/wiki/v4_CN_SampleRTMPCluster
|
||||
[v4_EN_SampleRTMPCluster]: https://github.com/ossrs/srs/wiki/v4_EN_SampleRTMPCluster
|
||||
[v4_CN_SampleOriginCluster]: https://github.com/ossrs/srs/wiki/v4_CN_SampleOriginCluster
|
||||
[v4_EN_SampleOriginCluster]: https://github.com/ossrs/srs/wiki/v4_EN_SampleOriginCluster
|
||||
[v4_CN_SampleHLS]: https://github.com/ossrs/srs/wiki/v4_CN_SampleHLS
|
||||
[v4_EN_SampleHLS]: https://github.com/ossrs/srs/wiki/v4_EN_SampleHLS
|
||||
[v4_CN_SampleTranscode2HLS]: https://github.com/ossrs/srs/wiki/v4_CN_SampleTranscode2HLS
|
||||
[v4_EN_SampleTranscode2HLS]: https://github.com/ossrs/srs/wiki/v4_EN_SampleTranscode2HLS
|
||||
[v4_CN_SampleFFMPEG]: https://github.com/ossrs/srs/wiki/v4_CN_SampleFFMPEG
|
||||
[v4_EN_SampleFFMPEG]: https://github.com/ossrs/srs/wiki/v4_EN_SampleFFMPEG
|
||||
[v4_CN_SampleForward]: https://github.com/ossrs/srs/wiki/v4_CN_SampleForward
|
||||
[v4_EN_SampleForward]: https://github.com/ossrs/srs/wiki/v4_EN_SampleForward
|
||||
[v4_CN_SampleRealtime]: https://github.com/ossrs/srs/wiki/v4_CN_SampleRealtime
|
||||
[v4_EN_SampleRealtime]: https://github.com/ossrs/srs/wiki/v4_EN_SampleRealtime
|
||||
[v4_CN_WebRTC]: https://github.com/ossrs/srs/wiki/v4_CN_WebRTC
|
||||
[v4_EN_WebRTC]: https://github.com/ossrs/srs/wiki/v4_EN_WebRTC
|
||||
[v4_CN_WebRTC#config-candidate]: https://github.com/ossrs/srs/wiki/v4_CN_WebRTC#config-candidate
|
||||
[v4_EN_WebRTC#config-candidate]: https://github.com/ossrs/srs/wiki/v4_EN_WebRTC#config-candidate
|
||||
[v4_CN_SampleARM]: https://github.com/ossrs/srs/wiki/v4_CN_SampleARM
|
||||
[v4_EN_SampleARM]: https://github.com/ossrs/srs/wiki/v4_EN_SampleARM
|
||||
[v4_CN_SampleIngest]: https://github.com/ossrs/srs/wiki/v4_CN_SampleIngest
|
||||
[v4_EN_SampleIngest]: https://github.com/ossrs/srs/wiki/v4_EN_SampleIngest
|
||||
[v4_CN_SampleHTTP]: https://github.com/ossrs/srs/wiki/v4_CN_SampleHTTP
|
||||
[v4_EN_SampleHTTP]: https://github.com/ossrs/srs/wiki/v4_EN_SampleHTTP
|
||||
[v4_CN_SampleDemo]: https://github.com/ossrs/srs/wiki/v4_CN_SampleDemo
|
||||
[v4_EN_SampleDemo]: https://github.com/ossrs/srs/wiki/v4_EN_SampleDemo
|
||||
[v4_CN_OriginCluster]: https://github.com/ossrs/srs/wiki/v4_CN_OriginCluster
|
||||
[v4_EN_OriginCluster]: https://github.com/ossrs/srs/wiki/v4_EN_OriginCluster
|
||||
[v4_CN_REUSEPORT]: https://github.com/ossrs/srs/wiki/v4_CN_REUSEPORT
|
||||
[v4_EN_REUSEPORT]: https://github.com/ossrs/srs/wiki/v4_EN_REUSEPORT
|
||||
[v4_CN_Sample]: https://github.com/ossrs/srs/wiki/v4_CN_Sample
|
||||
[v4_EN_Sample]: https://github.com/ossrs/srs/wiki/v4_EN_Sample
|
||||
[v4_CN_Product]: https://github.com/ossrs/srs/wiki/v4_CN_Product
|
||||
[v4_EN_Product]: https://github.com/ossrs/srs/wiki/v4_EN_Product
|
||||
[v4_CN_Home]: https://github.com/ossrs/srs/wiki/v4_CN_Home
|
||||
[v4_EN_Home]: https://github.com/ossrs/srs/wiki/v4_EN_Home
|
||||
|
||||
[v4_CN_Compare]: https://github.com/ossrs/srs/wiki/v4_CN_Compare
|
||||
[v4_EN_Compare]: https://github.com/ossrs/srs/wiki/v4_EN_Compare
|
||||
[v4_CN_Build]: https://github.com/ossrs/srs/wiki/v4_CN_Build
|
||||
[v4_EN_Build]: https://github.com/ossrs/srs/wiki/v4_EN_Build
|
||||
[v4_CN_Performance]: https://github.com/ossrs/srs/wiki/v4_CN_Performance
|
||||
[v4_EN_Performance]: https://github.com/ossrs/srs/wiki/v4_EN_Performance
|
||||
[v4_CN_DeliveryRTMP]: https://github.com/ossrs/srs/wiki/v4_CN_DeliveryRTMP
|
||||
[v4_EN_DeliveryRTMP]: https://github.com/ossrs/srs/wiki/v4_EN_DeliveryRTMP
|
||||
[v4_CN_Edge]: https://github.com/ossrs/srs/wiki/v4_CN_Edge
|
||||
[v4_EN_Edge]: https://github.com/ossrs/srs/wiki/v4_EN_Edge
|
||||
[v4_CN_RtmpUrlVhost]: https://github.com/ossrs/srs/wiki/v4_CN_RtmpUrlVhost
|
||||
[v4_EN_RtmpUrlVhost]: https://github.com/ossrs/srs/wiki/v4_EN_RtmpUrlVhost
|
||||
[v4_CN_RTMPHandshake]: https://github.com/ossrs/srs/wiki/v4_CN_RTMPHandshake
|
||||
[v4_EN_RTMPHandshake]: https://github.com/ossrs/srs/wiki/v4_EN_RTMPHandshake
|
||||
[v4_CN_HTTPServer]: https://github.com/ossrs/srs/wiki/v4_CN_HTTPServer
|
||||
[v4_EN_HTTPServer]: https://github.com/ossrs/srs/wiki/v4_EN_HTTPServer
|
||||
[v4_CN_DeliveryHLS]: https://github.com/ossrs/srs/wiki/v4_CN_DeliveryHLS
|
||||
[v4_EN_DeliveryHLS]: https://github.com/ossrs/srs/wiki/v4_EN_DeliveryHLS
|
||||
[v4_CN_DeliveryHLS2]: https://github.com/ossrs/srs/wiki/v4_CN_DeliveryHLS#hlsaudioonly
|
||||
[v4_EN_DeliveryHLS2]: https://github.com/ossrs/srs/wiki/v4_EN_DeliveryHLS#hlsaudioonly
|
||||
[v4_CN_Reload]: https://github.com/ossrs/srs/wiki/v4_CN_Reload
|
||||
[v4_EN_Reload]: https://github.com/ossrs/srs/wiki/v4_EN_Reload
|
||||
[v4_CN_LowLatency2]: https://github.com/ossrs/srs/wiki/v4_CN_LowLatency#gop-cache
|
||||
[v4_EN_LowLatency2]: https://github.com/ossrs/srs/wiki/v4_EN_LowLatency#gop-cache
|
||||
[v4_CN_Forward]: https://github.com/ossrs/srs/wiki/v4_CN_Forward
|
||||
[v4_EN_Forward]: https://github.com/ossrs/srs/wiki/v4_EN_Forward
|
||||
[v4_CN_FFMPEG]: https://github.com/ossrs/srs/wiki/v4_CN_FFMPEG
|
||||
[v4_EN_FFMPEG]: https://github.com/ossrs/srs/wiki/v4_EN_FFMPEG
|
||||
[v4_CN_HTTPCallback]: https://github.com/ossrs/srs/wiki/v4_CN_HTTPCallback
|
||||
[v4_EN_HTTPCallback]: https://github.com/ossrs/srs/wiki/v4_EN_HTTPCallback
|
||||
[v4_CN_SampleDemo]: https://github.com/ossrs/srs/wiki/v4_CN_SampleDemo
|
||||
[v4_EN_SampleDemo]: https://github.com/ossrs/srs/wiki/v4_EN_SampleDemo
|
||||
[v4_CN_SrsLinuxArm]: https://github.com/ossrs/srs/wiki/v4_CN_SrsLinuxArm
|
||||
[v4_EN_SrsLinuxArm]: https://github.com/ossrs/srs/wiki/v4_EN_SrsLinuxArm
|
||||
[v4_CN_LinuxService]: https://github.com/ossrs/srs/wiki/v4_CN_LinuxService
|
||||
[v4_EN_LinuxService]: https://github.com/ossrs/srs/wiki/v4_EN_LinuxService
|
||||
[v4_CN_RTMP-ATC]: https://github.com/ossrs/srs/wiki/v4_CN_RTMP-ATC
|
||||
[v4_EN_RTMP-ATC]: https://github.com/ossrs/srs/wiki/v4_EN_RTMP-ATC
|
||||
[v4_CN_HTTPApi]: https://github.com/ossrs/srs/wiki/v4_CN_HTTPApi
|
||||
[v4_EN_HTTPApi]: https://github.com/ossrs/srs/wiki/v4_EN_HTTPApi
|
||||
[v4_CN_Ingest]: https://github.com/ossrs/srs/wiki/v4_CN_Ingest
|
||||
[v4_EN_Ingest]: https://github.com/ossrs/srs/wiki/v4_EN_Ingest
|
||||
[v4_CN_DVR]: https://github.com/ossrs/srs/wiki/v4_CN_DVR
|
||||
[v4_EN_DVR]: https://github.com/ossrs/srs/wiki/v4_EN_DVR
|
||||
[v4_CN_SrsLog]: https://github.com/ossrs/srs/wiki/v4_CN_SrsLog
|
||||
[v4_EN_SrsLog]: https://github.com/ossrs/srs/wiki/v4_EN_SrsLog
|
||||
[v4_CN_DRM2]: https://github.com/ossrs/srs/wiki/v4_CN_DRM#tokentraverse
|
||||
[v4_EN_DRM2]: https://github.com/ossrs/srs/wiki/v4_EN_DRM#tokentraverse
|
||||
[v4_CN_SampleHTTP]: https://github.com/ossrs/srs/wiki/v4_CN_SampleHTTP
|
||||
[v4_EN_SampleHTTP]: https://github.com/ossrs/srs/wiki/v4_EN_SampleHTTP
|
||||
[v4_CN_FlvVodStream]: https://github.com/ossrs/srs/wiki/v4_CN_FlvVodStream
|
||||
[v4_EN_FlvVodStream]: https://github.com/ossrs/srs/wiki/v4_EN_FlvVodStream
|
||||
[v4_CN_Security]: https://github.com/ossrs/srs/wiki/v4_CN_Security
|
||||
[v4_EN_Security]: https://github.com/ossrs/srs/wiki/v4_EN_Security
|
||||
[v4_CN_DeliveryHttpStream]: https://github.com/ossrs/srs/wiki/v4_CN_DeliveryHttpStream
|
||||
[v4_EN_DeliveryHttpStream]: https://github.com/ossrs/srs/wiki/v4_EN_DeliveryHttpStream
|
||||
[v4_CN_DeliveryHDS]: https://github.com/ossrs/srs/wiki/v4_CN_DeliveryHDS
|
||||
[v4_EN_DeliveryHDS]: https://github.com/ossrs/srs/wiki/v4_EN_DeliveryHDS
|
||||
[v4_CN_Streamer]: https://github.com/ossrs/srs/wiki/v4_CN_Streamer
|
||||
[v4_EN_Streamer]: https://github.com/ossrs/srs/wiki/v4_EN_Streamer
|
||||
[v4_CN_Streamer2]: https://github.com/ossrs/srs/wiki/v4_CN_Streamer#push-http-flv-to-srs
|
||||
[v4_EN_Streamer2]: https://github.com/ossrs/srs/wiki/v4_EN_Streamer#push-http-flv-to-srs
|
||||
[v4_CN_SampleHttpFlv]: https://github.com/ossrs/srs/wiki/v4_CN_SampleHttpFlv
|
||||
[v4_EN_SampleHttpFlv]: https://github.com/ossrs/srs/wiki/v4_EN_SampleHttpFlv
|
||||
[v4_CN_SampleHttpFlvCluster]: https://github.com/ossrs/srs/wiki/v4_CN_SampleHttpFlvCluster
|
||||
[v4_EN_SampleHttpFlvCluster]: https://github.com/ossrs/srs/wiki/v4_EN_SampleHttpFlvCluster
|
||||
[v4_CN_SampleDASH]:https://github.com/ossrs/srs/wiki/v4_CN_SampleDASH
|
||||
[v4_EN_SampleDASH]:https://github.com/ossrs/srs/wiki/v4_EN_SampleDASH
|
||||
|
||||
[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
|
||||
|
||||
|
||||
[v4_CN_Contact]: https://github.com/ossrs/srs/wiki/v4_CN_Contact
|
||||
[v4_EN_Contact]: https://github.com/ossrs/srs/wiki/v4_EN_Contact
|
||||
|
||||
[LICENSE]: https://github.com/ossrs/srs/blob/4.0release/LICENSE
|
||||
[LicenseMixing]: https://github.com/ossrs/srs/wiki/LicenseMixing
|
||||
|
||||
[release2]: https://github.com/ossrs/srs/wiki/v4_CN_Product#release20
|
||||
[release3]: https://github.com/ossrs/srs/wiki/v4_CN_Product#release30
|
||||
[release4]: https://github.com/ossrs/srs/wiki/v4_CN_Product#release40
|
@ -0,0 +1,311 @@
|
||||
# Features
|
||||
|
||||
The features of SRS.
|
||||
|
||||
> Note: Please read **Wiki: Gettting Started( [EN](https://github.com/ossrs/srs/wiki/v4_EN_Home#getting-started) / [CN](https://github.com/ossrs/srs/wiki/v4_CN_Home#getting-started) )** first.
|
||||
|
||||
- [x] Using coroutine by ST, it's really simple and stupid enough.
|
||||
- [x] Support cluster which consists of origin ([CN][v4_CN_DeliveryRTMP],[EN][v4_EN_DeliveryRTMP]) and edge([CN][v4_CN_Edge], [EN][v4_EN_Edge]) server and uses RTMP as default transport protocol.
|
||||
- [x] Origin server supports remuxing RTMP to HTTP-FLV([CN][v4_CN_SampleHttpFlv], [EN][v4_EN_SampleHttpFlv]) and HLS([CN][v4_CN_DeliveryHLS], [EN][v4_EN_DeliveryHLS]).
|
||||
- [x] Edge server supports remuxing RTMP to HTTP-FLV([CN][v4_CN_SampleHttpFlv], [EN][v4_EN_SampleHttpFlv]). As for HLS([CN][v4_CN_DeliveryHLS], [EN][v4_EN_DeliveryHLS]) edge server, recomment to use HTTP edge server, such as [NGINX](http://nginx.org/).
|
||||
- [x] Support HLS with audio-only([CN][v4_CN_DeliveryHLS2], [EN][v4_EN_DeliveryHLS2]), which need to build the timestamp from AAC samples, so we enhanced it please read [#547][bug #547].
|
||||
- [x] Support HLS with mp3(h.264+mp3) audio codec, please read [bug #301][bug #301].
|
||||
- [x] Support transmux RTMP to HTTP-FLV/MP3/AAC/TS, please read wiki([CN][v4_CN_DeliveryHttpStream], [EN][v4_CN_DeliveryHttpStream]).
|
||||
- [x] Support ingesting([CN][v4_CN_Ingest], [EN][v4_EN_Ingest]) other protocols to SRS by FFMPEG.
|
||||
- [x] Support RTMP long time(>4.6hours) publishing/playing, with the timestamp corrected.
|
||||
- [x] Support native HTTP server([CN][v4_CN_SampleHTTP], [EN][v4_EN_SampleHTTP]) for http api and http live streaming.
|
||||
- [x] Support HTTP CORS for js in http api and http live streaming.
|
||||
- [x] Support HTTP API([CN][v4_CN_HTTPApi], [EN][v4_EN_HTTPApi]) for system management.
|
||||
- [x] Support HTTP callback([CN][v4_CN_HTTPCallback], [EN][v4_EN_HTTPCallback]) for authentication and integration.
|
||||
- [x] Support DVR([CN][v4_CN_DVR], [EN][v4_EN_DVR]) to record live streaming to FLV file.
|
||||
- [x] Support DVR control module like NGINX-RTMP, please read [#459][bug #459].
|
||||
- [x] Support EXEC like NGINX-RTMP, please read [bug #367][bug #367].
|
||||
- [x] Support security strategy including allow/deny publish/play IP([CN][v4_CN_Security], [EN][v4_EN_Security]).
|
||||
- [x] Support low latency(0.1s+) transport model, please read [bug #257][bug #257].
|
||||
- [x] Support gop-cache([CN][v4_CN_LowLatency2], [EN][v4_EN_LowLatency2]) for player fast startup.
|
||||
- [x] Support Vhost([CN][v4_CN_RtmpUrlVhost], [EN][v4_EN_RtmpUrlVhost]) and \_\_defaultVhost\_\_.
|
||||
- [x] Support reloading([CN][v4_CN_Reload], [EN][v4_EN_Reload]) to apply changes of config.
|
||||
- [x] Support listening at multiple ports.
|
||||
- [x] Support forwarding([CN][v4_CN_Forward], [EN][v4_EN_Forward]) to other RTMP servers.
|
||||
- [x] Support transcoding([CN][v4_CN_FFMPEG], [EN][v4_EN_FFMPEG]) by FFMPEG.
|
||||
- [x] All wikis are writen in [Chinese][v4_CN_Home] and [English][v4_EN_Home].
|
||||
- [x] Enhanced json, replace NXJSON(LGPL) with json-parser(BSD), read [#904][bug #904].
|
||||
- [x] 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).
|
||||
- [x] Support traceable and session-based log([CN][v4_CN_SrsLog], [EN][v4_EN_SrsLog]).
|
||||
- [x] High performance([CN][v4_CN_Performance], [EN][v4_EN_Performance]) RTMP/HTTP-FLV, 6000+ connections.
|
||||
- [x] Enhanced complex error code with description and stack, read [#913][bug #913].
|
||||
- [x] Enhanced RTMP url which supports vhost in stream, read [#1059][bug #1059].
|
||||
- [x] Support origin cluster, please read [#464][bug #464], [RTMP 302][bug #92].
|
||||
- [x] Support listen at IPv4 and IPv6, read [#460][bug #460].
|
||||
- [x] Improve test coverage for core/kernel/protocol/service.
|
||||
- [x] Support docker by [srs-docker](https://github.com/ossrs/srs-docker).
|
||||
- [x] Support multiple processes by ReusePort([CN][v4_CN_REUSEPORT], [EN][v4_EN_REUSEPORT]), [#775][bug #775].
|
||||
- [x] Support a simple [mgmt console][console], please read [srs-console][srs-ngb].
|
||||
- [x] [Experimental] Support playing stream by WebRTC, [#307][bug #307].
|
||||
- [x] [Experimental] Support publishing stream by WebRTC, [#307][bug #307].
|
||||
- [x] [Experimental] Support mux RTP/RTCP/DTLS/SRTP on one port for WebRTC, [#307][bug #307].
|
||||
- [x] [Experimental] Support client address changing for WebRTC, [#307][bug #307].
|
||||
- [x] [Experimental] Support transcode RTMP/AAC to WebRTC/Opus, [#307][bug #307].
|
||||
- [x] [Experimental] Support AV1 codec for WebRTC, [#2324][bug #2324].
|
||||
- [x] [Experimental] Enhance HTTP Stream Server for HTTP-FLV, HTTPS, HLS etc. [#1657][bug #1657].
|
||||
- [x] [Experimental] Support DVR in MP4 format, read [#738][bug #738].
|
||||
- [x] [Experimental] Support MPEG-DASH, the future live streaming protocol, read [#299][bug #299].
|
||||
- [x] [Experimental] Support pushing MPEG-TS over UDP, please read [bug #250][bug #250].
|
||||
- [x] [Experimental] Support pushing FLV over HTTP POST, please read wiki([CN][v4_CN_Streamer2], [EN][v4_EN_Streamer2]).
|
||||
- [x] [Experimental] Support HTTP RAW API, please read [#459][bug #459], [#470][bug #470], [#319][bug #319].
|
||||
- [x] [Experimental] Support SRT server, read [#1147][bug #1147].
|
||||
- [x] [Experimental] Support transmux RTC to RTMP, [#2093][bug #2093].
|
||||
- [x] [Deprecated] Support pushing RTSP, please read [bug #2304][bug #2304].
|
||||
- [x] [Deprecated] Support Adobe HDS(f4m), please read wiki([CN][v4_CN_DeliveryHDS], [EN][v4_EN_DeliveryHDS]) and [#1535][bug #1535].
|
||||
- [x] [Deprecated] Support bandwidth testing, please read [#1535][bug #1535].
|
||||
- [x] [Deprecated] Support Adobe FMS/AMS token traverse([CN][v4_CN_DRM2], [EN][v4_EN_DRM2]) authentication, please read [#1535][bug #1535].
|
||||
- [x] [Removed] Support RTMP client library: [srs-librtmp][srs-librtmp].
|
||||
- [ ] Support Windows/Cygwin 64bits, [#2532](https://github.com/ossrs/srs/issues/2532).
|
||||
- [ ] Support push stream by GB28181, [#1500][bug #1500].
|
||||
- [ ] Support IETF-QUIC for WebRTC Cluster, [#2091][bug #2091].
|
||||
- [ ] Enhanced forwarding with vhost and variables, [#1342][bug #1342].
|
||||
- [ ] Support DVR to Cloud Storage, [#1193][bug #1193].
|
||||
- [ ] Support H.265 over RTMP and HLS, [#465][bug #465].
|
||||
- [ ] Improve RTC performance to 5K by multiple threading, [#2188][bug #2188].
|
||||
- [ ] Support source cleanup for idle streams, [#413][bug #413].
|
||||
- [ ] Support change user to run SRS, [#1111][bug #1111].
|
||||
- [ ] Support HLS variant, [#463][bug #463].
|
||||
|
||||
> Remark: About the milestone and product plan, please read ([CN][v4_CN_Product], [EN][v4_EN_Product]) wiki.
|
||||
|
||||
[authors]: https://github.com/ossrs/srs/blob/4.0release/trunk/AUTHORS.txt
|
||||
[bigthanks]: https://github.com/ossrs/srs/wiki/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://github.com/ossrs/srs/wiki/v4_CN_Git
|
||||
[v4_EN_Git]: https://github.com/ossrs/srs/wiki/v4_EN_Git
|
||||
[v4_CN_SampleRTMP]: https://github.com/ossrs/srs/wiki/v4_CN_SampleRTMP
|
||||
[v4_EN_SampleRTMP]: https://github.com/ossrs/srs/wiki/v4_EN_SampleRTMP
|
||||
[v4_CN_SampleRTMPCluster]: https://github.com/ossrs/srs/wiki/v4_CN_SampleRTMPCluster
|
||||
[v4_EN_SampleRTMPCluster]: https://github.com/ossrs/srs/wiki/v4_EN_SampleRTMPCluster
|
||||
[v4_CN_SampleOriginCluster]: https://github.com/ossrs/srs/wiki/v4_CN_SampleOriginCluster
|
||||
[v4_EN_SampleOriginCluster]: https://github.com/ossrs/srs/wiki/v4_EN_SampleOriginCluster
|
||||
[v4_CN_SampleHLS]: https://github.com/ossrs/srs/wiki/v4_CN_SampleHLS
|
||||
[v4_EN_SampleHLS]: https://github.com/ossrs/srs/wiki/v4_EN_SampleHLS
|
||||
[v4_CN_SampleTranscode2HLS]: https://github.com/ossrs/srs/wiki/v4_CN_SampleTranscode2HLS
|
||||
[v4_EN_SampleTranscode2HLS]: https://github.com/ossrs/srs/wiki/v4_EN_SampleTranscode2HLS
|
||||
[v4_CN_SampleFFMPEG]: https://github.com/ossrs/srs/wiki/v4_CN_SampleFFMPEG
|
||||
[v4_EN_SampleFFMPEG]: https://github.com/ossrs/srs/wiki/v4_EN_SampleFFMPEG
|
||||
[v4_CN_SampleForward]: https://github.com/ossrs/srs/wiki/v4_CN_SampleForward
|
||||
[v4_EN_SampleForward]: https://github.com/ossrs/srs/wiki/v4_EN_SampleForward
|
||||
[v4_CN_SampleRealtime]: https://github.com/ossrs/srs/wiki/v4_CN_SampleRealtime
|
||||
[v4_EN_SampleRealtime]: https://github.com/ossrs/srs/wiki/v4_EN_SampleRealtime
|
||||
[v4_CN_WebRTC]: https://github.com/ossrs/srs/wiki/v4_CN_WebRTC
|
||||
[v4_EN_WebRTC]: https://github.com/ossrs/srs/wiki/v4_EN_WebRTC
|
||||
[v4_CN_WebRTC#config-candidate]: https://github.com/ossrs/srs/wiki/v4_CN_WebRTC#config-candidate
|
||||
[v4_EN_WebRTC#config-candidate]: https://github.com/ossrs/srs/wiki/v4_EN_WebRTC#config-candidate
|
||||
[v4_CN_SampleARM]: https://github.com/ossrs/srs/wiki/v4_CN_SampleARM
|
||||
[v4_EN_SampleARM]: https://github.com/ossrs/srs/wiki/v4_EN_SampleARM
|
||||
[v4_CN_SampleIngest]: https://github.com/ossrs/srs/wiki/v4_CN_SampleIngest
|
||||
[v4_EN_SampleIngest]: https://github.com/ossrs/srs/wiki/v4_EN_SampleIngest
|
||||
[v4_CN_SampleHTTP]: https://github.com/ossrs/srs/wiki/v4_CN_SampleHTTP
|
||||
[v4_EN_SampleHTTP]: https://github.com/ossrs/srs/wiki/v4_EN_SampleHTTP
|
||||
[v4_CN_SampleDemo]: https://github.com/ossrs/srs/wiki/v4_CN_SampleDemo
|
||||
[v4_EN_SampleDemo]: https://github.com/ossrs/srs/wiki/v4_EN_SampleDemo
|
||||
[v4_CN_OriginCluster]: https://github.com/ossrs/srs/wiki/v4_CN_OriginCluster
|
||||
[v4_EN_OriginCluster]: https://github.com/ossrs/srs/wiki/v4_EN_OriginCluster
|
||||
[v4_CN_REUSEPORT]: https://github.com/ossrs/srs/wiki/v4_CN_REUSEPORT
|
||||
[v4_EN_REUSEPORT]: https://github.com/ossrs/srs/wiki/v4_EN_REUSEPORT
|
||||
[v4_CN_Sample]: https://github.com/ossrs/srs/wiki/v4_CN_Sample
|
||||
[v4_EN_Sample]: https://github.com/ossrs/srs/wiki/v4_EN_Sample
|
||||
[v4_CN_Product]: https://github.com/ossrs/srs/wiki/v4_CN_Product
|
||||
[v4_EN_Product]: https://github.com/ossrs/srs/wiki/v4_EN_Product
|
||||
[v4_CN_Home]: https://github.com/ossrs/srs/wiki/v4_CN_Home
|
||||
[v4_EN_Home]: https://github.com/ossrs/srs/wiki/v4_EN_Home
|
||||
|
||||
[v4_CN_Compare]: https://github.com/ossrs/srs/wiki/v4_CN_Compare
|
||||
[v4_EN_Compare]: https://github.com/ossrs/srs/wiki/v4_EN_Compare
|
||||
[v4_CN_Build]: https://github.com/ossrs/srs/wiki/v4_CN_Build
|
||||
[v4_EN_Build]: https://github.com/ossrs/srs/wiki/v4_EN_Build
|
||||
[v4_CN_Performance]: https://github.com/ossrs/srs/wiki/v4_CN_Performance
|
||||
[v4_EN_Performance]: https://github.com/ossrs/srs/wiki/v4_EN_Performance
|
||||
[v4_CN_DeliveryRTMP]: https://github.com/ossrs/srs/wiki/v4_CN_DeliveryRTMP
|
||||
[v4_EN_DeliveryRTMP]: https://github.com/ossrs/srs/wiki/v4_EN_DeliveryRTMP
|
||||
[v4_CN_Edge]: https://github.com/ossrs/srs/wiki/v4_CN_Edge
|
||||
[v4_EN_Edge]: https://github.com/ossrs/srs/wiki/v4_EN_Edge
|
||||
[v4_CN_RtmpUrlVhost]: https://github.com/ossrs/srs/wiki/v4_CN_RtmpUrlVhost
|
||||
[v4_EN_RtmpUrlVhost]: https://github.com/ossrs/srs/wiki/v4_EN_RtmpUrlVhost
|
||||
[v4_CN_RTMPHandshake]: https://github.com/ossrs/srs/wiki/v4_CN_RTMPHandshake
|
||||
[v4_EN_RTMPHandshake]: https://github.com/ossrs/srs/wiki/v4_EN_RTMPHandshake
|
||||
[v4_CN_HTTPServer]: https://github.com/ossrs/srs/wiki/v4_CN_HTTPServer
|
||||
[v4_EN_HTTPServer]: https://github.com/ossrs/srs/wiki/v4_EN_HTTPServer
|
||||
[v4_CN_DeliveryHLS]: https://github.com/ossrs/srs/wiki/v4_CN_DeliveryHLS
|
||||
[v4_EN_DeliveryHLS]: https://github.com/ossrs/srs/wiki/v4_EN_DeliveryHLS
|
||||
[v4_CN_DeliveryHLS2]: https://github.com/ossrs/srs/wiki/v4_CN_DeliveryHLS#hlsaudioonly
|
||||
[v4_EN_DeliveryHLS2]: https://github.com/ossrs/srs/wiki/v4_EN_DeliveryHLS#hlsaudioonly
|
||||
[v4_CN_Reload]: https://github.com/ossrs/srs/wiki/v4_CN_Reload
|
||||
[v4_EN_Reload]: https://github.com/ossrs/srs/wiki/v4_EN_Reload
|
||||
[v4_CN_LowLatency2]: https://github.com/ossrs/srs/wiki/v4_CN_LowLatency#gop-cache
|
||||
[v4_EN_LowLatency2]: https://github.com/ossrs/srs/wiki/v4_EN_LowLatency#gop-cache
|
||||
[v4_CN_Forward]: https://github.com/ossrs/srs/wiki/v4_CN_Forward
|
||||
[v4_EN_Forward]: https://github.com/ossrs/srs/wiki/v4_EN_Forward
|
||||
[v4_CN_FFMPEG]: https://github.com/ossrs/srs/wiki/v4_CN_FFMPEG
|
||||
[v4_EN_FFMPEG]: https://github.com/ossrs/srs/wiki/v4_EN_FFMPEG
|
||||
[v4_CN_HTTPCallback]: https://github.com/ossrs/srs/wiki/v4_CN_HTTPCallback
|
||||
[v4_EN_HTTPCallback]: https://github.com/ossrs/srs/wiki/v4_EN_HTTPCallback
|
||||
[v4_CN_SampleDemo]: https://github.com/ossrs/srs/wiki/v4_CN_SampleDemo
|
||||
[v4_EN_SampleDemo]: https://github.com/ossrs/srs/wiki/v4_EN_SampleDemo
|
||||
[v4_CN_SrsLinuxArm]: https://github.com/ossrs/srs/wiki/v4_CN_SrsLinuxArm
|
||||
[v4_EN_SrsLinuxArm]: https://github.com/ossrs/srs/wiki/v4_EN_SrsLinuxArm
|
||||
[v4_CN_LinuxService]: https://github.com/ossrs/srs/wiki/v4_CN_LinuxService
|
||||
[v4_EN_LinuxService]: https://github.com/ossrs/srs/wiki/v4_EN_LinuxService
|
||||
[v4_CN_RTMP-ATC]: https://github.com/ossrs/srs/wiki/v4_CN_RTMP-ATC
|
||||
[v4_EN_RTMP-ATC]: https://github.com/ossrs/srs/wiki/v4_EN_RTMP-ATC
|
||||
[v4_CN_HTTPApi]: https://github.com/ossrs/srs/wiki/v4_CN_HTTPApi
|
||||
[v4_EN_HTTPApi]: https://github.com/ossrs/srs/wiki/v4_EN_HTTPApi
|
||||
[v4_CN_Ingest]: https://github.com/ossrs/srs/wiki/v4_CN_Ingest
|
||||
[v4_EN_Ingest]: https://github.com/ossrs/srs/wiki/v4_EN_Ingest
|
||||
[v4_CN_DVR]: https://github.com/ossrs/srs/wiki/v4_CN_DVR
|
||||
[v4_EN_DVR]: https://github.com/ossrs/srs/wiki/v4_EN_DVR
|
||||
[v4_CN_SrsLog]: https://github.com/ossrs/srs/wiki/v4_CN_SrsLog
|
||||
[v4_EN_SrsLog]: https://github.com/ossrs/srs/wiki/v4_EN_SrsLog
|
||||
[v4_CN_DRM2]: https://github.com/ossrs/srs/wiki/v4_CN_DRM#tokentraverse
|
||||
[v4_EN_DRM2]: https://github.com/ossrs/srs/wiki/v4_EN_DRM#tokentraverse
|
||||
[v4_CN_SampleHTTP]: https://github.com/ossrs/srs/wiki/v4_CN_SampleHTTP
|
||||
[v4_EN_SampleHTTP]: https://github.com/ossrs/srs/wiki/v4_EN_SampleHTTP
|
||||
[v4_CN_FlvVodStream]: https://github.com/ossrs/srs/wiki/v4_CN_FlvVodStream
|
||||
[v4_EN_FlvVodStream]: https://github.com/ossrs/srs/wiki/v4_EN_FlvVodStream
|
||||
[v4_CN_Security]: https://github.com/ossrs/srs/wiki/v4_CN_Security
|
||||
[v4_EN_Security]: https://github.com/ossrs/srs/wiki/v4_EN_Security
|
||||
[v4_CN_DeliveryHttpStream]: https://github.com/ossrs/srs/wiki/v4_CN_DeliveryHttpStream
|
||||
[v4_EN_DeliveryHttpStream]: https://github.com/ossrs/srs/wiki/v4_EN_DeliveryHttpStream
|
||||
[v4_CN_DeliveryHDS]: https://github.com/ossrs/srs/wiki/v4_CN_DeliveryHDS
|
||||
[v4_EN_DeliveryHDS]: https://github.com/ossrs/srs/wiki/v4_EN_DeliveryHDS
|
||||
[v4_CN_Streamer]: https://github.com/ossrs/srs/wiki/v4_CN_Streamer
|
||||
[v4_EN_Streamer]: https://github.com/ossrs/srs/wiki/v4_EN_Streamer
|
||||
[v4_CN_Streamer2]: https://github.com/ossrs/srs/wiki/v4_CN_Streamer#push-http-flv-to-srs
|
||||
[v4_EN_Streamer2]: https://github.com/ossrs/srs/wiki/v4_EN_Streamer#push-http-flv-to-srs
|
||||
[v4_CN_SampleHttpFlv]: https://github.com/ossrs/srs/wiki/v4_CN_SampleHttpFlv
|
||||
[v4_EN_SampleHttpFlv]: https://github.com/ossrs/srs/wiki/v4_EN_SampleHttpFlv
|
||||
[v4_CN_SampleHttpFlvCluster]: https://github.com/ossrs/srs/wiki/v4_CN_SampleHttpFlvCluster
|
||||
[v4_EN_SampleHttpFlvCluster]: https://github.com/ossrs/srs/wiki/v4_EN_SampleHttpFlvCluster
|
||||
[v4_CN_SampleDASH]:https://github.com/ossrs/srs/wiki/v4_CN_SampleDASH
|
||||
[v4_EN_SampleDASH]:https://github.com/ossrs/srs/wiki/v4_EN_SampleDASH
|
||||
|
||||
[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
|
||||
|
||||
|
||||
[v4_CN_Contact]: https://github.com/ossrs/srs/wiki/v4_CN_Contact
|
||||
[v4_EN_Contact]: https://github.com/ossrs/srs/wiki/v4_EN_Contact
|
||||
|
||||
[LICENSE]: https://github.com/ossrs/srs/blob/4.0release/LICENSE
|
||||
[LicenseMixing]: https://github.com/ossrs/srs/wiki/LicenseMixing
|
||||
|
||||
[release2]: https://github.com/ossrs/srs/wiki/v4_CN_Product#release20
|
||||
[release3]: https://github.com/ossrs/srs/wiki/v4_CN_Product#release30
|
||||
[release4]: https://github.com/ossrs/srs/wiki/v4_CN_Product#release40
|
@ -0,0 +1,316 @@
|
||||
# Resources
|
||||
|
||||
The resources of SRS.
|
||||
|
||||
> Note: Please read **Wiki: Gettting Started( [EN](https://github.com/ossrs/srs/wiki/v4_EN_Home#getting-started) / [CN](https://github.com/ossrs/srs/wiki/v4_CN_Home#getting-started) )** first.
|
||||
|
||||
## 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://github.com/ossrs/srs/wiki/v4_CN_Streamer#push-mpeg-ts-over-udp) server.
|
||||
* `tcp://554`, Stream Caster: [Push RTSP](https://github.com/ossrs/srs/wiki/v4_CN_Streamer#push-rtsp-to-srs) server.
|
||||
* `tcp://8936`, Stream Caster: [Push HTTP-FLV](https://github.com/ossrs/srs/wiki/v4_CN_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.
|
||||
|
||||
## 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://github.com/ossrs/srs/wiki/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://github.com/ossrs/srs/wiki/v4_CN_Git
|
||||
[v4_EN_Git]: https://github.com/ossrs/srs/wiki/v4_EN_Git
|
||||
[v4_CN_SampleRTMP]: https://github.com/ossrs/srs/wiki/v4_CN_SampleRTMP
|
||||
[v4_EN_SampleRTMP]: https://github.com/ossrs/srs/wiki/v4_EN_SampleRTMP
|
||||
[v4_CN_SampleRTMPCluster]: https://github.com/ossrs/srs/wiki/v4_CN_SampleRTMPCluster
|
||||
[v4_EN_SampleRTMPCluster]: https://github.com/ossrs/srs/wiki/v4_EN_SampleRTMPCluster
|
||||
[v4_CN_SampleOriginCluster]: https://github.com/ossrs/srs/wiki/v4_CN_SampleOriginCluster
|
||||
[v4_EN_SampleOriginCluster]: https://github.com/ossrs/srs/wiki/v4_EN_SampleOriginCluster
|
||||
[v4_CN_SampleHLS]: https://github.com/ossrs/srs/wiki/v4_CN_SampleHLS
|
||||
[v4_EN_SampleHLS]: https://github.com/ossrs/srs/wiki/v4_EN_SampleHLS
|
||||
[v4_CN_SampleTranscode2HLS]: https://github.com/ossrs/srs/wiki/v4_CN_SampleTranscode2HLS
|
||||
[v4_EN_SampleTranscode2HLS]: https://github.com/ossrs/srs/wiki/v4_EN_SampleTranscode2HLS
|
||||
[v4_CN_SampleFFMPEG]: https://github.com/ossrs/srs/wiki/v4_CN_SampleFFMPEG
|
||||
[v4_EN_SampleFFMPEG]: https://github.com/ossrs/srs/wiki/v4_EN_SampleFFMPEG
|
||||
[v4_CN_SampleForward]: https://github.com/ossrs/srs/wiki/v4_CN_SampleForward
|
||||
[v4_EN_SampleForward]: https://github.com/ossrs/srs/wiki/v4_EN_SampleForward
|
||||
[v4_CN_SampleRealtime]: https://github.com/ossrs/srs/wiki/v4_CN_SampleRealtime
|
||||
[v4_EN_SampleRealtime]: https://github.com/ossrs/srs/wiki/v4_EN_SampleRealtime
|
||||
[v4_CN_WebRTC]: https://github.com/ossrs/srs/wiki/v4_CN_WebRTC
|
||||
[v4_EN_WebRTC]: https://github.com/ossrs/srs/wiki/v4_EN_WebRTC
|
||||
[v4_CN_WebRTC#config-candidate]: https://github.com/ossrs/srs/wiki/v4_CN_WebRTC#config-candidate
|
||||
[v4_EN_WebRTC#config-candidate]: https://github.com/ossrs/srs/wiki/v4_EN_WebRTC#config-candidate
|
||||
[v4_CN_SampleARM]: https://github.com/ossrs/srs/wiki/v4_CN_SampleARM
|
||||
[v4_EN_SampleARM]: https://github.com/ossrs/srs/wiki/v4_EN_SampleARM
|
||||
[v4_CN_SampleIngest]: https://github.com/ossrs/srs/wiki/v4_CN_SampleIngest
|
||||
[v4_EN_SampleIngest]: https://github.com/ossrs/srs/wiki/v4_EN_SampleIngest
|
||||
[v4_CN_SampleHTTP]: https://github.com/ossrs/srs/wiki/v4_CN_SampleHTTP
|
||||
[v4_EN_SampleHTTP]: https://github.com/ossrs/srs/wiki/v4_EN_SampleHTTP
|
||||
[v4_CN_SampleDemo]: https://github.com/ossrs/srs/wiki/v4_CN_SampleDemo
|
||||
[v4_EN_SampleDemo]: https://github.com/ossrs/srs/wiki/v4_EN_SampleDemo
|
||||
[v4_CN_OriginCluster]: https://github.com/ossrs/srs/wiki/v4_CN_OriginCluster
|
||||
[v4_EN_OriginCluster]: https://github.com/ossrs/srs/wiki/v4_EN_OriginCluster
|
||||
[v4_CN_REUSEPORT]: https://github.com/ossrs/srs/wiki/v4_CN_REUSEPORT
|
||||
[v4_EN_REUSEPORT]: https://github.com/ossrs/srs/wiki/v4_EN_REUSEPORT
|
||||
[v4_CN_Sample]: https://github.com/ossrs/srs/wiki/v4_CN_Sample
|
||||
[v4_EN_Sample]: https://github.com/ossrs/srs/wiki/v4_EN_Sample
|
||||
[v4_CN_Product]: https://github.com/ossrs/srs/wiki/v4_CN_Product
|
||||
[v4_EN_Product]: https://github.com/ossrs/srs/wiki/v4_EN_Product
|
||||
[v4_CN_Home]: https://github.com/ossrs/srs/wiki/v4_CN_Home
|
||||
[v4_EN_Home]: https://github.com/ossrs/srs/wiki/v4_EN_Home
|
||||
|
||||
[v4_CN_Compare]: https://github.com/ossrs/srs/wiki/v4_CN_Compare
|
||||
[v4_EN_Compare]: https://github.com/ossrs/srs/wiki/v4_EN_Compare
|
||||
[v4_CN_Build]: https://github.com/ossrs/srs/wiki/v4_CN_Build
|
||||
[v4_EN_Build]: https://github.com/ossrs/srs/wiki/v4_EN_Build
|
||||
[v4_CN_Performance]: https://github.com/ossrs/srs/wiki/v4_CN_Performance
|
||||
[v4_EN_Performance]: https://github.com/ossrs/srs/wiki/v4_EN_Performance
|
||||
[v4_CN_DeliveryRTMP]: https://github.com/ossrs/srs/wiki/v4_CN_DeliveryRTMP
|
||||
[v4_EN_DeliveryRTMP]: https://github.com/ossrs/srs/wiki/v4_EN_DeliveryRTMP
|
||||
[v4_CN_Edge]: https://github.com/ossrs/srs/wiki/v4_CN_Edge
|
||||
[v4_EN_Edge]: https://github.com/ossrs/srs/wiki/v4_EN_Edge
|
||||
[v4_CN_RtmpUrlVhost]: https://github.com/ossrs/srs/wiki/v4_CN_RtmpUrlVhost
|
||||
[v4_EN_RtmpUrlVhost]: https://github.com/ossrs/srs/wiki/v4_EN_RtmpUrlVhost
|
||||
[v4_CN_RTMPHandshake]: https://github.com/ossrs/srs/wiki/v4_CN_RTMPHandshake
|
||||
[v4_EN_RTMPHandshake]: https://github.com/ossrs/srs/wiki/v4_EN_RTMPHandshake
|
||||
[v4_CN_HTTPServer]: https://github.com/ossrs/srs/wiki/v4_CN_HTTPServer
|
||||
[v4_EN_HTTPServer]: https://github.com/ossrs/srs/wiki/v4_EN_HTTPServer
|
||||
[v4_CN_DeliveryHLS]: https://github.com/ossrs/srs/wiki/v4_CN_DeliveryHLS
|
||||
[v4_EN_DeliveryHLS]: https://github.com/ossrs/srs/wiki/v4_EN_DeliveryHLS
|
||||
[v4_CN_DeliveryHLS2]: https://github.com/ossrs/srs/wiki/v4_CN_DeliveryHLS#hlsaudioonly
|
||||
[v4_EN_DeliveryHLS2]: https://github.com/ossrs/srs/wiki/v4_EN_DeliveryHLS#hlsaudioonly
|
||||
[v4_CN_Reload]: https://github.com/ossrs/srs/wiki/v4_CN_Reload
|
||||
[v4_EN_Reload]: https://github.com/ossrs/srs/wiki/v4_EN_Reload
|
||||
[v4_CN_LowLatency2]: https://github.com/ossrs/srs/wiki/v4_CN_LowLatency#gop-cache
|
||||
[v4_EN_LowLatency2]: https://github.com/ossrs/srs/wiki/v4_EN_LowLatency#gop-cache
|
||||
[v4_CN_Forward]: https://github.com/ossrs/srs/wiki/v4_CN_Forward
|
||||
[v4_EN_Forward]: https://github.com/ossrs/srs/wiki/v4_EN_Forward
|
||||
[v4_CN_FFMPEG]: https://github.com/ossrs/srs/wiki/v4_CN_FFMPEG
|
||||
[v4_EN_FFMPEG]: https://github.com/ossrs/srs/wiki/v4_EN_FFMPEG
|
||||
[v4_CN_HTTPCallback]: https://github.com/ossrs/srs/wiki/v4_CN_HTTPCallback
|
||||
[v4_EN_HTTPCallback]: https://github.com/ossrs/srs/wiki/v4_EN_HTTPCallback
|
||||
[v4_CN_SampleDemo]: https://github.com/ossrs/srs/wiki/v4_CN_SampleDemo
|
||||
[v4_EN_SampleDemo]: https://github.com/ossrs/srs/wiki/v4_EN_SampleDemo
|
||||
[v4_CN_SrsLinuxArm]: https://github.com/ossrs/srs/wiki/v4_CN_SrsLinuxArm
|
||||
[v4_EN_SrsLinuxArm]: https://github.com/ossrs/srs/wiki/v4_EN_SrsLinuxArm
|
||||
[v4_CN_LinuxService]: https://github.com/ossrs/srs/wiki/v4_CN_LinuxService
|
||||
[v4_EN_LinuxService]: https://github.com/ossrs/srs/wiki/v4_EN_LinuxService
|
||||
[v4_CN_RTMP-ATC]: https://github.com/ossrs/srs/wiki/v4_CN_RTMP-ATC
|
||||
[v4_EN_RTMP-ATC]: https://github.com/ossrs/srs/wiki/v4_EN_RTMP-ATC
|
||||
[v4_CN_HTTPApi]: https://github.com/ossrs/srs/wiki/v4_CN_HTTPApi
|
||||
[v4_EN_HTTPApi]: https://github.com/ossrs/srs/wiki/v4_EN_HTTPApi
|
||||
[v4_CN_Ingest]: https://github.com/ossrs/srs/wiki/v4_CN_Ingest
|
||||
[v4_EN_Ingest]: https://github.com/ossrs/srs/wiki/v4_EN_Ingest
|
||||
[v4_CN_DVR]: https://github.com/ossrs/srs/wiki/v4_CN_DVR
|
||||
[v4_EN_DVR]: https://github.com/ossrs/srs/wiki/v4_EN_DVR
|
||||
[v4_CN_SrsLog]: https://github.com/ossrs/srs/wiki/v4_CN_SrsLog
|
||||
[v4_EN_SrsLog]: https://github.com/ossrs/srs/wiki/v4_EN_SrsLog
|
||||
[v4_CN_DRM2]: https://github.com/ossrs/srs/wiki/v4_CN_DRM#tokentraverse
|
||||
[v4_EN_DRM2]: https://github.com/ossrs/srs/wiki/v4_EN_DRM#tokentraverse
|
||||
[v4_CN_SampleHTTP]: https://github.com/ossrs/srs/wiki/v4_CN_SampleHTTP
|
||||
[v4_EN_SampleHTTP]: https://github.com/ossrs/srs/wiki/v4_EN_SampleHTTP
|
||||
[v4_CN_FlvVodStream]: https://github.com/ossrs/srs/wiki/v4_CN_FlvVodStream
|
||||
[v4_EN_FlvVodStream]: https://github.com/ossrs/srs/wiki/v4_EN_FlvVodStream
|
||||
[v4_CN_Security]: https://github.com/ossrs/srs/wiki/v4_CN_Security
|
||||
[v4_EN_Security]: https://github.com/ossrs/srs/wiki/v4_EN_Security
|
||||
[v4_CN_DeliveryHttpStream]: https://github.com/ossrs/srs/wiki/v4_CN_DeliveryHttpStream
|
||||
[v4_EN_DeliveryHttpStream]: https://github.com/ossrs/srs/wiki/v4_EN_DeliveryHttpStream
|
||||
[v4_CN_DeliveryHDS]: https://github.com/ossrs/srs/wiki/v4_CN_DeliveryHDS
|
||||
[v4_EN_DeliveryHDS]: https://github.com/ossrs/srs/wiki/v4_EN_DeliveryHDS
|
||||
[v4_CN_Streamer]: https://github.com/ossrs/srs/wiki/v4_CN_Streamer
|
||||
[v4_EN_Streamer]: https://github.com/ossrs/srs/wiki/v4_EN_Streamer
|
||||
[v4_CN_Streamer2]: https://github.com/ossrs/srs/wiki/v4_CN_Streamer#push-http-flv-to-srs
|
||||
[v4_EN_Streamer2]: https://github.com/ossrs/srs/wiki/v4_EN_Streamer#push-http-flv-to-srs
|
||||
[v4_CN_SampleHttpFlv]: https://github.com/ossrs/srs/wiki/v4_CN_SampleHttpFlv
|
||||
[v4_EN_SampleHttpFlv]: https://github.com/ossrs/srs/wiki/v4_EN_SampleHttpFlv
|
||||
[v4_CN_SampleHttpFlvCluster]: https://github.com/ossrs/srs/wiki/v4_CN_SampleHttpFlvCluster
|
||||
[v4_EN_SampleHttpFlvCluster]: https://github.com/ossrs/srs/wiki/v4_EN_SampleHttpFlvCluster
|
||||
[v4_CN_SampleDASH]:https://github.com/ossrs/srs/wiki/v4_CN_SampleDASH
|
||||
[v4_EN_SampleDASH]:https://github.com/ossrs/srs/wiki/v4_EN_SampleDASH
|
||||
|
||||
[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
|
||||
|
||||
|
||||
[v4_CN_Contact]: https://github.com/ossrs/srs/wiki/v4_CN_Contact
|
||||
[v4_EN_Contact]: https://github.com/ossrs/srs/wiki/v4_EN_Contact
|
||||
|
||||
[LICENSE]: https://github.com/ossrs/srs/blob/4.0release/LICENSE
|
||||
[LicenseMixing]: https://github.com/ossrs/srs/wiki/LicenseMixing
|
||||
|
||||
[release2]: https://github.com/ossrs/srs/wiki/v4_CN_Product#release20
|
||||
[release3]: https://github.com/ossrs/srs/wiki/v4_CN_Product#release30
|
||||
[release4]: https://github.com/ossrs/srs/wiki/v4_CN_Product#release40
|
Loading…
Reference in New Issue