diff --git a/README.md b/README.md index 881317280..42f5551b5 100755 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ Download from github.io: [Centos6-x86_64][centos0], [more...][more0]
Download from ossrs.net: [Centos6-x86_64][centos1], [more...][more1]
Website for SRS/2.0, read SRS 2.0 [Chinese][srs2_CN] or [English][srs2_EN]. -[![Donation](https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png)](http://www.ossrs.net/srs.release/donation/index.html) -[![Paypal](https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png)](http://www.ossrs.net/srs.release/donation/paypal.html) +[![Donation](https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png)][donation1] +[![Paypal](https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png)][donation2] ## About @@ -23,7 +23,7 @@ session-oriented log, exports client srs-librtmp, with stream caster to push MPEGTS-over-UDP/RTSP to SRS, provides EN/CN wiki and the most simple architecture. -Why SRS? +### Why SRS? 1. Completely Rewrite HLS: following m3u8/ts spec, and HLS support h.264+aac/mp3. 1. High Efficient RTMP: deliverying support 7k+ concurrency, vhost based, both origin and edge. @@ -46,7 +46,7 @@ and session based log, linux service script and install script. Enjoy it! -## AUTHORS +### AUTHORS There are two types of people that have contributed to the SRS project: * AUTHORS: Contribute important features. Names of all @@ -66,53 +66,37 @@ A big THANK YOU goes to: * [FFMPEG][FFMPEG] and [libx264][libx264] group for SRS to use to transcode. * Guido van Rossum for creating Python for api-server for SRS. -## Mirrors +### Donation -Github: [https://github.com/simple-rtmp-server/srs][srs], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git]) - -``` -git clone https://github.com/simple-rtmp-server/srs.git -``` - -CSDN: [https://code.csdn.net/winlinvip/srs-csdn][csdn], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git]) - -``` -git clone https://code.csdn.net/winlinvip/srs-csdn.git -``` - -OSChina: [http://git.oschina.net/winlinvip/srs.oschina][oschina], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git]) - -``` -git clone https://git.oschina.net/winlinvip/srs.oschina.git -``` +[![Donation](https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png)][donation1] +[![Paypal](https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png)][donation2] -Gitlab: [https://gitlab.com/winlinvip/srs-gitlab][gitlab], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git]) +Donation: [http://www.ossrs.net/srs.release/donation/index.html][donation1] -``` -git clone https://gitlab.com/winlinvip/srs-gitlab.git -``` +Donations: [https://github.com/simple-rtmp-server/srs/blob/develop/DONATIONS.txt][donations] ## Usage Step 1: get SRS +Download slow? Please use [mirrors][mirrors] for SRS. -
+```
 git clone https://github.com/simple-rtmp-server/srs &&
 cd srs/trunk
-
+``` Step 2: build SRS, Requires Centos6.x/Ubuntu12 32/64bits, others see Build([CN][v2_CN_Build],[EN][v2_EN_Build]). -
+```
 ./configure && make
-
+``` Step 3: start SRS -
+```
 ./objs/srs -c conf/srs.conf
-
+``` See also: * Usage: How to delivery RTMP?([CN][v1_CN_SampleRTMP], [EN][v1_EN_SampleRTMP]) @@ -132,34 +116,56 @@ cd srs/trunk * Usage: Solution using SRS?([CN][v1_CN_Sample], [EN][v1_EN_Sample]) * Usage: Why SRS?([CN][v1_CN_Product], [EN][v1_EN_Product]) -## Wiki +### Mirrors -SRS 1.0 wiki +Github: [https://github.com/simple-rtmp-server/srs][srs], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git]) -Please select your language: -* [SRS 1.0 English][v1_EN_Home] -* [SRS 1.0 Chinese][v1_CN_Home] +``` +git clone https://github.com/simple-rtmp-server/srs.git +``` -SRS 2.0 wiki +CSDN: [https://code.csdn.net/winlinvip/srs-csdn][csdn], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git]) -Please select your language: -* [SRS 2.0 English][v2_EN_Home] -* [SRS 2.0 Chinese][v2_CN_Home] +``` +git clone https://code.csdn.net/winlinvip/srs-csdn.git +``` -## Donation +OSChina: [http://git.oschina.net/winlinvip/srs.oschina][oschina], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git]) -Donation: [http://www.ossrs.net/srs.release/donation/index.html][donation1] +``` +git clone https://git.oschina.net/winlinvip/srs.oschina.git +``` -Donations: [https://github.com/simple-rtmp-server/srs/blob/develop/DONATIONS.txt][donations] +Gitlab: [https://gitlab.com/winlinvip/srs-gitlab][gitlab], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git]) -## System Requirements +``` +git clone https://gitlab.com/winlinvip/srs-gitlab.git +``` + +### System Requirements Supported operating systems and hardware: * All Linux , both 32 and 64 bits * Apple OSX(Darwin), both 32 and 64bits. * All hardware with x86/x86_64/arm/mips cpu. -## Features +### Wiki + +SRS 1.0 wiki + +Please select your language: +* [SRS 1.0 English][v1_EN_Home] +* [SRS 1.0 Chinese][v1_CN_Home] + +SRS 2.0 wiki + +Please select your language: +* [SRS 2.0 English][v2_EN_Home] +* [SRS 2.0 Chinese][v2_CN_Home] + +## Product + +### Features 1. Simple, also stable enough. 1. High-performance([CN][v1_CN_Performance], [EN][v1_EN_Performance]): single-thread, async socket, event/st-thread driven. @@ -228,11 +234,11 @@ Supported operating systems and hardware: 1. [plan]Support HLS edge server, read [#466][bug #466]. 1. [plan]Support HLS realtime latency mode, read [#468][bug #468]. -## Compare +### Compare Compare SRS with other media server. -### Stream Delivery +#### Stream Delivery | Feature | SRS | NGINX | CRTMPD | FMS | WOWZA | | ----------- | ------- | ----- | --------- | -------- | ------ | @@ -243,7 +249,7 @@ Compare SRS with other media server. | HLS(aonly) | Stable | X | X | Stable | Stable | | HTTP Server | Stable | Stable | X | X | Stable | -### Cluster +#### Cluster | Feature | SRS | NGINX | CRTMPD | FMS | WOWZA | | ----------- | ------- | ----- | --------- | -------- | ------ | @@ -254,7 +260,7 @@ Compare SRS with other media server. | Forward | Stable | X | X | X | X | | ATC | Stable | X | X | X | X | -### Stream Service +#### Stream Service | Feature | SRS | NGINX | CRTMPD | FMS | WOWZA | | ----------- | ------- | ----- | --------- | -------- | ------ | @@ -269,7 +275,7 @@ Compare SRS with other media server. | Security | Stable | Stable | X | X | Stable | | Token Traverse| Stable | X | X | Stable | X | -### Efficiency +#### Efficiency | Feature | SRS | NGINX | CRTMPD | FMS | WOWZA | | ----------- | ------- | ----- | --------- | -------- | ------ | @@ -278,7 +284,7 @@ Compare SRS with other media server. | RTMP Latency| 0.1s | 3s | 3s | 3s | 3s | | HLS Latency | 10s | 30s | X | 30s | 30s | -### Stream Caster +#### Stream Caster | Feature | SRS | NGINX | CRTMPD | FMS | WOWZA | | ----------- | ------- | ----- | --------- | -------- | ------ | @@ -287,21 +293,21 @@ Compare SRS with other media server. | Push RTSP | Experiment| X | Stable | X | Stable | | Push HTTP FLV | Experiment| X | X | X | X | -### Debug System +#### Debug System | Feature | SRS | NGINX | CRTMPD | FMS | WOWZA | | ----------- | ------- | ----- | --------- | -------- | ------ | | BW check | Stable | X | X | X | X | | Tracable Log | Stable | X | X | X | X | -### Docs +#### Docs | Feature | SRS | NGINX | CRTMPD | FMS | WOWZA | | ----------- | ------- | ----- | --------- | -------- | ------ | | Demos | Stable | X | X | X | X | | WIKI(EN+CN) | Stable | EN only | X | X | Stable | -### Others +#### Others | Feature | SRS | NGINX | CRTMPD | FMS | WOWZA | | ----------- | ------- | ----- | --------- | -------- | ------ | @@ -317,7 +323,7 @@ Remark: 1. Security: To allow or deny stream publish or play. 1. Reload: Nginx supports reload, but not nginx-rtmp. -## Releases +### Releases * 2015-09-14, [Release v2.0a1][r2.0a1], 2.0 alpha1, 2.0.189, 89269 lines.
* 2015-08-23, [Release v2.0a0][r2.0a0], 2.0 alpha0, 2.0.185, 89022 lines.
@@ -345,7 +351,7 @@ Remark: * 2013-10-23, [Release v0.1][r0.1], support [rtmp FMLE/FFMPEG publish][v1_CN_DeliveryRTMP], vp6. 8287 lines.
* 2013-10-17, Created.
-## History +### History * v3.0, 2015-09-19, support amf0 and json to convert with each other. * v3.0, 2015-09-19, json objects support dumps to string. @@ -676,7 +682,7 @@ Remark: * v0.1, 2013-10-18, support rtmp message2chunk protocol(send\_message). * v0.1, 2013-10-17, support rtmp chunk2message protocol(recv\_message). -## Performance +### Performance Performance benchmark history, on virtual box. @@ -684,7 +690,7 @@ Performance benchmark history, on virtual box. * See also: [Performance for RaspberryPi][v1_CN_RaspberryPi] * About multiple-process performance, read [srs-dolphin][srs-dolphin]. -### Play RTMP benchmark +#### Play RTMP benchmark The play RTMP benchmark by [SB][srs-bench]: @@ -704,7 +710,7 @@ The play RTMP benchmark by [SB][srs-bench]: | 2014-12-05 | 2.0.57 | 9.0k(9000) | players | 90% | 468MB | [code][p11] | | 2014-12-07 | 2.0.67 | 10k(10000) | players | 95% | 656MB | [code][p12] | -### Publish RTMP benchmark +#### Publish RTMP benchmark The publish RTMP benchmark by [SB][srs-bench]: @@ -720,7 +726,7 @@ The publish RTMP benchmark by [SB][srs-bench]: | 2014-12-04 | 2.0.51 | 2.5k(2500) | publishers | 91% | 259MB | [code][p4] | | 2014-12-04 | 2.0.52 | 4.0k(4000) | publishers | 80% | 331MB | [code][p5] | -### Play HTTP FLV benchmark +#### Play HTTP FLV benchmark The play HTTP FLV benchmark by [SB][srs-bench]: @@ -733,7 +739,7 @@ The play HTTP FLV benchmark by [SB][srs-bench]: | 2014-05-24 | 2.0.170 | 3.0k(3000) | players | 89% | 96MB | [code][p19] | | 2014-05-25 | 2.0.171 | 6.0k(6000) | players | 84% | 297MB | [code][p20] | -### Latency benchmark +#### Latency benchmark The latency between encoder and player with realtime config([CN][v2_CN_LowLatency], [EN][v2_EN_LowLatency]): | @@ -748,7 +754,7 @@ We use FMLE as encoder for benchmark. The latency of server is 0.1s+, and the bottleneck is the encoder. For more information, read [bug #257][bug #257-c0]. -### HLS overhead +#### HLS overhead About the HLS overhead of SRS, we compare the overhead to FLV by remux the HLS to FLV by ffmpeg. @@ -783,7 +789,7 @@ SRS always use the most simple architecture to support complex transaction. ### System Architecture -
+```
 +------------------------------------------------------+
 |                    Application                       |
 |            Origin/Edge/HTTP-FLV/StreamCaster         |
@@ -797,11 +803,11 @@ SRS always use the most simple architecture to support complex transaction.
 +------------------------------------------------------+
 |    All Linux/Unix(RHEL,CentOS,Ubuntu,Fedora...)      |
 +------------------------------------------------------+
-
+``` ### Modularity Architecture -
+```
 +------------------------------------------------------+
 |             Main(srs/ingest-hls/librtmp)             |
 +------------------------------------------------------+
@@ -815,7 +821,7 @@ SRS always use the most simple architecture to support complex transaction.
 +------------------------------------------------------+
 |         Core(depends only on system apis)            |
 +------------------------------------------------------+
-
+``` Remark: @@ -823,7 +829,7 @@ Remark: ### Stream Architecture -
+```
                    +---------+              +----------+
                    | Publish |              |  Deliver |
                    +---|-----+              +----|-----+
@@ -852,7 +858,7 @@ Remark:
 |   ......)            |                         |                |
 +----------------------+-------------------------+----------------+
 
-
+``` Remark: @@ -865,6 +871,7 @@ Remark: Beijing, 2013.10
Winlin + [p1]: https://github.com/simple-rtmp-server/srs/commit/787ab674e38734ea8e0678101614fdcd84645dc8 [p2]: https://github.com/simple-rtmp-server/srs/commit/f35ec2155b1408d528a9f37da7904c9625186bcf [p3]: https://github.com/simple-rtmp-server/srs/commit/29324fab469e0f7cef9ad04ffdbce832ac7dd9ff @@ -947,6 +954,7 @@ Winlin [v2_EN_Home]: https://github.com/simple-rtmp-server/srs/wiki/v2_EN_Home [donation0]: http://winlinvip.github.io/srs.release/donation/index.html [donation1]: http://www.ossrs.net/srs.release/donation/index.html +[donation2]: http://www.ossrs.net/srs.release/donation/paypal.html [donations]: https://github.com/simple-rtmp-server/srs/blob/develop/DONATIONS.txt [v2_CN_Build]: https://github.com/simple-rtmp-server/srs/wiki/v2_CN_Build @@ -1261,6 +1269,7 @@ Winlin [more0]: http://winlinvip.github.io/srs.release/releases/ [more1]: http://www.ossrs.net/srs.release/releases/ +[mirrors]: https://github.com/simple-rtmp-server/srs/tree/develop#mirrors [branch1]: https://github.com/simple-rtmp-server/srs/tree/1.0release [branch2]: https://github.com/simple-rtmp-server/srs/tree/2.0release [release2]: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Product#release20