mirror of
https://github.com/ossrs/srs.git
synced 2025-02-12 11:21:52 +00:00
refine the graph of srs arch.
This commit is contained in:
parent
5908096fc3
commit
56f014ecf2
1 changed files with 1 additions and 70 deletions
71
README.md
71
README.md
|
@ -1210,7 +1210,7 @@ SRS always use the most simple architecture to support complex transaction.
|
|||
+----------------------+-------------------------+----------------+
|
||||
| Input | SRS(Simple RTMP Server) | Output |
|
||||
+----------------------+-------------------------+----------------+
|
||||
| Encoder(1) | +-> RTMP protocol ----+-> RTMP player |
|
||||
| Encoder(1) | +-> RTMP/HDS --------+-> Flash player |
|
||||
| (FMLE,FFMPEG, -rtmp-+->-+-> HLS/HTTP ---------+-> M3u8 player |
|
||||
| Flash,XSPLIT, | +-> FLV/MP3/Aac/Ts ---+-> HTTP player |
|
||||
| ......) | +-> Fowarder ---------+-> RTMP server |
|
||||
|
@ -1240,75 +1240,6 @@ to ingest any input to rtmp, push to SRS. Read <a href="https://github.com/simpl
|
|||
over some protocol and remux to rtmp to SRS. Read <a href="https://github.com/simple-rtmp-server/srs/wiki/v2_CN_Streamer">Streamer</a>.
|
||||
</pre>
|
||||
|
||||
### [HDS/HLS origin backup](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_RTMP-ATC)
|
||||
|
||||
<pre>
|
||||
+----------+ +----------+
|
||||
+--ATC->-+ server +--ATC->-+ packager +-+ +---------+
|
||||
+----------+ | RTMP +----------+ RTMP +----------+ | | Reverse | +-------+
|
||||
| encoder +->-+ +->-+ Proxy +-->-+ CDN +
|
||||
+----------+ | +----------+ +----------+ | | (nginx) | +-------+
|
||||
+--ATC->-+ server +--ATC->-+ packager +-+ +---------+
|
||||
RTMP +----------+ RTMP +----------+
|
||||
</pre>
|
||||
|
||||
### [RTMP cluster(origin/edge) Architecture](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Edge)
|
||||
|
||||
Remark: cluster over edge, see [Edge](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Edge)
|
||||
Remark: cluster over forward, see [Forward](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Forward)
|
||||
|
||||
<pre>
|
||||
+---------+ +-----------------+ +-----------------------+
|
||||
+ Encoder +--+-->-+ SRS(RTMP Edge) +--->-+ (RTMP Origin) |
|
||||
+---------+ | +-----------------+ | SRS/FMS/NGINX-RTMP |
|
||||
| | Red5/HELIX/CRTMP |
|
||||
+-------------------------->-+ ...... |
|
||||
+-----------------------+
|
||||
Schema#1: Any RTMP encoder push RTMP stream to RTMP (origin/edge)server,
|
||||
where SRS RTMP Edge server will forward stream to origin.
|
||||
|
||||
|
||||
+-------------+ +-----------------+ +--------------------+
|
||||
| RTMP Origin +-->-+ SRS(RTMP Edge) +--+->-+ Client(RTMP/HLS) |
|
||||
+-------------+ +-----------------+ | | Flash/IOS/Android |
|
||||
| +--------------------+
|
||||
|
|
||||
| +-----------------+
|
||||
+->-+ SRS(RTMP Edge) +
|
||||
+-----------------+
|
||||
Schema#2: SRS RTMP Edge server pull stream from origin (or upstream SRS
|
||||
RTMP Edge server), then delivery to Client.
|
||||
</pre>
|
||||
|
||||
### Bandwidth Test Workflow
|
||||
|
||||
<pre>
|
||||
+------------+ +----------+
|
||||
| Client | | Server |
|
||||
+-----+------+ +-----+----+
|
||||
| |
|
||||
| connect vhost-------------> |
|
||||
| <-----------result(success) |
|
||||
| |
|
||||
| <----------call(start play) |
|
||||
| result(playing)----------> |
|
||||
| <-------------data(playing) |
|
||||
| <-----------call(stop play) |
|
||||
| result(stopped)----------> |
|
||||
| |
|
||||
| <-------call(start publish) |
|
||||
| result(publishing)-------> |
|
||||
| data(publishing)---------> |
|
||||
| <--------call(stop publish) |
|
||||
| result(stopped)(1)-------> |
|
||||
| |
|
||||
| <--------------------report |
|
||||
| final(2)-----------------> |
|
||||
| <END> |
|
||||
|
||||
@See: class SrsBandwidth comments.
|
||||
</pre>
|
||||
|
||||
Beijing, 2013.10<br/>
|
||||
Winlin
|
||||
|
||||
|
|
Loading…
Reference in a new issue