update readme.

pull/556/head
winlin 10 years ago
parent e5581981d4
commit 0fb353f1f6

@ -9,8 +9,8 @@ Download from github.io: [Centos6-x86_64][centos0], [more...][more0]<br/>
Download from ossrs.net: [Centos6-x86_64][centos1], [more...][more1]<br/> Download from ossrs.net: [Centos6-x86_64][centos1], [more...][more1]<br/>
Website for SRS/2.0, read SRS 2.0 [Chinese][srs2_CN] or [English][srs2_EN]. 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) [![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)](http://www.ossrs.net/srs.release/donation/paypal.html) [![Paypal](https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png)][donation2]
## About ## About
@ -23,7 +23,7 @@ session-oriented log, exports client srs-librtmp,
with stream caster to push MPEGTS-over-UDP/RTSP to SRS, with stream caster to push MPEGTS-over-UDP/RTSP to SRS,
provides EN/CN wiki and the most simple architecture. provides EN/CN wiki and the most simple architecture.
<strong>Why SRS?</strong> ### Why SRS?
1. <strong>Completely Rewrite HLS:</strong> following m3u8/ts spec, and HLS support h.264+aac/mp3. 1. <strong>Completely Rewrite HLS:</strong> following m3u8/ts spec, and HLS support h.264+aac/mp3.
1. <strong>High Efficient RTMP:</strong> deliverying support 7k+ concurrency, vhost based, both origin and edge. 1. <strong>High Efficient RTMP:</strong> 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! Enjoy it!
## AUTHORS ### AUTHORS
There are two types of people that have contributed to the SRS project: There are two types of people that have contributed to the SRS project:
* AUTHORS: Contribute important features. Names of all * 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. * [FFMPEG][FFMPEG] and [libx264][libx264] group for SRS to use to transcode.
* Guido van Rossum for creating Python for api-server for SRS. * 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]) [![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]
```
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
```
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]
``` Donations: [https://github.com/simple-rtmp-server/srs/blob/develop/DONATIONS.txt][donations]
git clone https://gitlab.com/winlinvip/srs-gitlab.git
```
## Usage ## Usage
<strong>Step 1:</strong> get SRS <strong>Step 1:</strong> get SRS
<strong>Download slow? Please use [mirrors][mirrors] for SRS.</strong>
<pre> ```
git clone https://github.com/simple-rtmp-server/srs && git clone https://github.com/simple-rtmp-server/srs &&
cd srs/trunk cd srs/trunk
</pre> ```
<strong>Step 2:</strong> build SRS, <strong>Step 2:</strong> build SRS,
<strong>Requires Centos6.x/Ubuntu12 32/64bits, others see Build([CN][v2_CN_Build],[EN][v2_EN_Build]).</strong> <strong>Requires Centos6.x/Ubuntu12 32/64bits, others see Build([CN][v2_CN_Build],[EN][v2_EN_Build]).</strong>
<pre> ```
./configure && make ./configure && make
</pre> ```
<strong>Step 3:</strong> start SRS <strong>Step 3:</strong> start SRS
<pre> ```
./objs/srs -c conf/srs.conf ./objs/srs -c conf/srs.conf
</pre> ```
<strong>See also:</strong> <strong>See also:</strong>
* Usage: How to delivery RTMP?([CN][v1_CN_SampleRTMP], [EN][v1_EN_SampleRTMP]) * 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: Solution using SRS?([CN][v1_CN_Sample], [EN][v1_EN_Sample])
* Usage: Why SRS?([CN][v1_CN_Product], [EN][v1_EN_Product]) * 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] git clone https://github.com/simple-rtmp-server/srs.git
* [SRS 1.0 Chinese][v1_CN_Home] ```
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] git clone https://code.csdn.net/winlinvip/srs-csdn.git
* [SRS 2.0 Chinese][v2_CN_Home] ```
## 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: Supported operating systems and hardware:
* All Linux , both 32 and 64 bits * All Linux , both 32 and 64 bits
* Apple OSX(Darwin), both 32 and 64bits. * Apple OSX(Darwin), both 32 and 64bits.
* All hardware with x86/x86_64/arm/mips cpu. * 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. Simple, also stable enough.
1. High-performance([CN][v1_CN_Performance], [EN][v1_EN_Performance]): single-thread, async socket, event/st-thread driven. 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 edge server, read [#466][bug #466].
1. [plan]Support HLS realtime latency mode, read [#468][bug #468]. 1. [plan]Support HLS realtime latency mode, read [#468][bug #468].
## Compare ### Compare
Compare SRS with other media server. Compare SRS with other media server.
### Stream Delivery #### Stream Delivery
| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA | | Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
| ----------- | ------- | ----- | --------- | -------- | ------ | | ----------- | ------- | ----- | --------- | -------- | ------ |
@ -243,7 +249,7 @@ Compare SRS with other media server.
| HLS(aonly) | Stable | X | X | Stable | Stable | | HLS(aonly) | Stable | X | X | Stable | Stable |
| HTTP Server | Stable | Stable | X | X | Stable | | HTTP Server | Stable | Stable | X | X | Stable |
### Cluster #### Cluster
| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA | | Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
| ----------- | ------- | ----- | --------- | -------- | ------ | | ----------- | ------- | ----- | --------- | -------- | ------ |
@ -254,7 +260,7 @@ Compare SRS with other media server.
| Forward | Stable | X | X | X | X | | Forward | Stable | X | X | X | X |
| ATC | Stable | X | X | X | X | | ATC | Stable | X | X | X | X |
### Stream Service #### Stream Service
| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA | | Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
| ----------- | ------- | ----- | --------- | -------- | ------ | | ----------- | ------- | ----- | --------- | -------- | ------ |
@ -269,7 +275,7 @@ Compare SRS with other media server.
| Security | Stable | Stable | X | X | Stable | | Security | Stable | Stable | X | X | Stable |
| Token Traverse| Stable | X | X | Stable | X | | Token Traverse| Stable | X | X | Stable | X |
### Efficiency #### Efficiency
| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA | | Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
| ----------- | ------- | ----- | --------- | -------- | ------ | | ----------- | ------- | ----- | --------- | -------- | ------ |
@ -278,7 +284,7 @@ Compare SRS with other media server.
| RTMP Latency| 0.1s | 3s | 3s | 3s | 3s | | RTMP Latency| 0.1s | 3s | 3s | 3s | 3s |
| HLS Latency | 10s | 30s | X | 30s | 30s | | HLS Latency | 10s | 30s | X | 30s | 30s |
### Stream Caster #### Stream Caster
| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA | | Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
| ----------- | ------- | ----- | --------- | -------- | ------ | | ----------- | ------- | ----- | --------- | -------- | ------ |
@ -287,21 +293,21 @@ Compare SRS with other media server.
| Push RTSP | Experiment| X | Stable | X | Stable | | Push RTSP | Experiment| X | Stable | X | Stable |
| Push HTTP FLV | Experiment| X | X | X | X | | Push HTTP FLV | Experiment| X | X | X | X |
### Debug System #### Debug System
| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA | | Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
| ----------- | ------- | ----- | --------- | -------- | ------ | | ----------- | ------- | ----- | --------- | -------- | ------ |
| BW check | Stable | X | X | X | X | | BW check | Stable | X | X | X | X |
| Tracable Log | Stable | X | X | X | X | | Tracable Log | Stable | X | X | X | X |
### Docs #### Docs
| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA | | Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
| ----------- | ------- | ----- | --------- | -------- | ------ | | ----------- | ------- | ----- | --------- | -------- | ------ |
| Demos | Stable | X | X | X | X | | Demos | Stable | X | X | X | X |
| WIKI(EN+CN) | Stable | EN only | X | X | Stable | | WIKI(EN+CN) | Stable | EN only | X | X | Stable |
### Others #### Others
| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA | | Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
| ----------- | ------- | ----- | --------- | -------- | ------ | | ----------- | ------- | ----- | --------- | -------- | ------ |
@ -317,7 +323,7 @@ Remark:
1. Security: To allow or deny stream publish or play. 1. Security: To allow or deny stream publish or play.
1. Reload: Nginx supports reload, but not nginx-rtmp. 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.<br/> * 2015-09-14, [Release v2.0a1][r2.0a1], 2.0 alpha1, 2.0.189, 89269 lines.<br/>
* 2015-08-23, [Release v2.0a0][r2.0a0], 2.0 alpha0, 2.0.185, 89022 lines.<br/> * 2015-08-23, [Release v2.0a0][r2.0a0], 2.0 alpha0, 2.0.185, 89022 lines.<br/>
@ -345,7 +351,7 @@ Remark:
* 2013-10-23, [Release v0.1][r0.1], support [rtmp FMLE/FFMPEG publish][v1_CN_DeliveryRTMP], vp6. 8287 lines.<br/> * 2013-10-23, [Release v0.1][r0.1], support [rtmp FMLE/FFMPEG publish][v1_CN_DeliveryRTMP], vp6. 8287 lines.<br/>
* 2013-10-17, Created.<br/> * 2013-10-17, Created.<br/>
## History ### History
* v3.0, 2015-09-19, support amf0 and json to convert with each other. * 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. * 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-18, support rtmp message2chunk protocol(send\_message).
* v0.1, 2013-10-17, support rtmp chunk2message protocol(recv\_message). * v0.1, 2013-10-17, support rtmp chunk2message protocol(recv\_message).
## Performance ### Performance
Performance benchmark history, on virtual box. Performance benchmark history, on virtual box.
@ -684,7 +690,7 @@ Performance benchmark history, on virtual box.
* See also: [Performance for RaspberryPi][v1_CN_RaspberryPi] * See also: [Performance for RaspberryPi][v1_CN_RaspberryPi]
* About multiple-process performance, read [srs-dolphin][srs-dolphin]. * About multiple-process performance, read [srs-dolphin][srs-dolphin].
### Play RTMP benchmark #### Play RTMP benchmark
The play RTMP benchmark by [SB][srs-bench]: 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-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] | | 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]: 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.51 | 2.5k(2500) | publishers | 91% | 259MB | [code][p4] |
| 2014-12-04 | 2.0.52 | 4.0k(4000) | publishers | 80% | 331MB | [code][p5] | | 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]: 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-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] | | 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]): 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 and the bottleneck is the encoder. For more information, read
[bug #257][bug #257-c0]. [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. 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 ### System Architecture
<pre> ```
+------------------------------------------------------+ +------------------------------------------------------+
| Application | | Application |
| Origin/Edge/HTTP-FLV/StreamCaster | | 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...) | | All Linux/Unix(RHEL,CentOS,Ubuntu,Fedora...) |
+------------------------------------------------------+ +------------------------------------------------------+
</pre> ```
### Modularity Architecture ### Modularity Architecture
<pre> ```
+------------------------------------------------------+ +------------------------------------------------------+
| Main(srs/ingest-hls/librtmp) | | 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) | | Core(depends only on system apis) |
+------------------------------------------------------+ +------------------------------------------------------+
</pre> ```
Remark: Remark:
@ -823,7 +829,7 @@ Remark:
### Stream Architecture ### Stream Architecture
<pre> ```
+---------+ +----------+ +---------+ +----------+
| Publish | | Deliver | | Publish | | Deliver |
+---|-----+ +----|-----+ +---|-----+ +----|-----+
@ -852,7 +858,7 @@ Remark:
| ......) | | | | ......) | | |
+----------------------+-------------------------+----------------+ +----------------------+-------------------------+----------------+
</pre> ```
Remark: Remark:
@ -865,6 +871,7 @@ Remark:
Beijing, 2013.10<br/> Beijing, 2013.10<br/>
Winlin Winlin
[p1]: https://github.com/simple-rtmp-server/srs/commit/787ab674e38734ea8e0678101614fdcd84645dc8 [p1]: https://github.com/simple-rtmp-server/srs/commit/787ab674e38734ea8e0678101614fdcd84645dc8
[p2]: https://github.com/simple-rtmp-server/srs/commit/f35ec2155b1408d528a9f37da7904c9625186bcf [p2]: https://github.com/simple-rtmp-server/srs/commit/f35ec2155b1408d528a9f37da7904c9625186bcf
[p3]: https://github.com/simple-rtmp-server/srs/commit/29324fab469e0f7cef9ad04ffdbce832ac7dd9ff [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 [v2_EN_Home]: https://github.com/simple-rtmp-server/srs/wiki/v2_EN_Home
[donation0]: http://winlinvip.github.io/srs.release/donation/index.html [donation0]: http://winlinvip.github.io/srs.release/donation/index.html
[donation1]: http://www.ossrs.net/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 [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 [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/ [more0]: http://winlinvip.github.io/srs.release/releases/
[more1]: http://www.ossrs.net/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 [branch1]: https://github.com/simple-rtmp-server/srs/tree/1.0release
[branch2]: https://github.com/simple-rtmp-server/srs/tree/2.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 [release2]: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Product#release20

Loading…
Cancel
Save