正在显示
1 个修改的文件
包含
53 行增加
和
23 行删除
| @@ -172,22 +172,51 @@ Stream Architecture: | @@ -172,22 +172,51 @@ Stream Architecture: | ||
| 172 | | | +-> BandwidthTest ----+-> Flash/StLoad | | 172 | | | +-> BandwidthTest ----+-> Flash/StLoad | |
| 173 | +-----------+-------------------------+----------------+ | 173 | +-----------+-------------------------+----------------+ |
| 174 | </pre> | 174 | </pre> |
| 175 | -RTMP cluster(origin/edge) Architecture:<br/> | 175 | +(plan) RTMP cluster(origin/edge) Architecture:<br/> |
| 176 | Remark: cluster over forward, see [Cluster](https://github.com/winlinvip/simple-rtmp-server/wiki/Cluster) | 176 | Remark: cluster over forward, see [Cluster](https://github.com/winlinvip/simple-rtmp-server/wiki/Cluster) |
| 177 | <pre> | 177 | <pre> |
| 178 | - +---------+ +----------+ | ||
| 179 | - + Publish + + Deliver | | ||
| 180 | - +---|-----+ +----|-----+ | ||
| 181 | -+-----------+-------------------------+----------------+ | ||
| 182 | -| Encoder | SRS(Simple RTMP Server) | Client | | ||
| 183 | -+-----------+-------------------------+----------------+ | ||
| 184 | -| (FMLE, | +-> RTMP protocol ----+-> Flash Player | | ||
| 185 | -| FFMPEG, --+-> +-> HLS/NGINX --------+-> m3u8 player | | ||
| 186 | -| Flash, | +-> Fowarder ---------+-> RTMP Server | | ||
| 187 | -| XSPLIT, | +-> Transcoder -------+-> RTMP Server | | ||
| 188 | -| ...) | +-> DVR --------------+-> FILE | | ||
| 189 | -| | +-> BandwidthTest ----+-> Flash/StLoad | | ||
| 190 | -+-----------+-------------------------+----------------+ | 178 | ++---------+ +-----------------+ +-----------------------+ |
| 179 | ++ Encoder +--+-->-+ SRS(RTMP Edge) +--->-+ (RTMP Origin) | | ||
| 180 | ++---------+ | +-----------------+ | SRS/FMS/NGINX-RTMP | | ||
| 181 | + | | Red5/HELIX/CRTMP | | ||
| 182 | + +-------------------------->-+ ...... | | ||
| 183 | + +-----------------------+ | ||
| 184 | +Schema#1: Any RTMP encoder push RTMP stream to RTMP (origin/edge)server, | ||
| 185 | + where SRS RTMP Edge server will forward stream to origin. | ||
| 186 | + | ||
| 187 | + | ||
| 188 | ++-------------+ +-----------------+ +--------------------+ | ||
| 189 | +| RTMP Origin +-->-+ SRS(RTMP Edge) +--+->-+ Client(RTMP/HLS) | | ||
| 190 | ++-------------+ +-----------------+ | | Flash/IOS/Android | | ||
| 191 | + | +--------------------+ | ||
| 192 | + | | ||
| 193 | + | +-----------------+ | ||
| 194 | + +->-+ SRS(RTMP Edge) + | ||
| 195 | + +-----------------+ | ||
| 196 | +Schema#2: SRS RTMP Edge server pull stream from origin (or upstream SRS | ||
| 197 | + RTMP Edge server), then delivery to Client. | ||
| 198 | +</pre> | ||
| 199 | +(plan) SRS Multiple processes Architecture:<br/> | ||
| 200 | +<pre> | ||
| 201 | + +---------------------------+ | ||
| 202 | + +-----+ worker process(3) | | ||
| 203 | ++----------------+ | +---------------------------+ | ||
| 204 | +| master process |---(2)---+ | ||
| 205 | +| (1)manager | | +---------------------------+ | ||
| 206 | ++----------------+ +-----+ worker process N | | ||
| 207 | + | +---------------------------+ | ||
| 208 | + | | ||
| 209 | + | +---------------------------+ | ||
| 210 | + +-----+ bandwidth test process(4) | | ||
| 211 | + +---------------------------+ | ||
| 212 | +Remark: | ||
| 213 | +(1) master process: to fork processes, schedule fd(client) to the "right" process, | ||
| 214 | + forward messages between processes | ||
| 215 | +(2) communication: master process use unix domain socket to communicate with | ||
| 216 | + worker processes. | ||
| 217 | +(3) worker process: to provide RTMP streaming service, generate HLS files. | ||
| 218 | +(4) bandwidth test process: for all bandwidth test request, to make the bandwidth | ||
| 219 | + testing has minimal effect to streaming service | ||
| 191 | </pre> | 220 | </pre> |
| 192 | Bandwidth Test Workflow: | 221 | Bandwidth Test Workflow: |
| 193 | <pre> | 222 | <pre> |
| @@ -247,15 +276,16 @@ Supported operating systems and hardware: | @@ -247,15 +276,16 @@ Supported operating systems and hardware: | ||
| 247 | 22. Player, publisher(encoder), and demo pages(jquery+bootstrap). <br/> | 276 | 22. Player, publisher(encoder), and demo pages(jquery+bootstrap). <br/> |
| 248 | 23. Demo video meeting or chat(SRS+cherrypy+jquery+bootstrap). <br/> | 277 | 23. Demo video meeting or chat(SRS+cherrypy+jquery+bootstrap). <br/> |
| 249 | 24. [dev] Full documents in wiki, in chineses. <br/> | 278 | 24. [dev] Full documents in wiki, in chineses. <br/> |
| 250 | -25. [plan] Support RTMP edge server<br/> | ||
| 251 | -26. [plan] Support multiple processes<br/> | ||
| 252 | -27. [plan] Support network based cli and json result.<br/> | ||
| 253 | -28. [no-plan] Support adobe flash refer/token/swf verification.<br/> | ||
| 254 | -29. [no-plan] Support adobe amf3 codec.<br/> | ||
| 255 | -30. [no-plan] Support dvr(record live to vod file)<br/> | ||
| 256 | -31. [no-plan] Support encryption: RTMPE/RTMPS, HLS DRM<br/> | ||
| 257 | -32. [no-plan] Support RTMPT, http to tranverse firewalls<br/> | ||
| 258 | -33. [no-plan] Support file source, transcoding file to live stream<br/> | 279 | +25. [plan] Support HLS cluster, use RTMP ATC to generate the TS<br/> |
| 280 | +26. [plan] Support RTMP edge server, push/pull stream from any RTMP server<br/> | ||
| 281 | +27. [plan] Support multiple processes, for both origin and edge<br/> | ||
| 282 | +28. [plan] Support network based cli and json result.<br/> | ||
| 283 | +29. [no-plan] Support adobe flash refer/token/swf verification.<br/> | ||
| 284 | +30. [no-plan] Support adobe amf3 codec.<br/> | ||
| 285 | +31. [no-plan] Support dvr(record live to vod file)<br/> | ||
| 286 | +32. [no-plan] Support encryption: RTMPE/RTMPS, HLS DRM<br/> | ||
| 287 | +33. [no-plan] Support RTMPT, http to tranverse firewalls<br/> | ||
| 288 | +34. [no-plan] Support file source, transcoding file to live stream<br/> | ||
| 259 | 289 | ||
| 260 | ### Performance | 290 | ### Performance |
| 261 | 1. 300 connections, 150Mbps, 500kbps, CPU 18.8%, 5956KB. | 291 | 1. 300 connections, 150Mbps, 500kbps, CPU 18.8%, 5956KB. |
-
请 注册 或 登录 后发表评论