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].
-[](http://www.ossrs.net/srs.release/donation/index.html)
-[](http://www.ossrs.net/srs.release/donation/paypal.html)
+[][donation1]
+[][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,7 +66,57 @@ 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
+
+[][donation1]
+[][donation2]
+
+Donation: [http://www.ossrs.net/srs.release/donation/index.html][donation1]
+
+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])
+* Usage: How to delivery RTMP Cluster?([CN][v1_CN_SampleRTMPCluster], [EN][v1_EN_SampleRTMPCluster])
+* Usage: How to delivery HTTP FLV Live Streaming?([CN][v2_CN_SampleHttpFlv], [EN][v2_EN_SampleHttpFlv])
+* Usage: How to delivery HTTP FLV Live Streaming Cluster?([CN][v2_CN_SampleHttpFlvCluster], [EN][v2_EN_SampleHttpFlvCluster])
+* Usage: How to delivery HLS?([CN][v2_CN_SampleHLS], [EN][v2_EN_SampleHLS])
+* Usage: How to delivery HLS for other codec?([CN][v2_CN_SampleTranscode2HLS], [EN][v2_EN_SampleTranscode2HLS])
+* Usage: How to transode RTMP stream by SRS?([CN][v2_CN_SampleFFMPEG], [EN][v2_EN_SampleFFMPEG])
+* Usage: How to forward stream to other server?([CN][v1_CN_SampleForward], [EN][v1_EN_SampleForward])
+* Usage: How to deploy low lantency application?([CN][v2_CN_SampleRealtime], [EN][v2_EN_SampleRealtime])
+* Usage: How to deploy SRS on ARM?([CN][v1_CN_SampleARM], [EN][v1_EN_SampleARM])
+* Usage: How to ingest file/stream/device to SRS?([CN][v1_CN_SampleIngest], [EN][v1_EN_SampleIngest])
+* Usage: How to use SRS-HTTP-server to delivery HTTP/HLS stream?([CN][v2_CN_SampleHTTP], [EN][v2_EN_SampleHTTP])
+* Usage: How to show the demo of SRS? ([CN][v1_CN_SampleDemo], [EN][v1_EN_SampleDemo])
+* Usage: How to publish h.264 raw stream to SRS? ([CN][v2_CN_SrsLibrtmp2], [EN][v2_EN_SrsLibrtmp2])
+* Usage: Solution using SRS?([CN][v1_CN_Sample], [EN][v1_EN_Sample])
+* Usage: Why SRS?([CN][v1_CN_Product], [EN][v1_EN_Product])
+
+### Mirrors
Github: [https://github.com/simple-rtmp-server/srs][srs], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git])
@@ -92,47 +142,14 @@ Gitlab: [https://gitlab.com/winlinvip/srs-gitlab][gitlab], the GIT usage([CN][v1
git clone https://gitlab.com/winlinvip/srs-gitlab.git
```
-## Usage
+### System Requirements
-Step 1: get SRS
+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.
-
-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]) -* Usage: How to delivery RTMP Cluster?([CN][v1_CN_SampleRTMPCluster], [EN][v1_EN_SampleRTMPCluster]) -* Usage: How to delivery HTTP FLV Live Streaming?([CN][v2_CN_SampleHttpFlv], [EN][v2_EN_SampleHttpFlv]) -* Usage: How to delivery HTTP FLV Live Streaming Cluster?([CN][v2_CN_SampleHttpFlvCluster], [EN][v2_EN_SampleHttpFlvCluster]) -* Usage: How to delivery HLS?([CN][v2_CN_SampleHLS], [EN][v2_EN_SampleHLS]) -* Usage: How to delivery HLS for other codec?([CN][v2_CN_SampleTranscode2HLS], [EN][v2_EN_SampleTranscode2HLS]) -* Usage: How to transode RTMP stream by SRS?([CN][v2_CN_SampleFFMPEG], [EN][v2_EN_SampleFFMPEG]) -* Usage: How to forward stream to other server?([CN][v1_CN_SampleForward], [EN][v1_EN_SampleForward]) -* Usage: How to deploy low lantency application?([CN][v2_CN_SampleRealtime], [EN][v2_EN_SampleRealtime]) -* Usage: How to deploy SRS on ARM?([CN][v1_CN_SampleARM], [EN][v1_EN_SampleARM]) -* Usage: How to ingest file/stream/device to SRS?([CN][v1_CN_SampleIngest], [EN][v1_EN_SampleIngest]) -* Usage: How to use SRS-HTTP-server to delivery HTTP/HLS stream?([CN][v2_CN_SampleHTTP], [EN][v2_EN_SampleHTTP]) -* Usage: How to show the demo of SRS? ([CN][v1_CN_SampleDemo], [EN][v1_EN_SampleDemo]) -* Usage: How to publish h.264 raw stream to SRS? ([CN][v2_CN_SrsLibrtmp2], [EN][v2_EN_SrsLibrtmp2]) -* Usage: Solution using SRS?([CN][v1_CN_Sample], [EN][v1_EN_Sample]) -* Usage: Why SRS?([CN][v1_CN_Product], [EN][v1_EN_Product]) - -## Wiki +### Wiki SRS 1.0 wiki @@ -146,20 +163,9 @@ Please select your language: * [SRS 2.0 English][v2_EN_Home] * [SRS 2.0 Chinese][v2_CN_Home] -## Donation +## Product -Donation: [http://www.ossrs.net/srs.release/donation/index.html][donation1] - -Donations: [https://github.com/simple-rtmp-server/srs/blob/develop/DONATIONS.txt][donations] - -## 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 +### 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.
+``` +------------------------------------------------------+ | 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