winlin

refine the content

正在显示 1 个修改的文件 包含 260 行增加266 行删除
@@ -15,13 +15,7 @@ For the wiki for SRS/3.0, please read [Chinese][srs_CN] or [English][srs_EN]. @@ -15,13 +15,7 @@ For the wiki for SRS/3.0, please read [Chinese][srs_CN] or [English][srs_EN].
15 15
16 * [Content](#content) 16 * [Content](#content)
17 * [About](#about) 17 * [About](#about)
18 - * [Why SRS?](#why-srs)  
19 - * [Authors](#authors)  
20 - * [Donation](#donation)  
21 * [Usage](#usage) 18 * [Usage](#usage)
22 - * [Build](#usage)  
23 - * [Mirrors](#mirrors)  
24 - * [System Requirements](#system-requirements)  
25 * [Wiki](#wiki) 19 * [Wiki](#wiki)
26 * [Product](#product) 20 * [Product](#product)
27 * [Features](#features) 21 * [Features](#features)
@@ -33,6 +27,10 @@ For the wiki for SRS/3.0, please read [Chinese][srs_CN] or [English][srs_EN]. @@ -33,6 +27,10 @@ For the wiki for SRS/3.0, please read [Chinese][srs_CN] or [English][srs_EN].
33 * [System Architecture](#system-architecture) 27 * [System Architecture](#system-architecture)
34 * [Modularity Architecture](#modularity-architecture) 28 * [Modularity Architecture](#modularity-architecture)
35 * [Stream Architecture](#stream-architecture) 29 * [Stream Architecture](#stream-architecture)
  30 + * [Authors](#authors)
  31 + * [Mirrors](#mirrors)
  32 + * [System Requirements](#system-requirements)
  33 + * [Donation](#donation)
36 34
37 ## About 35 ## About
38 36
@@ -44,49 +42,25 @@ The stream on origin can be transcoded, DVR to VOD file, ingest from external so @@ -44,49 +42,25 @@ The stream on origin can be transcoded, DVR to VOD file, ingest from external so
44 HTTP API and callback is powerful mechenism for integraty. 42 HTTP API and callback is powerful mechenism for integraty.
45 The wikis are writen by both English and Chinese. 43 The wikis are writen by both English and Chinese.
46 44
47 -### Why SRS?  
48 -  
49 -1. <strong>Completely Rewrite HLS:</strong> following m3u8/ts spec, and HLS support h.264+aac/mp3.  
50 -1. <strong>High Efficient RTMP:</strong> deliverying support 7k+ concurrency, vhost based, both origin and edge.  
51 -1. <strong>Embeded Simplified Media HTTP Server:</strong> for HLS, api and HTTP flv/ts/mp3/aac streaming.  
52 -1. <strong>Variety Inputs:</strong> RTMP, pull by ingest file or stream(HTTP/RTMP/RTSP), push by stream caster 45 +1. <strong>Completely rewriten HLS:</strong> following m3u8/ts spec, and HLS support h.264+aac/mp3.
  46 +1. <strong>High efficient RTMP:</strong> deliverying support 7k+ concurrency, vhost based, both origin and edge.
  47 +1. <strong>Embeded HTTP server:</strong> for HLS, api and HTTP flv/ts/mp3/aac streaming.
  48 +1. <strong>Variety inputs:</strong> RTMP, pull by ingest file or stream(HTTP/RTMP/RTSP), push by stream caster
53 RTSP/MPEGTS-over-UDP. 49 RTSP/MPEGTS-over-UDP.
54 -1. <strong>Popular Internet Delivery:</strong> RTMP/HDS for flash, HLS for mobile(IOS/IPad/MAC/Android), HTTP 50 +1. <strong>Popular internet delivery:</strong> RTMP/HDS for flash, HLS for mobile(IOS/IPad/MAC/Android), HTTP
55 flv/ts/mp3/aac streaming for user prefered. 51 flv/ts/mp3/aac streaming for user prefered.
56 -1. <strong>Enhanced DVR and HSTRS:</strong> segment/session/append plan, customer path and HTTP callback.  
57 -the hstrs(http stream trigger rtmp source) enable the http-flv stream standby util encoder  
58 -start publish, similar to rtmp, which will trigger edge to fetch from origin.  
59 -1. <strong>Multiple Features:</strong> transcode, forward, ingest, http hooks, dvr, hls, rtsp, http streaming, 52 +1. <strong>Enhanced DVR:</strong> segment/session/append plan, customer path and HTTP callback.
  53 +1. <strong>Multiple features:</strong> transcode, forward, ingest, http hooks, dvr, hls, rtsp, http streaming,
60 http raw api, refer, log, bandwith test and srs-librtmp. 54 http raw api, refer, log, bandwith test and srs-librtmp.
61 -1. <strong>Best Maintainess:</strong> simple arch over state-threads(coroutine), single thread, single process 55 +1. <strong>Best maintainess:</strong> simple arch over state-threads(coroutine), single thread, single process
62 and for linux/osx platform, common server x86-64/i386/arm/mips cpus, rich comments, strictly 56 and for linux/osx platform, common server x86-64/i386/arm/mips cpus, rich comments, strictly
63 follows RTMP/HLS/RTSP spec. 57 follows RTMP/HLS/RTSP spec.
64 -1. <strong>Easy to Use:</strong> both English and Chinese wiki, typically config files in trunk/conf, traceable 58 +1. <strong>Easy to use:</strong> both English and Chinese wiki, typically config files in trunk/conf, traceable
65 and session based log, linux service script and install script. 59 and session based log, linux service script and install script.
66 -1. <strong>MIT License:</strong> open source with product management and evolution. 60 +1. <strong>MIT license:</strong> open source with product management and evolution.
67 61
68 Enjoy it! 62 Enjoy it!
69 63
70 -### AUTHORS  
71 -  
72 -There are two types of people that have contributed to the SRS project:  
73 -* AUTHORS: Contribute important features. Names of all  
74 -PRIMARY response in NetConnection.connect and metadata.  
75 -* CONTRIBUTORS: Submit patches, report bugs, add translations, help answer  
76 -newbie questions, and generally make SRS that much better.  
77 -  
78 -About all PRIMARY, AUTHORS and CONTRIBUTORS, read [AUTHORS.txt][authors].  
79 -  
80 -A big THANK YOU goes to:  
81 -* All friends of SRS for [big supports][bigthanks].  
82 -* Genes amd Mabbott for creating [st][st]([state-threads][st2]).  
83 -* Michael Talyanksy for introducing us to use st.  
84 -* Roman Arutyunyan for creating [nginx-rtmp][nginx-rtmp] for SRS to refer to.  
85 -* Joyent for creating [http-parser][http-parser] for http-api for SRS.  
86 -* Igor Sysoev for creating [nginx][nginx] for SRS to refer to.  
87 -* [FFMPEG][FFMPEG] and [libx264][libx264] group for SRS to use to transcode.  
88 -* Guido van Rossum for creating Python for api-server for SRS.  
89 -  
90 ## Usage 64 ## Usage
91 65
92 <strong>Step 1:</strong> Get SRS. 66 <strong>Step 1:</strong> Get SRS.
@@ -128,39 +102,6 @@ cd srs/trunk @@ -128,39 +102,6 @@ cd srs/trunk
128 * Usage: Solution using SRS?([CN][v1_CN_Sample], [EN][v1_EN_Sample]) 102 * Usage: Solution using SRS?([CN][v1_CN_Sample], [EN][v1_EN_Sample])
129 * Usage: Why SRS?([CN][v1_CN_Product], [EN][v1_EN_Product]) 103 * Usage: Why SRS?([CN][v1_CN_Product], [EN][v1_EN_Product])
130 104
131 -### Mirrors  
132 -  
133 -Github: [https://github.com/ossrs/srs][srs], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git])  
134 -  
135 -```  
136 -git clone https://github.com/ossrs/srs.git  
137 -```  
138 -  
139 -CSDN: [https://code.csdn.net/winlinvip/srs-csdn][csdn], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git])  
140 -  
141 -```  
142 -git clone https://code.csdn.net/winlinvip/srs-csdn.git  
143 -```  
144 -  
145 -OSChina: [http://git.oschina.net/winlinvip/srs.oschina][oschina], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git])  
146 -  
147 -```  
148 -git clone https://git.oschina.net/winlinvip/srs.oschina.git  
149 -```  
150 -  
151 -Gitlab: [https://gitlab.com/winlinvip/srs-gitlab][gitlab], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git])  
152 -  
153 -```  
154 -git clone https://gitlab.com/winlinvip/srs-gitlab.git  
155 -```  
156 -  
157 -### System Requirements  
158 -  
159 -Supported operating systems and hardware:  
160 -* All Linux , both 32 and 64 bits  
161 -* Apple OSX(Darwin), both 32 and 64bits.  
162 -* All hardware with x86/x86_64/arm/mips cpu.  
163 -  
164 ### Wiki 105 ### Wiki
165 106
166 #### SRS 1.0 wiki 107 #### SRS 1.0 wiki
@@ -185,198 +126,6 @@ Please select your language: @@ -185,198 +126,6 @@ Please select your language:
185 126
186 The `features`, `compare`, `release` and `performance` of SRS. 127 The `features`, `compare`, `release` and `performance` of SRS.
187 128
188 -### Features  
189 -  
190 -1. Simple, also stable enough.  
191 -1. High-performance([CN][v1_CN_Performance], [EN][v1_EN_Performance]): single-thread, async socket, event/st-thread driven.  
192 -1. High-concurrency([CN][v1_CN_Performance], [EN][v1_EN_Performance]), 6000+ connections(500kbps), 900Mbps, CPU 90.2%, 41MB  
193 -1. Support RTMP Origin Server([CN][v1_CN_DeliveryRTMP],[EN][v1_EN_DeliveryRTMP])  
194 -1. Support RTMP Edge Server([CN][v1_CN_Edge], [EN][v1_EN_Edge]) for CDN, push/pull stream from any RTMP server  
195 -1. Support single process; no multiple processes.  
196 -1. Support Vhost([CN][v1_CN_RtmpUrlVhost], [EN][v1_EN_RtmpUrlVhost]), support \_\_defaultVhost\_\_.  
197 -1. Support RTMP([CN][v1_CN_DeliveryRTMP], [EN][v1_EN_DeliveryRTMP]) live streaming; no vod streaming.  
198 -1. Support Apple HLS(m3u8)([CN][v1_CN_DeliveryHLS], [EN][v1_EN_DeliveryHLS]) live streaming.  
199 -1. Support HLS audio-only([CN][v1_CN_DeliveryHLS2], [EN][v1_EN_DeliveryHLS2]) live streaming.  
200 -1. Support Reload([CN][v1_CN_Reload], [EN][v1_EN_Reload]) config to enable changes.  
201 -1. Support cache last gop([CN][v1_CN_LowLatency2], [EN][v1_EN_LowLatency2]) for flash player to fast startup.  
202 -1. Support listen at multiple ports.  
203 -1. Support long time(>4.6hours) publish/play.  
204 -1. Support Forward([CN][v1_CN_Forward], [EN][v1_EN_Forward]) in master-slave mode.  
205 -1. Support live stream Transcoding([CN][v1_CN_FFMPEG], [EN][v1_EN_FFMPEG]) by ffmpeg.  
206 -1. Support ffmpeg([CN][v1_CN_FFMPEG], [EN][v1_EN_FFMPEG]) filters(logo/overlay/crop), x264 params, copy/vn/an.  
207 -1. Support audio transcode([CN][v1_CN_FFMPEG], [EN][v1_EN_FFMPEG]) only, speex/mp3 to aac  
208 -1. Support http callback api hooks([CN][v1_CN_HTTPCallback], [EN][v1_EN_HTTPCallback])(for authentication and injection).  
209 -1. Support bandwidth test([CN][v1_CN_BandwidthTestTool], [EN][v1_EN_BandwidthTestTool]) api and flash client.  
210 -1. Player, publisher(encoder), and demo pages(jquery+bootstrap)([CN][v1_CN_SampleDemo],[EN][v1_EN_SampleDemo]).  
211 -1. Demo([CN][v1_CN_SampleDemo], [EN][v1_EN_SampleDemo]) video meeting or chat(SRS+cherrypy+jquery+bootstrap).  
212 -1. Full documents in wiki([CN][v1_CN_Home], [EN][v1_EN_Home]), both Chinese and English.  
213 -1. Support RTMP(play-publish) library: srs-librtmp([CN][v2_CN_SrsLibrtmp], [EN][v2_EN_SrsLibrtmp])  
214 -1. Support ARM cpu arch([CN][v1_CN_SrsLinuxArm], [EN][v1_EN_SrsLinuxArm]) with rtmp/ssl/hls/librtmp.  
215 -1. Support init.d([CN][v1_CN_LinuxService], [EN][v1_EN_LinuxService]) and packge script, log to file.  
216 -1. Support RTMP ATC([CN][v1_CN_RTMP-ATC], [EN][v1_EN_RTMP-ATC]) for HLS/HDS to support backup(failover)  
217 -1. Support HTTP RESTful management api([CN][v1_CN_HTTPApi], [EN][v1_EN_HTTPApi]).  
218 -1. Support Ingest([CN][v1_CN_Ingest], [EN][v1_EN_Ingest]) FILE/HTTP/RTMP/RTSP(RTP, SDP) to RTMP using external tools(e.g ffmepg).  
219 -1. Support DVR([CN][v1_CN_DVR], [EN][v1_EN_DVR]), record live to flv file for vod.  
220 -1. Support tracable log, session based log([CN][v1_CN_SrsLog], [EN][v1_EN_SrsLog]).  
221 -1. Support DRM token traverse([CN][v1_CN_DRM2], [EN][v1_EN_DRM2]) for fms origin authenticate.  
222 -1. Support system full utest on gtest.  
223 -1. Support embeded HTTP server([CN][v2_CN_SampleHTTP], [EN][v2_EN_SampleHTTP]) for hls(live/vod)  
224 -1. Support vod stream(http flv/hls vod stream)([CN][v2_CN_FlvVodStream], [EN][v2_EN_FlvVodStream]).  
225 -1. Stable [1.0release branch][branch1].  
226 -1. Support publish h264 raw stream([CN][v2_CN_SrsLibrtmp2], [EN][v2_EN_SrsLibrtmp2]) by srs-librtmp.  
227 -1. Support [6k+ clients][bug #194], 3Gbps per process.  
228 -1. Suppport [English wiki][v1_EN_Home].  
229 -1. Research and simplify st, [bug #182][bug #182].  
230 -1. Support compile [srs-librtmp on windows][srs-librtmp], [bug #213][bug #213].  
231 -1. Support [10k+ clients][bug #251], 4Gbps per process.  
232 -1. Support publish aac adts raw stream([CN][v2_CN_SrsLibrtmp3], [EN][v2_EN_SrsLibrtmp3]) by srs-librtmp.  
233 -1. Support 0.1s+ latency, read [bug #257][bug #257].  
234 -1. Support allow/deny publish/play for all or specified ip([CN][v2_CN_Security], [EN][v2_EN_Security]).  
235 -1. Support custom dvr path and http callback, read [bug #179][bug #179] and [bug #274][bug #274].  
236 -1. Support rtmp remux to http flv/mp3/aac/ts live stream, read [bug #293][bug #293]([CN][v2_CN_DeliveryHttpStream], [EN][v2_CN_DeliveryHttpStream]).  
237 -1. Support HLS(h.264+mp3) streaming, read [bug #301][bug #301].  
238 -1. Rewrite HLS(h.264+aac/mp3) streaming, read [bug #304][bug #304].  
239 -1. [dev] Realease [2.0release branch][branch2].  
240 -1. [experiment] Support Adobe HDS(f4m)([CN][v1_CN_DeliveryHDS], [EN][v1_EN_DeliveryHDS]) dynamic streaming.  
241 -1. [experiment] Support push MPEG-TS over UDP to SRS, read [bug #250][bug #250].  
242 -1. [experiment] Support push RTSP to SRS, read [bug #133][bug #133].  
243 -1. [experiment] Support push flv stream over HTTP POST to SRS, read [wiki]([CN][v2_CN_Streamer2], [EN][v2_EN_Streamer2]).  
244 -1. [experiment] Support [srs-dolphin][srs-dolphin], the multiple-process SRS.  
245 -1. [experiment] Support [remote console][console], read [srs-ngb][srs-ngb].  
246 -1. Support nginx-rtmp style exec, read [bug #367][bug #367].  
247 -1. Support NGINX-RTMP style EXEC, read [#367][bug #367].  
248 -1. Support NGINX-RTMP style dvr control module, read [#459][bug #459].  
249 -1. Support HTTP Security Raw Api, read [#459][bug #459], [#470][bug #470], [#319][bug #319].  
250 -1. Support Integration with Kafka/Spark Big-Data system, read [#467][bug #467].  
251 -1. [plan]Support Origin Cluster for Load Balance and Fault Tolarence, read [#464][bug #464], [RTMP 302][bug #92].  
252 -1. [plan]Support H.265, push RTMP with H.265, delivery in HLS, read [#465][bug #465].  
253 -1. [plan]Support MPEG-DASH, the future streaming protocol, read [#299][bug #299].  
254 -1. [plan]Support HLS edge server, read [#466][bug #466].  
255 -1. [plan]Support HLS realtime latency mode, read [#468][bug #468].  
256 -  
257 -### Compare  
258 -  
259 -Compare SRS with other media server.  
260 -  
261 -#### Stream Delivery  
262 -  
263 -| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |  
264 -| ----------- | ------- | ----- | --------- | -------- | ------ |  
265 -| RTMP | Stable | Stable | Stable | Stable | Stable |  
266 -| HLS | Stable | Stable | X | Stable | Stable |  
267 -| HDS | Experiment| X | X | Stable | Stable |  
268 -| HTTP FLV | Stable | X | X | X | X |  
269 -| HLS(aonly) | Stable | X | X | Stable | Stable |  
270 -| HTTP Server | Stable | Stable | X | X | Stable |  
271 -  
272 -#### Cluster  
273 -  
274 -| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |  
275 -| ----------- | ------- | ----- | --------- | -------- | ------ |  
276 -| RTMP Edge | Stable | X | X | Stable | X |  
277 -| RTMP Backup | Stable | X | X | X | X |  
278 -| VHOST | Stable | X | X | Stable | Stable |  
279 -| Reload | Stable | X | X | X | X |  
280 -| Forward | Stable | X | X | X | X |  
281 -| ATC | Stable | X | X | X | X |  
282 -  
283 -#### Stream Service  
284 -  
285 -| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |  
286 -| ----------- | ------- | ----- | --------- | -------- | ------ |  
287 -| DVR | Stable | Stable | X | X | Stable |  
288 -| DVR API | Stable | Stable | X | X | X |  
289 -| EXEC | Stable | Stable | X | X | X |  
290 -| Transcode | Stable | X | X | X | Stable |  
291 -| HTTP API | Stable | Stable | X | X | Stable |  
292 -| HTTP RAW API | Stable | X | X | X | X |  
293 -| HTTP hooks | Stable | X | X | X | X |  
294 -| GopCache | Stable | X | X | Stable | X |  
295 -| Security | Stable | Stable | X | X | Stable |  
296 -| Token Traverse| Stable | X | X | Stable | X |  
297 -  
298 -#### Efficiency  
299 -  
300 -| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |  
301 -| ----------- | ------- | ----- | --------- | -------- | ------ |  
302 -| Concurrency | 7.5k | 3k | 2k | 2k | 3k |  
303 -|MultipleProcess| Experiment| Stable | X | X | X |  
304 -| RTMP Latency| 0.1s | 3s | 3s | 3s | 3s |  
305 -| HLS Latency | 10s | 30s | X | 30s | 30s |  
306 -  
307 -#### Stream Caster  
308 -  
309 -| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |  
310 -| ----------- | ------- | ----- | --------- | -------- | ------ |  
311 -| Ingest | Stable | X | X | X | X |  
312 -| Push MPEGTS | Experiment| X | X | X | Stable |  
313 -| Push RTSP | Experiment| X | Stable | X | Stable |  
314 -| Push HTTP FLV | Experiment| X | X | X | X |  
315 -  
316 -#### Debug System  
317 -  
318 -| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |  
319 -| ----------- | ------- | ----- | --------- | -------- | ------ |  
320 -| BW check | Stable | X | X | X | X |  
321 -| Tracable Log | Stable | X | X | X | X |  
322 -  
323 -#### Docs  
324 -  
325 -| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |  
326 -| ----------- | ------- | ----- | --------- | -------- | ------ |  
327 -| Demos | Stable | X | X | X | X |  
328 -| WIKI(EN+CN) | Stable | EN only | X | X | Stable |  
329 -  
330 -#### Others  
331 -  
332 -| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |  
333 -| ----------- | ------- | ----- | --------- | -------- | ------ |  
334 -| ARM/MIPS | Stable | Stable | X | X | X |  
335 -| Client Library| Stable | X | X | X | X |  
336 -  
337 -Remark:  
338 -  
339 -1. Concurrency: The concurrency of single process.  
340 -1. MultipleProcess: SRS is single process, while [srs-dolphin][srs-dolphin] is a MultipleProcess SRS.  
341 -1. HLS aonly: The HLS audio only streaming delivery.  
342 -1. BW check: The bandwidth check.  
343 -1. Security: To allow or deny stream publish or play.  
344 -1. Reload: Nginx supports reload, but not nginx-rtmp.  
345 -  
346 -### Releases  
347 -  
348 -* 2016-11-13, [Release v2.0-b3][r2.0b3], 2.0 beta3, 2.0.223, 86685 lines.  
349 -* 2016-11-09, [Release v2.0-b2][r2.0b2], 2.0 beta2, 2.0.221, 86691 lines.  
350 -* 2016-09-09, [Release v2.0-b1][r2.0b1], 2.0 beta1, 2.0.215, 89941 lines.  
351 -* 2016-08-06, [Release v2.0-b0][r2.0b0], 2.0 beta0, 2.0.210, 89704 lines.  
352 -* 2015-12-23, [Release v2.0-a3][r2.0a3], 2.0 alpha3, 2.0.205, 89544 lines.  
353 -* 2015-10-08, [Release v2.0-a2][r2.0a2], 2.0 alpha2, 2.0.195, 89358 lines.  
354 -* 2015-09-14, [Release v2.0-a1][r2.0a1], 2.0 alpha1, 2.0.189, 89269 lines.  
355 -* 2015-08-23, [Release v2.0-a0][r2.0a0], 2.0 alpha0, 2.0.185, 89022 lines.  
356 -* 2015-05-23, [Release v1.0-r4][r1.0r4], bug fixed, 1.0.32, 59509 lines.  
357 -* 2015-03-19, [Release v1.0-r3][r1.0r3], bug fixed, 1.0.30, 59511 lines.  
358 -* 2015-02-12, [Release v1.0-r2][r1.0r2], bug fixed, 1.0.27, 59507 lines.  
359 -* 2015-01-15, [Release v1.0-r1][r1.0r1], bug fixed, 1.0.21, 59472 lines.  
360 -* 2014-12-05, [Release v1.0-r0][r1.0r0], all bug fixed, 1.0.10, 59391 lines.  
361 -* 2014-10-09, [Release v0.9.8][r1.0b0], all bug fixed, 1.0.0, 59316 lines.  
362 -* 2014-08-03, [Release v0.9.7][r1.0a7], config utest, all bug fixed. 57432 lines.  
363 -* 2014-07-13, [Release v0.9.6][r1.0a6], core/kernel/rtmp utest, refine bandwidth(as/js/srslibrtmp library). 50029 lines.  
364 -* 2014-06-27, [Release v0.9.5][r1.0a5], refine perf 3k+ clients, edge token traverse, [srs monitor](http://ossrs.net:1977), 30days online. 41573 lines.  
365 -* 2014-05-28, [Release v0.9.4][r1.0a4], support heartbeat, tracable log, fix mem leak and bugs. 39200 lines.  
366 -* 2014-05-18, [Release v0.9.3][r1.0a3], support mips, fms origin, json(http-api). 37594 lines.  
367 -* 2014-04-28, [Release v0.9.2][r1.0a2], support [dvr][v1_CN_DVR], android, [edge][v1_CN_Edge]. 35255 lines.  
368 -* 2014-04-07, [Release v0.9.1][r1.0a0], support [arm][v1_CN_SrsLinuxArm], [init.d][v1_CN_LinuxService], http [server][v1_CN_HTTPServer]/[api][v1_CN_HTTPApi], [ingest][v1_CN_SampleIngest]. 30000 lines.  
369 -* 2013-12-25, [Release v0.9.0][r0.9], support bandwidth test, player/encoder/chat [demos][v1_CN_SampleDemo]. 20926 lines.  
370 -* 2013-12-08, [Release v0.8.0][r0.8], support [http hooks callback][v1_CN_HTTPCallback], update [SB][srs-bench]. 19186 lines.  
371 -* 2013-12-03, [Release v0.7.0][r0.7], support [live stream transcoding][v1_CN_FFMPEG]. 17605 lines.  
372 -* 2013-11-29, [Release v0.6.0][r0.6], support [forward][v1_CN_Forward] stream to origin/edge. 16094 lines.  
373 -* 2013-11-26, [Release v0.5.0][r0.5], support [HLS(m3u8)][v1_CN_DeliveryHLS], fragment and window. 14449 lines.  
374 -* 2013-11-10, [Release v0.4.0][r0.4], support [reload][v1_CN_Reload] config, pause, longtime publish/play. 12500 lines.  
375 -* 2013-11-04, [Release v0.3.0][r0.3], support [vhost][v1_CN_RtmpUrlVhost], refer, gop cache, listen multiple ports. 11773 lines.  
376 -* 2013-10-25, [Release v0.2.0][r0.2], support [rtmp][v1_CN_RTMPHandshake] flash publish, h264, time jitter correct. 10125 lines.  
377 -* 2013-10-23, [Release v0.1.0][r0.1], support [rtmp FMLE/FFMPEG publish][v1_CN_DeliveryRTMP], vp6. 8287 lines.  
378 -* 2013-10-17, Created.  
379 -  
380 ### History 129 ### History
381 130
382 * v3.0, 2016-12-15, fix #717, #691, http api/static/stream support cors. 3.0.9 131 * v3.0, 2016-12-15, fix #717, #691, http api/static/stream support cors. 3.0.9
@@ -719,6 +468,198 @@ Remark: @@ -719,6 +468,198 @@ Remark:
719 * v0.1, 2013-10-18, support rtmp message2chunk protocol(send\_message). 468 * v0.1, 2013-10-18, support rtmp message2chunk protocol(send\_message).
720 * v0.1, 2013-10-17, support rtmp chunk2message protocol(recv\_message). 469 * v0.1, 2013-10-17, support rtmp chunk2message protocol(recv\_message).
721 470
  471 +### Features
  472 +
  473 +1. Simple, also stable enough.
  474 +1. High-performance([CN][v1_CN_Performance], [EN][v1_EN_Performance]): single-thread, async socket, event/st-thread driven.
  475 +1. High-concurrency([CN][v1_CN_Performance], [EN][v1_EN_Performance]), 6000+ connections(500kbps), 900Mbps, CPU 90.2%, 41MB
  476 +1. Support RTMP Origin Server([CN][v1_CN_DeliveryRTMP],[EN][v1_EN_DeliveryRTMP])
  477 +1. Support RTMP Edge Server([CN][v1_CN_Edge], [EN][v1_EN_Edge]) for CDN, push/pull stream from any RTMP server
  478 +1. Support single process; no multiple processes.
  479 +1. Support Vhost([CN][v1_CN_RtmpUrlVhost], [EN][v1_EN_RtmpUrlVhost]), support \_\_defaultVhost\_\_.
  480 +1. Support RTMP([CN][v1_CN_DeliveryRTMP], [EN][v1_EN_DeliveryRTMP]) live streaming; no vod streaming.
  481 +1. Support Apple HLS(m3u8)([CN][v1_CN_DeliveryHLS], [EN][v1_EN_DeliveryHLS]) live streaming.
  482 +1. Support HLS audio-only([CN][v1_CN_DeliveryHLS2], [EN][v1_EN_DeliveryHLS2]) live streaming.
  483 +1. Support Reload([CN][v1_CN_Reload], [EN][v1_EN_Reload]) config to enable changes.
  484 +1. Support cache last gop([CN][v1_CN_LowLatency2], [EN][v1_EN_LowLatency2]) for flash player to fast startup.
  485 +1. Support listen at multiple ports.
  486 +1. Support long time(>4.6hours) publish/play.
  487 +1. Support Forward([CN][v1_CN_Forward], [EN][v1_EN_Forward]) in master-slave mode.
  488 +1. Support live stream Transcoding([CN][v1_CN_FFMPEG], [EN][v1_EN_FFMPEG]) by ffmpeg.
  489 +1. Support ffmpeg([CN][v1_CN_FFMPEG], [EN][v1_EN_FFMPEG]) filters(logo/overlay/crop), x264 params, copy/vn/an.
  490 +1. Support audio transcode([CN][v1_CN_FFMPEG], [EN][v1_EN_FFMPEG]) only, speex/mp3 to aac
  491 +1. Support http callback api hooks([CN][v1_CN_HTTPCallback], [EN][v1_EN_HTTPCallback])(for authentication and injection).
  492 +1. Support bandwidth test([CN][v1_CN_BandwidthTestTool], [EN][v1_EN_BandwidthTestTool]) api and flash client.
  493 +1. Player, publisher(encoder), and demo pages(jquery+bootstrap)([CN][v1_CN_SampleDemo],[EN][v1_EN_SampleDemo]).
  494 +1. Demo([CN][v1_CN_SampleDemo], [EN][v1_EN_SampleDemo]) video meeting or chat(SRS+cherrypy+jquery+bootstrap).
  495 +1. Full documents in wiki([CN][v1_CN_Home], [EN][v1_EN_Home]), both Chinese and English.
  496 +1. Support RTMP(play-publish) library: srs-librtmp([CN][v2_CN_SrsLibrtmp], [EN][v2_EN_SrsLibrtmp])
  497 +1. Support ARM cpu arch([CN][v1_CN_SrsLinuxArm], [EN][v1_EN_SrsLinuxArm]) with rtmp/ssl/hls/librtmp.
  498 +1. Support init.d([CN][v1_CN_LinuxService], [EN][v1_EN_LinuxService]) and packge script, log to file.
  499 +1. Support RTMP ATC([CN][v1_CN_RTMP-ATC], [EN][v1_EN_RTMP-ATC]) for HLS/HDS to support backup(failover)
  500 +1. Support HTTP RESTful management api([CN][v1_CN_HTTPApi], [EN][v1_EN_HTTPApi]).
  501 +1. Support Ingest([CN][v1_CN_Ingest], [EN][v1_EN_Ingest]) FILE/HTTP/RTMP/RTSP(RTP, SDP) to RTMP using external tools(e.g ffmepg).
  502 +1. Support DVR([CN][v1_CN_DVR], [EN][v1_EN_DVR]), record live to flv file for vod.
  503 +1. Support tracable log, session based log([CN][v1_CN_SrsLog], [EN][v1_EN_SrsLog]).
  504 +1. Support DRM token traverse([CN][v1_CN_DRM2], [EN][v1_EN_DRM2]) for fms origin authenticate.
  505 +1. Support system full utest on gtest.
  506 +1. Support embeded HTTP server([CN][v2_CN_SampleHTTP], [EN][v2_EN_SampleHTTP]) for hls(live/vod)
  507 +1. Support vod stream(http flv/hls vod stream)([CN][v2_CN_FlvVodStream], [EN][v2_EN_FlvVodStream]).
  508 +1. Stable [1.0release branch][branch1].
  509 +1. Support publish h264 raw stream([CN][v2_CN_SrsLibrtmp2], [EN][v2_EN_SrsLibrtmp2]) by srs-librtmp.
  510 +1. Support [6k+ clients][bug #194], 3Gbps per process.
  511 +1. Suppport [English wiki][v1_EN_Home].
  512 +1. Research and simplify st, [bug #182][bug #182].
  513 +1. Support compile [srs-librtmp on windows][srs-librtmp], [bug #213][bug #213].
  514 +1. Support [10k+ clients][bug #251], 4Gbps per process.
  515 +1. Support publish aac adts raw stream([CN][v2_CN_SrsLibrtmp3], [EN][v2_EN_SrsLibrtmp3]) by srs-librtmp.
  516 +1. Support 0.1s+ latency, read [bug #257][bug #257].
  517 +1. Support allow/deny publish/play for all or specified ip([CN][v2_CN_Security], [EN][v2_EN_Security]).
  518 +1. Support custom dvr path and http callback, read [bug #179][bug #179] and [bug #274][bug #274].
  519 +1. Support rtmp remux to http flv/mp3/aac/ts live stream, read [bug #293][bug #293]([CN][v2_CN_DeliveryHttpStream], [EN][v2_CN_DeliveryHttpStream]).
  520 +1. Support HLS(h.264+mp3) streaming, read [bug #301][bug #301].
  521 +1. Rewrite HLS(h.264+aac/mp3) streaming, read [bug #304][bug #304].
  522 +1. [dev] Realease [2.0release branch][branch2].
  523 +1. [experiment] Support Adobe HDS(f4m)([CN][v1_CN_DeliveryHDS], [EN][v1_EN_DeliveryHDS]) dynamic streaming.
  524 +1. [experiment] Support push MPEG-TS over UDP to SRS, read [bug #250][bug #250].
  525 +1. [experiment] Support push RTSP to SRS, read [bug #133][bug #133].
  526 +1. [experiment] Support push flv stream over HTTP POST to SRS, read [wiki]([CN][v2_CN_Streamer2], [EN][v2_EN_Streamer2]).
  527 +1. [experiment] Support [srs-dolphin][srs-dolphin], the multiple-process SRS.
  528 +1. [experiment] Support [remote console][console], read [srs-ngb][srs-ngb].
  529 +1. Support nginx-rtmp style exec, read [bug #367][bug #367].
  530 +1. Support NGINX-RTMP style EXEC, read [#367][bug #367].
  531 +1. Support NGINX-RTMP style dvr control module, read [#459][bug #459].
  532 +1. Support HTTP Security Raw Api, read [#459][bug #459], [#470][bug #470], [#319][bug #319].
  533 +1. Support Integration with Kafka/Spark Big-Data system, read [#467][bug #467].
  534 +1. [plan]Support Origin Cluster for Load Balance and Fault Tolarence, read [#464][bug #464], [RTMP 302][bug #92].
  535 +1. [plan]Support H.265, push RTMP with H.265, delivery in HLS, read [#465][bug #465].
  536 +1. [plan]Support MPEG-DASH, the future streaming protocol, read [#299][bug #299].
  537 +1. [plan]Support HLS edge server, read [#466][bug #466].
  538 +1. [plan]Support HLS realtime latency mode, read [#468][bug #468].
  539 +
  540 +### Releases
  541 +
  542 +* 2016-11-13, [Release v2.0-b3][r2.0b3], 2.0 beta3, 2.0.223, 86685 lines.
  543 +* 2016-11-09, [Release v2.0-b2][r2.0b2], 2.0 beta2, 2.0.221, 86691 lines.
  544 +* 2016-09-09, [Release v2.0-b1][r2.0b1], 2.0 beta1, 2.0.215, 89941 lines.
  545 +* 2016-08-06, [Release v2.0-b0][r2.0b0], 2.0 beta0, 2.0.210, 89704 lines.
  546 +* 2015-12-23, [Release v2.0-a3][r2.0a3], 2.0 alpha3, 2.0.205, 89544 lines.
  547 +* 2015-10-08, [Release v2.0-a2][r2.0a2], 2.0 alpha2, 2.0.195, 89358 lines.
  548 +* 2015-09-14, [Release v2.0-a1][r2.0a1], 2.0 alpha1, 2.0.189, 89269 lines.
  549 +* 2015-08-23, [Release v2.0-a0][r2.0a0], 2.0 alpha0, 2.0.185, 89022 lines.
  550 +* 2015-05-23, [Release v1.0-r4][r1.0r4], bug fixed, 1.0.32, 59509 lines.
  551 +* 2015-03-19, [Release v1.0-r3][r1.0r3], bug fixed, 1.0.30, 59511 lines.
  552 +* 2015-02-12, [Release v1.0-r2][r1.0r2], bug fixed, 1.0.27, 59507 lines.
  553 +* 2015-01-15, [Release v1.0-r1][r1.0r1], bug fixed, 1.0.21, 59472 lines.
  554 +* 2014-12-05, [Release v1.0-r0][r1.0r0], all bug fixed, 1.0.10, 59391 lines.
  555 +* 2014-10-09, [Release v0.9.8][r1.0b0], all bug fixed, 1.0.0, 59316 lines.
  556 +* 2014-08-03, [Release v0.9.7][r1.0a7], config utest, all bug fixed. 57432 lines.
  557 +* 2014-07-13, [Release v0.9.6][r1.0a6], core/kernel/rtmp utest, refine bandwidth(as/js/srslibrtmp library). 50029 lines.
  558 +* 2014-06-27, [Release v0.9.5][r1.0a5], refine perf 3k+ clients, edge token traverse, [srs monitor](http://ossrs.net:1977), 30days online. 41573 lines.
  559 +* 2014-05-28, [Release v0.9.4][r1.0a4], support heartbeat, tracable log, fix mem leak and bugs. 39200 lines.
  560 +* 2014-05-18, [Release v0.9.3][r1.0a3], support mips, fms origin, json(http-api). 37594 lines.
  561 +* 2014-04-28, [Release v0.9.2][r1.0a2], support [dvr][v1_CN_DVR], android, [edge][v1_CN_Edge]. 35255 lines.
  562 +* 2014-04-07, [Release v0.9.1][r1.0a0], support [arm][v1_CN_SrsLinuxArm], [init.d][v1_CN_LinuxService], http [server][v1_CN_HTTPServer]/[api][v1_CN_HTTPApi], [ingest][v1_CN_SampleIngest]. 30000 lines.
  563 +* 2013-12-25, [Release v0.9.0][r0.9], support bandwidth test, player/encoder/chat [demos][v1_CN_SampleDemo]. 20926 lines.
  564 +* 2013-12-08, [Release v0.8.0][r0.8], support [http hooks callback][v1_CN_HTTPCallback], update [SB][srs-bench]. 19186 lines.
  565 +* 2013-12-03, [Release v0.7.0][r0.7], support [live stream transcoding][v1_CN_FFMPEG]. 17605 lines.
  566 +* 2013-11-29, [Release v0.6.0][r0.6], support [forward][v1_CN_Forward] stream to origin/edge. 16094 lines.
  567 +* 2013-11-26, [Release v0.5.0][r0.5], support [HLS(m3u8)][v1_CN_DeliveryHLS], fragment and window. 14449 lines.
  568 +* 2013-11-10, [Release v0.4.0][r0.4], support [reload][v1_CN_Reload] config, pause, longtime publish/play. 12500 lines.
  569 +* 2013-11-04, [Release v0.3.0][r0.3], support [vhost][v1_CN_RtmpUrlVhost], refer, gop cache, listen multiple ports. 11773 lines.
  570 +* 2013-10-25, [Release v0.2.0][r0.2], support [rtmp][v1_CN_RTMPHandshake] flash publish, h264, time jitter correct. 10125 lines.
  571 +* 2013-10-23, [Release v0.1.0][r0.1], support [rtmp FMLE/FFMPEG publish][v1_CN_DeliveryRTMP], vp6. 8287 lines.
  572 +* 2013-10-17, Created.
  573 +
  574 +### Compare
  575 +
  576 +Compare SRS with other media server.
  577 +
  578 +#### Stream Delivery
  579 +
  580 +| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
  581 +| ----------- | ------- | ----- | --------- | -------- | ------ |
  582 +| RTMP | Stable | Stable | Stable | Stable | Stable |
  583 +| HLS | Stable | Stable | X | Stable | Stable |
  584 +| HDS | Experiment| X | X | Stable | Stable |
  585 +| HTTP FLV | Stable | X | X | X | X |
  586 +| HLS(aonly) | Stable | X | X | Stable | Stable |
  587 +| HTTP Server | Stable | Stable | X | X | Stable |
  588 +
  589 +#### Cluster
  590 +
  591 +| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
  592 +| ----------- | ------- | ----- | --------- | -------- | ------ |
  593 +| RTMP Edge | Stable | X | X | Stable | X |
  594 +| RTMP Backup | Stable | X | X | X | X |
  595 +| VHOST | Stable | X | X | Stable | Stable |
  596 +| Reload | Stable | X | X | X | X |
  597 +| Forward | Stable | X | X | X | X |
  598 +| ATC | Stable | X | X | X | X |
  599 +
  600 +#### Stream Service
  601 +
  602 +| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
  603 +| ----------- | ------- | ----- | --------- | -------- | ------ |
  604 +| DVR | Stable | Stable | X | X | Stable |
  605 +| DVR API | Stable | Stable | X | X | X |
  606 +| EXEC | Stable | Stable | X | X | X |
  607 +| Transcode | Stable | X | X | X | Stable |
  608 +| HTTP API | Stable | Stable | X | X | Stable |
  609 +| HTTP RAW API | Stable | X | X | X | X |
  610 +| HTTP hooks | Stable | X | X | X | X |
  611 +| GopCache | Stable | X | X | Stable | X |
  612 +| Security | Stable | Stable | X | X | Stable |
  613 +| Token Traverse| Stable | X | X | Stable | X |
  614 +
  615 +#### Efficiency
  616 +
  617 +| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
  618 +| ----------- | ------- | ----- | --------- | -------- | ------ |
  619 +| Concurrency | 7.5k | 3k | 2k | 2k | 3k |
  620 +|MultipleProcess| Experiment| Stable | X | X | X |
  621 +| RTMP Latency| 0.1s | 3s | 3s | 3s | 3s |
  622 +| HLS Latency | 10s | 30s | X | 30s | 30s |
  623 +
  624 +#### Stream Caster
  625 +
  626 +| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
  627 +| ----------- | ------- | ----- | --------- | -------- | ------ |
  628 +| Ingest | Stable | X | X | X | X |
  629 +| Push MPEGTS | Experiment| X | X | X | Stable |
  630 +| Push RTSP | Experiment| X | Stable | X | Stable |
  631 +| Push HTTP FLV | Experiment| X | X | X | X |
  632 +
  633 +#### Debug System
  634 +
  635 +| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
  636 +| ----------- | ------- | ----- | --------- | -------- | ------ |
  637 +| BW check | Stable | X | X | X | X |
  638 +| Tracable Log | Stable | X | X | X | X |
  639 +
  640 +#### Docs
  641 +
  642 +| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
  643 +| ----------- | ------- | ----- | --------- | -------- | ------ |
  644 +| Demos | Stable | X | X | X | X |
  645 +| WIKI(EN+CN) | Stable | EN only | X | X | Stable |
  646 +
  647 +#### Others
  648 +
  649 +| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
  650 +| ----------- | ------- | ----- | --------- | -------- | ------ |
  651 +| ARM/MIPS | Stable | Stable | X | X | X |
  652 +| Client Library| Stable | X | X | X | X |
  653 +
  654 +Remark:
  655 +
  656 +1. Concurrency: The concurrency of single process.
  657 +1. MultipleProcess: SRS is single process, while [srs-dolphin][srs-dolphin] is a MultipleProcess SRS.
  658 +1. HLS aonly: The HLS audio only streaming delivery.
  659 +1. BW check: The bandwidth check.
  660 +1. Security: To allow or deny stream publish or play.
  661 +1. Reload: Nginx supports reload, but not nginx-rtmp.
  662 +
722 ### Performance 663 ### Performance
723 664
724 Performance benchmark history, on virtual box. 665 Performance benchmark history, on virtual box.
@@ -907,7 +848,60 @@ Remark: @@ -907,7 +848,60 @@ Remark:
907 1. Streamer: SRS listen to remux some protocol to rtmp to SRS. Read [Streamer][v2_CN_Streamer]. 848 1. Streamer: SRS listen to remux some protocol to rtmp to SRS. Read [Streamer][v2_CN_Streamer].
908 1. EXEC: SRS exec external application when got event, read [ng-exec][v3_CN_NgExec]. 849 1. EXEC: SRS exec external application when got event, read [ng-exec][v3_CN_NgExec].
909 850
910 -## Donation 851 +### AUTHORS
  852 +
  853 +There are two types of people that have contributed to the SRS project:
  854 +* AUTHORS: Contribute important features. Names of all
  855 +PRIMARY response in NetConnection.connect and metadata.
  856 +* CONTRIBUTORS: Submit patches, report bugs, add translations, help answer
  857 +newbie questions, and generally make SRS that much better.
  858 +
  859 +About all PRIMARY, AUTHORS and CONTRIBUTORS, read [AUTHORS.txt][authors].
  860 +
  861 +A big THANK YOU goes to:
  862 +* All friends of SRS for [big supports][bigthanks].
  863 +* Genes amd Mabbott for creating [st][st]([state-threads][st2]).
  864 +* Michael Talyanksy for introducing us to use st.
  865 +* Roman Arutyunyan for creating [nginx-rtmp][nginx-rtmp] for SRS to refer to.
  866 +* Joyent for creating [http-parser][http-parser] for http-api for SRS.
  867 +* Igor Sysoev for creating [nginx][nginx] for SRS to refer to.
  868 +* [FFMPEG][FFMPEG] and [libx264][libx264] group for SRS to use to transcode.
  869 +* Guido van Rossum for creating Python for api-server for SRS.
  870 +
  871 +### Mirrors
  872 +
  873 +Github: [https://github.com/ossrs/srs][srs], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git])
  874 +
  875 +```
  876 +git clone https://github.com/ossrs/srs.git
  877 +```
  878 +
  879 +CSDN: [https://code.csdn.net/winlinvip/srs-csdn][csdn], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git])
  880 +
  881 +```
  882 +git clone https://code.csdn.net/winlinvip/srs-csdn.git
  883 +```
  884 +
  885 +OSChina: [http://git.oschina.net/winlinvip/srs.oschina][oschina], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git])
  886 +
  887 +```
  888 +git clone https://git.oschina.net/winlinvip/srs.oschina.git
  889 +```
  890 +
  891 +Gitlab: [https://gitlab.com/winlinvip/srs-gitlab][gitlab], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git])
  892 +
  893 +```
  894 +git clone https://gitlab.com/winlinvip/srs-gitlab.git
  895 +```
  896 +
  897 +### System Requirements
  898 +
  899 +Supported operating systems and hardware:
  900 +* All Linux , both 32 and 64 bits
  901 +* Apple OSX(Darwin), both 32 and 64bits.
  902 +* All hardware with x86/x86_64/arm/mips cpu.
  903 +
  904 +### Donation
911 905
912 [![Donation](https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png)][donation1] 906 [![Donation](https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png)][donation1]
913 [![Paypal](https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png)][donation2] 907 [![Paypal](https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png)][donation2]