Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
胡斌
/
srs
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
winlin
2014-03-21 18:20:07 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
b89036e47cf75905abddadf9f5234d0cbc844d18
b89036e4
1 parent
238bcff0
refine readme
隐藏空白字符变更
内嵌
并排对比
正在显示
1 个修改的文件
包含
39 行增加
和
16 行删除
README.md
README.md
查看文件 @
b89036e
#Simple-RTMP-Server
==================
SRS(SIMPLE RTMP Server) over state-threads created in 2013.10.
...
...
@@ -42,7 +41,7 @@ A big THANK YOU goes to:
*
[
FFMPEG
](
http://ffmpeg.org/
)
and
[
libx264
](
http://www.videolan.org/
)
group for srs to use to transcode.
*
Guido van Rossum for creating Python for api-server for srs.
##
#
Usage
## Usage
<strong>
Step 1:
</strong>
get SRS
<br/>
<pre>
...
...
@@ -70,12 +69,12 @@ cd simple-rtmp-server/trunk
[
Usage: Solution using SRS?
](
https://github.com/winlinvip/simple-rtmp-server/wiki/Sample
)
<br/>
[
Usage: Why SRS?
](
https://github.com/winlinvip/simple-rtmp-server/wiki/Product
)
<br/>
##
#
System Requirements
## System Requirements
Supported operating systems and hardware:
*
All Linux , both 32 and 64 bits
*
All handware.
##
#
Summary
## Summary
01.
Simple: also stable enough.
<br/>
02.
[
High-performance
](
https://github.com/winlinvip/simple-rtmp-server/wiki/Performance
)
: single-thread, async socket, event/st-thread driven.
<br/>
03.
With RTMP edge server, support origin server.
<br/>
...
...
@@ -119,7 +118,7 @@ Supported operating systems and hardware:
41.
[
no-plan
]
Support RTMPT, http to tranverse firewalls
<br/>
42.
[
no-plan
]
Support file source, transcoding file to live stream
<br/>
##
#
Performance
## Performance
1.
300 connections, 150Mbps, 500kbps, CPU 18.8%, MEM 5956KB.
2.
600 connections, 300Mbps, 500kbps, CPU 32.1%, MEM 9808KB.
3.
900 connections, 450Mbps, 500kbps, CPU 49.9%, MEM 11MB.
...
...
@@ -143,7 +142,7 @@ usr sys idl wai hiq siq| read writ| recv send| in out | int csw
</pre>
See also:
[
Performance Test Guide
](
https://github.com/winlinvip/simple-rtmp-server/wiki/Performance
)
##
#
Releases
## Releases
*
2013-12-25,
[
Release v0.9
](
https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.9
)
, support bandwidth test, player/encoder/chat demos. 20926 lines.
<br/>
*
2013-12-08,
[
Release v0.8
](
https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.8
)
, support http hooks callback, update
[
st_load
](
https://github.com/winlinvip/st-load
)
. 19186 lines.
<br/>
*
2013-12-03,
[
Release v0.7
](
https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.7
)
, support live stream transcoding. 17605 lines.
<br/>
...
...
@@ -155,7 +154,7 @@ See also: [Performance Test Guide](https://github.com/winlinvip/simple-rtmp-serv
*
2013-10-23,
[
Release v0.1
](
https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.1
)
, support rtmp FMLE/FFMPEG publish, vp6. 8287 lines.
<br/>
*
2013-10-17, Created.
<br/>
##
#
Compare
## Compare
*
SRS v0.9: 20926 lines. player/encoder/chat demos. bandwidth test for encoder/CDN.
<br/>
*
SRS v0.8: 19186 lines. implements http hooks refer to
[
nginx-rtmp
](
https://github.com/arut/nginx-rtmp-module
)
.
<br/>
*
SRS v0.7: 17605 lines. implements transcoding(FFMPEG) feature refer to
[
wowza
](
http://www.wowza.com
)
.
<br/>
...
...
@@ -168,7 +167,7 @@ See also: [Performance Test Guide](https://github.com/winlinvip/simple-rtmp-serv
*
nginx-rtmp v1.0.4: 26786 lines
<br/>
*
nginx v1.5.0: 139524 lines
<br/>
##
#
History
## History
*
v1.0, 2014-03-21, write pid to ./objs/srs.pid.
*
v1.0, 2014-03-20, refine hls code, support pure audio HLS.
*
v1.0, 2014-03-19, add vn/an for FFMPEG to drop video/audio for radio stream.
...
...
@@ -270,8 +269,19 @@ on_connect/close/publish/unpublish/play/stop.
*
v0.1, 2013-10-18, support rtmp message2chunk protocol(send
\_
message).
*
v0.1, 2013-10-17, support rtmp chunk2message protocol(recv
\_
message).
### Architecture
System Architecture:
## Architecture
srs always use the most simple architecture to support complex transaction.
*
System arch: the system structure and arch.
*
Modularity arch: the main modularity of srs.
*
Stream arch: the stream dispatch arch of srs.
*
RTMP cluster arch: the RTMP origin and edge cluster arch.
*
Multiple processes arch (by wenjie): the multiple process of srs.
*
CLI arch: the cli arch for srs, api to manage srs.
*
Bandwidth specification: the bandwidth test specification of srs.
### System Architecture
<pre>
+------------------------------------------------------+
| SRS(Simple RTMP Server) |
...
...
@@ -284,7 +294,9 @@ System Architecture:
| All Linux(RHEL,CentOS,Ubuntu,Fedora...) |
+------------------------------------------------------+
</pre>
Modularity Architecture:
### Modularity Architecture
<pre>
+------------------------------------------------------+
| Main(srs/bandwidth/librtmp) |
...
...
@@ -298,7 +310,9 @@ Modularity Architecture:
| Core(depends only on system apis) |
+------------------------------------------------------+
</pre>
Stream Architecture:
### Stream Architecture
<pre>
+---------+ +----------+
+
Publish + + Deliver |
...
...
@@ -324,8 +338,11 @@ Remark:
(1) Encoder: encoder must push RTMP stream to SRS server.
(2) MediaSource: any media source, which can be ingest by ffmpeg.
</pre>
(plan) RTMP cluster(origin/edge) Architecture:
<br/>
### (plan) RTMP cluster(origin/edge) Architecture
Remark: cluster over forward, see
[
Cluster
](
https://github.com/winlinvip/simple-rtmp-server/wiki/Cluster
)
<pre>
+---------+ +-----------------+ +-----------------------+
+
Encoder +--+-->-+ SRS(RTMP Edge) +--->-+ (RTMP Origin) |
...
...
@@ -348,7 +365,9 @@ Schema#1: Any RTMP encoder push RTMP stream to RTMP (origin/edge)server,
Schema#2: SRS RTMP Edge server pull stream from origin (or upstream SRS
RTMP Edge server), then delivery to Client.
</pre>
(plan) SRS Multiple processes Architecture(design by wenjie):
<br/>
### (plan) SRS Multiple processes Architecture(design by wenjie)
<pre>
+---------------+ +--------+
| upnode server | + client +
...
...
@@ -380,7 +399,9 @@ Remark:
will collect informations from all stream process, master process
only send signals to child processes.
</pre>
CLI Architecture:
### CLI Architecture
<pre>
+---------+
+--+ stream1 +---------+
...
...
@@ -402,7 +423,9 @@ Remark:
(5) cli connect to each stream/back-source process to get api data,
cli analysis and summary the data, return to user.
</pre>
Bandwidth Test Workflow:
### Bandwidth Test Workflow
<pre>
+------------+ +----------+
| Client | | Server |
...
...
请
注册
或
登录
后发表评论