mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +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 |
|
| 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 |
|
| (FMLE,FFMPEG, -rtmp-+->-+-> HLS/HTTP ---------+-> M3u8 player |
|
||||||
| Flash,XSPLIT, | +-> FLV/MP3/Aac/Ts ---+-> HTTP player |
|
| Flash,XSPLIT, | +-> FLV/MP3/Aac/Ts ---+-> HTTP player |
|
||||||
| ......) | +-> Fowarder ---------+-> RTMP server |
|
| ......) | +-> 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>.
|
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>
|
</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/>
|
Beijing, 2013.10<br/>
|
||||||
Winlin
|
Winlin
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue