胡斌

Merge branch '2.0release' into 2.0+

@@ -2,13 +2,10 @@ @@ -2,13 +2,10 @@
2 2
3 [![CircleCI](https://circleci.com/gh/ossrs/srs/tree/2.0release.svg?style=svg)](https://circleci.com/gh/ossrs/srs/tree/2.0release) 3 [![CircleCI](https://circleci.com/gh/ossrs/srs/tree/2.0release.svg?style=svg)](https://circleci.com/gh/ossrs/srs/tree/2.0release)
4 [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/ossrs/srs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) 4 [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/ossrs/srs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
  5 +[![Wechat](https://cloud.githubusercontent.com/assets/2777660/22814959/c51cbe72-ef92-11e6-81cc-32b657b285d5.png)](https://github.com/ossrs/srs/wiki/v1_CN_Contact#wechat)
5 6
6 SRS/2.0, [ZhouGuowen][release2] 7 SRS/2.0, [ZhouGuowen][release2]
7 8
8 -[![Donation](https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png)](http://www.ossrs.net/srs.release/donation/index.html)  
9 -[![Paypal](https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png)](http://www.ossrs.net/srs.release/donation/paypal.html)  
10 -[![LinkedIn](http://s.c.lnkd.licdn.com/scds/common/u/img/webpromo/btn_liprofile_blue_80x15.png)](http://cn.linkedin.com/in/winlinvip)  
11 -  
12 SRS定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码。<br/> 9 SRS定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码。<br/>
13 SRS is industrial-strength live streaming cluster, for the best conceptual integrity and the simplest implementation. 10 SRS is industrial-strength live streaming cluster, for the best conceptual integrity and the simplest implementation.
14 11
@@ -150,14 +147,6 @@ Please select your language: @@ -150,14 +147,6 @@ Please select your language:
150 * [SRS 2.0 English][v2_EN_Home] 147 * [SRS 2.0 English][v2_EN_Home]
151 * [SRS 2.0 Chinese][v2_CN_Home] 148 * [SRS 2.0 Chinese][v2_CN_Home]
152 149
153 -## Donation  
154 -  
155 -Donation:<br/>  
156 -[http://www.ossrs.net/srs.release/donation/index.html][donation1]  
157 -  
158 -Donations:<br/>  
159 -[https://github.com/ossrs/srs/blob/develop/DONATIONS.txt][donations]  
160 -  
161 ## System Requirements 150 ## System Requirements
162 Supported operating systems and hardware: 151 Supported operating systems and hardware:
163 * All Linux , both 32 and 64 bits 152 * All Linux , both 32 and 64 bits
@@ -170,32 +159,32 @@ Supported operating systems and hardware: @@ -170,32 +159,32 @@ Supported operating systems and hardware:
170 1. High-performance([CN][v1_CN_Performance], [EN][v1_EN_Performance]): single-thread, async socket, event/st-thread driven. 159 1. High-performance([CN][v1_CN_Performance], [EN][v1_EN_Performance]): single-thread, async socket, event/st-thread driven.
171 1. High-concurrency([CN][v1_CN_Performance], [EN][v1_EN_Performance]), 6000+ connections(500kbps), 900Mbps, CPU 90.2%, 41MB 160 1. High-concurrency([CN][v1_CN_Performance], [EN][v1_EN_Performance]), 6000+ connections(500kbps), 900Mbps, CPU 90.2%, 41MB
172 1. Support RTMP Origin Server([CN][v1_CN_DeliveryRTMP],[EN][v1_EN_DeliveryRTMP]) 161 1. Support RTMP Origin Server([CN][v1_CN_DeliveryRTMP],[EN][v1_EN_DeliveryRTMP])
173 -1. Support RTMP Edge Server([CN][v1_CN_Edge], [EN][v1_EN_Edge]) for CDN, push/pull stream from any RTMP server 162 +1. Support RTMP Edge Server([CN][v2_CN_Edge], [EN][v2_EN_Edge]) for CDN, push/pull stream from any RTMP server
174 1. Support single process; no multiple processes. 163 1. Support single process; no multiple processes.
175 1. Support Vhost([CN][v1_CN_RtmpUrlVhost], [EN][v1_EN_RtmpUrlVhost]), support \_\_defaultVhost\_\_. 164 1. Support Vhost([CN][v1_CN_RtmpUrlVhost], [EN][v1_EN_RtmpUrlVhost]), support \_\_defaultVhost\_\_.
176 1. Support RTMP([CN][v1_CN_DeliveryRTMP], [EN][v1_EN_DeliveryRTMP]) live streaming; no vod streaming. 165 1. Support RTMP([CN][v1_CN_DeliveryRTMP], [EN][v1_EN_DeliveryRTMP]) live streaming; no vod streaming.
177 -1. Support Apple HLS(m3u8)([CN][v1_CN_DeliveryHLS], [EN][v1_EN_DeliveryHLS]) live streaming.  
178 -1. Support HLS audio-only([CN][v1_CN_DeliveryHLS2], [EN][v1_EN_DeliveryHLS2]) live streaming. 166 +1. Support Apple HLS(m3u8)([CN][v2_CN_DeliveryHLS], [EN][v2_EN_DeliveryHLS]) live streaming.
  167 +1. Support HLS audio-only([CN][v2_CN_DeliveryHLS2], [EN][v2_EN_DeliveryHLS2]) live streaming.
179 1. Support Reload([CN][v1_CN_Reload], [EN][v1_EN_Reload]) config to enable changes. 168 1. Support Reload([CN][v1_CN_Reload], [EN][v1_EN_Reload]) config to enable changes.
180 -1. Support cache last gop([CN][v1_CN_LowLatency2], [EN][v1_EN_LowLatency2]) for flash player to fast startup. 169 +1. Support cache last gop([CN][v2_CN_LowLatency2], [EN][v2_EN_LowLatency2]) for flash player to fast startup.
181 1. Support listen at multiple ports. 170 1. Support listen at multiple ports.
182 1. Support long time(>4.6hours) publish/play. 171 1. Support long time(>4.6hours) publish/play.
183 1. Support Forward([CN][v1_CN_Forward], [EN][v1_EN_Forward]) in master-slave mode. 172 1. Support Forward([CN][v1_CN_Forward], [EN][v1_EN_Forward]) in master-slave mode.
184 -1. Support live stream Transcoding([CN][v1_CN_FFMPEG], [EN][v1_EN_FFMPEG]) by ffmpeg.  
185 -1. Support ffmpeg([CN][v1_CN_FFMPEG], [EN][v1_EN_FFMPEG]) filters(logo/overlay/crop), x264 params, copy/vn/an.  
186 -1. Support audio transcode([CN][v1_CN_FFMPEG], [EN][v1_EN_FFMPEG]) only, speex/mp3 to aac  
187 -1. Support http callback api hooks([CN][v1_CN_HTTPCallback], [EN][v1_EN_HTTPCallback])(for authentication and injection). 173 +1. Support live stream Transcoding([CN][v2_CN_FFMPEG], [EN][v2_EN_FFMPEG]) by ffmpeg.
  174 +1. Support ffmpeg([CN][v2_CN_FFMPEG], [EN][v2_EN_FFMPEG]) filters(logo/overlay/crop), x264 params, copy/vn/an.
  175 +1. Support audio transcode([CN][v2_CN_FFMPEG], [EN][v2_EN_FFMPEG]) only, speex/mp3 to aac
  176 +1. Support http callback api hooks([CN][v2_CN_HTTPCallback], [EN][v2_EN_HTTPCallback])(for authentication and injection).
188 1. Support bandwidth test([CN][v1_CN_BandwidthTestTool], [EN][v1_EN_BandwidthTestTool]) api and flash client. 177 1. Support bandwidth test([CN][v1_CN_BandwidthTestTool], [EN][v1_EN_BandwidthTestTool]) api and flash client.
189 1. Player, publisher(encoder), and demo pages(jquery+bootstrap)([CN][v1_CN_SampleDemo],[EN][v1_EN_SampleDemo]). 178 1. Player, publisher(encoder), and demo pages(jquery+bootstrap)([CN][v1_CN_SampleDemo],[EN][v1_EN_SampleDemo]).
190 1. Demo([CN][v1_CN_SampleDemo], [EN][v1_EN_SampleDemo]) video meeting or chat(SRS+cherrypy+jquery+bootstrap). 179 1. Demo([CN][v1_CN_SampleDemo], [EN][v1_EN_SampleDemo]) video meeting or chat(SRS+cherrypy+jquery+bootstrap).
191 -1. Full documents in wiki([CN][v1_CN_Home], [EN][v1_EN_Home]), both Chinese and English. 180 +1. Full documents in wiki([CN][v2_CN_Home], [EN][v2_EN_Home]), both Chinese and English.
192 1. Support RTMP(play-publish) library: srs-librtmp([CN][v2_CN_SrsLibrtmp], [EN][v2_EN_SrsLibrtmp]) 181 1. Support RTMP(play-publish) library: srs-librtmp([CN][v2_CN_SrsLibrtmp], [EN][v2_EN_SrsLibrtmp])
193 1. Support ARM cpu arch([CN][v1_CN_SrsLinuxArm], [EN][v1_EN_SrsLinuxArm]) with rtmp/ssl/hls/librtmp. 182 1. Support ARM cpu arch([CN][v1_CN_SrsLinuxArm], [EN][v1_EN_SrsLinuxArm]) with rtmp/ssl/hls/librtmp.
194 1. Support init.d([CN][v1_CN_LinuxService], [EN][v1_EN_LinuxService]) and packge script, log to file. 183 1. Support init.d([CN][v1_CN_LinuxService], [EN][v1_EN_LinuxService]) and packge script, log to file.
195 1. Support RTMP ATC([CN][v1_CN_RTMP-ATC], [EN][v1_EN_RTMP-ATC]) for HLS/HDS to support backup(failover) 184 1. Support RTMP ATC([CN][v1_CN_RTMP-ATC], [EN][v1_EN_RTMP-ATC]) for HLS/HDS to support backup(failover)
196 -1. Support HTTP RESTful management api([CN][v1_CN_HTTPApi], [EN][v1_EN_HTTPApi]). 185 +1. Support HTTP RESTful management api([CN][v2_CN_HTTPApi], [EN][v2_EN_HTTPApi]).
197 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). 186 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).
198 -1. Support DVR([CN][v1_CN_DVR], [EN][v1_EN_DVR]), record live to flv file for vod. 187 +1. Support DVR([CN][v2_CN_DVR], [EN][v2_EN_DVR]), record live to flv file for vod.
199 1. Support tracable log, session based log([CN][v1_CN_SrsLog], [EN][v1_EN_SrsLog]). 188 1. Support tracable log, session based log([CN][v1_CN_SrsLog], [EN][v1_EN_SrsLog]).
200 1. Support DRM token traverse([CN][v1_CN_DRM2], [EN][v1_EN_DRM2]) for fms origin authenticate. 189 1. Support DRM token traverse([CN][v1_CN_DRM2], [EN][v1_EN_DRM2]) for fms origin authenticate.
201 1. Support system full utest on gtest. 190 1. Support system full utest on gtest.
@@ -204,7 +193,7 @@ Supported operating systems and hardware: @@ -204,7 +193,7 @@ Supported operating systems and hardware:
204 1. Stable [1.0release branch][branch1]. 193 1. Stable [1.0release branch][branch1].
205 1. Support publish h264 raw stream([CN][v2_CN_SrsLibrtmp2], [EN][v2_EN_SrsLibrtmp2]) by srs-librtmp. 194 1. Support publish h264 raw stream([CN][v2_CN_SrsLibrtmp2], [EN][v2_EN_SrsLibrtmp2]) by srs-librtmp.
206 1. Support [6k+ clients][bug #194], 3Gbps per process. 195 1. Support [6k+ clients][bug #194], 3Gbps per process.
207 -1. Suppport [English wiki][v1_EN_Home]. 196 +1. Suppport [English wiki][v2_EN_Home].
208 1. Research and simplify st, [bug #182][bug #182]. 197 1. Research and simplify st, [bug #182][bug #182].
209 1. Support compile [srs-librtmp on windows][srs-librtmp], [bug #213][bug #213]. 198 1. Support compile [srs-librtmp on windows][srs-librtmp], [bug #213][bug #213].
210 1. Support [10k+ clients][bug #251], 4Gbps per process. 199 1. Support [10k+ clients][bug #251], 4Gbps per process.
@@ -216,7 +205,7 @@ Supported operating systems and hardware: @@ -216,7 +205,7 @@ Supported operating systems and hardware:
216 1. Support HLS(h.264+mp3) streaming, read [bug #301][bug #301]. 205 1. Support HLS(h.264+mp3) streaming, read [bug #301][bug #301].
217 1. Rewrite HLS(h.264+aac/mp3) streaming, read [bug #304][bug #304]. 206 1. Rewrite HLS(h.264+aac/mp3) streaming, read [bug #304][bug #304].
218 1. [dev] Realease [2.0release branch][branch2]. 207 1. [dev] Realease [2.0release branch][branch2].
219 -1. [experiment] Support Adobe HDS(f4m)([CN][v1_CN_DeliveryHDS], [EN][v1_EN_DeliveryHDS]) dynamic streaming. 208 +1. [experiment] Support Adobe HDS(f4m)([CN][v2_CN_DeliveryHDS], [EN][v2_EN_DeliveryHDS]) dynamic streaming.
220 1. [experiment] Support push MPEG-TS over UDP to SRS, read [bug #250][bug #250]. 209 1. [experiment] Support push MPEG-TS over UDP to SRS, read [bug #250][bug #250].
221 1. [experiment] Support push RTSP to SRS, read [bug #133][bug #133]. 210 1. [experiment] Support push RTSP to SRS, read [bug #133][bug #133].
222 1. [experiment] Support push flv stream over HTTP POST to SRS, read [wiki]([CN][v2_CN_Streamer2], [EN][v2_EN_Streamer2]). 211 1. [experiment] Support push flv stream over HTTP POST to SRS, read [wiki]([CN][v2_CN_Streamer2], [EN][v2_EN_Streamer2]).
@@ -331,13 +320,13 @@ Remark: @@ -331,13 +320,13 @@ Remark:
331 * 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. 320 * 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.
332 * 2014-05-28, [Release v0.9.4][r1.0a4], support heartbeat, tracable log, fix mem leak and bugs. 39200 lines. 321 * 2014-05-28, [Release v0.9.4][r1.0a4], support heartbeat, tracable log, fix mem leak and bugs. 39200 lines.
333 * 2014-05-18, [Release v0.9.3][r1.0a3], support mips, fms origin, json(http-api). 37594 lines. 322 * 2014-05-18, [Release v0.9.3][r1.0a3], support mips, fms origin, json(http-api). 37594 lines.
334 -* 2014-04-28, [Release v0.9.2][r1.0a2], support [dvr][v1_CN_DVR], android, [edge][v1_CN_Edge]. 35255 lines.  
335 -* 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. 323 +* 2014-04-28, [Release v0.9.2][r1.0a2], support [dvr][v2_CN_DVR], android, [edge][v2_CN_Edge]. 35255 lines.
  324 +* 2014-04-07, [Release v0.9.1][r1.0a0], support [arm][v1_CN_SrsLinuxArm], [init.d][v1_CN_LinuxService], http [server][v2_CN_HTTPServer]/[api][v2_CN_HTTPApi], [ingest][v1_CN_SampleIngest]. 30000 lines.
336 * 2013-12-25, [Release v0.9.0][r0.9], support bandwidth test, player/encoder/chat [demos][v1_CN_SampleDemo]. 20926 lines. 325 * 2013-12-25, [Release v0.9.0][r0.9], support bandwidth test, player/encoder/chat [demos][v1_CN_SampleDemo]. 20926 lines.
337 -* 2013-12-08, [Release v0.8.0][r0.8], support [http hooks callback][v1_CN_HTTPCallback], update [SB][srs-bench]. 19186 lines.  
338 -* 2013-12-03, [Release v0.7.0][r0.7], support [live stream transcoding][v1_CN_FFMPEG]. 17605 lines. 326 +* 2013-12-08, [Release v0.8.0][r0.8], support [http hooks callback][v2_CN_HTTPCallback], update [SB][srs-bench]. 19186 lines.
  327 +* 2013-12-03, [Release v0.7.0][r0.7], support [live stream transcoding][v2_CN_FFMPEG]. 17605 lines.
339 * 2013-11-29, [Release v0.6.0][r0.6], support [forward][v1_CN_Forward] stream to origin/edge. 16094 lines. 328 * 2013-11-29, [Release v0.6.0][r0.6], support [forward][v1_CN_Forward] stream to origin/edge. 16094 lines.
340 -* 2013-11-26, [Release v0.5.0][r0.5], support [HLS(m3u8)][v1_CN_DeliveryHLS], fragment and window. 14449 lines. 329 +* 2013-11-26, [Release v0.5.0][r0.5], support [HLS(m3u8)][v2_CN_DeliveryHLS], fragment and window. 14449 lines.
341 * 2013-11-10, [Release v0.4.0][r0.4], support [reload][v1_CN_Reload] config, pause, longtime publish/play. 12500 lines. 330 * 2013-11-10, [Release v0.4.0][r0.4], support [reload][v1_CN_Reload] config, pause, longtime publish/play. 12500 lines.
342 * 2013-11-04, [Release v0.3.0][r0.3], support [vhost][v1_CN_RtmpUrlVhost], refer, gop cache, listen multiple ports. 11773 lines. 331 * 2013-11-04, [Release v0.3.0][r0.3], support [vhost][v1_CN_RtmpUrlVhost], refer, gop cache, listen multiple ports. 11773 lines.
343 * 2013-10-25, [Release v0.2.0][r0.2], support [rtmp][v1_CN_RTMPHandshake] flash publish, h264, time jitter correct. 10125 lines. 332 * 2013-10-25, [Release v0.2.0][r0.2], support [rtmp][v1_CN_RTMPHandshake] flash publish, h264, time jitter correct. 10125 lines.
@@ -346,6 +335,8 @@ Remark: @@ -346,6 +335,8 @@ Remark:
346 335
347 ## History 336 ## History
348 337
  338 +* v2.0, 2017-02-25, for [#730][bug #730], remove the test code. 2.0.234
  339 +* v2.0, 2017-02-09, fix [#503][bug #503] disable utilities when reload a source. 2.0.233
349 * v2.0, 2017-01-22, for [#752][bug #752] release the io then free it for kbps. 2.0.232 340 * v2.0, 2017-01-22, for [#752][bug #752] release the io then free it for kbps. 2.0.232
350 * v2.0, 2017-01-18, fix [#750][bug #750] use specific error code for dns resolve. 2.0.231 341 * v2.0, 2017-01-18, fix [#750][bug #750] use specific error code for dns resolve. 2.0.231
351 * <strong>v2.0, 2017-01-18, [2.0 beta4(2.0.230)][r2.0b4] released. 86334 lines.</strong> 342 * <strong>v2.0, 2017-01-18, [2.0 beta4(2.0.230)][r2.0b4] released. 86334 lines.</strong>
@@ -630,7 +621,7 @@ Remark: @@ -630,7 +621,7 @@ Remark:
630 * v1.0, 2014-04-10, support reload ingesters(add/remov/update). 0.9.57 621 * v1.0, 2014-04-10, support reload ingesters(add/remov/update). 0.9.57
631 * <strong>v1.0, 2014-04-07, [1.0 mainline(0.9.55)][r1.0a0] released. 30000 lines.</strong> 622 * <strong>v1.0, 2014-04-07, [1.0 mainline(0.9.55)][r1.0a0] released. 30000 lines.</strong>
632 * v1.0, 2014-04-07, support [ingest][v1_CN_SampleIngest] file/stream/device. 623 * v1.0, 2014-04-07, support [ingest][v1_CN_SampleIngest] file/stream/device.
633 -* v1.0, 2014-04-05, support [http api][v1_CN_HTTPApi] and [http server][v1_CN_HTTPServer]. 624 +* v1.0, 2014-04-05, support [http api][v2_CN_HTTPApi] and [http server][v2_CN_HTTPServer].
634 * v1.0, 2014-04-03, implements http framework and api/v1/version. 625 * v1.0, 2014-04-03, implements http framework and api/v1/version.
635 * v1.0, 2014-03-30, fix bug for st detecting epoll failed, force st to use epoll. 626 * v1.0, 2014-03-30, fix bug for st detecting epoll failed, force st to use epoll.
636 * v1.0, 2014-03-29, add wiki [Performance for RaspberryPi][v1_CN_RaspberryPi]. 627 * v1.0, 2014-03-29, add wiki [Performance for RaspberryPi][v1_CN_RaspberryPi].
@@ -648,16 +639,16 @@ Remark: @@ -648,16 +639,16 @@ Remark:
648 * v1.0, 2014-03-12, finish utest for amf0 codec. 639 * v1.0, 2014-03-12, finish utest for amf0 codec.
649 * v1.0, 2014-03-06, add gperftools for mem leak detect, mem/cpu profile. 640 * v1.0, 2014-03-06, add gperftools for mem leak detect, mem/cpu profile.
650 * v1.0, 2014-03-04, add gest framework for utest, build success. 641 * v1.0, 2014-03-04, add gest framework for utest, build success.
651 -* v1.0, 2014-03-02, add wiki [srs-librtmp][v1_CN_SrsLibrtmp], [SRS for arm][v1_CN_SrsLinuxArm], [product][v1_CN_Product] 642 +* v1.0, 2014-03-02, add wiki [srs-librtmp][v2_CN_SrsLibrtmp], [SRS for arm][v1_CN_SrsLinuxArm], [product][v1_CN_Product]
652 * v1.0, 2014-03-02, srs-librtmp, client publish/play library like librtmp. 643 * v1.0, 2014-03-02, srs-librtmp, client publish/play library like librtmp.
653 * v1.0, 2014-03-01, modularity, extract core/kernel/rtmp/app/main module. 644 * v1.0, 2014-03-01, modularity, extract core/kernel/rtmp/app/main module.
654 * v1.0, 2014-02-28, support arm build(SRS/ST), add ssl to 3rdparty package. 645 * v1.0, 2014-02-28, support arm build(SRS/ST), add ssl to 3rdparty package.
655 -* v1.0, 2014-02-28, add wiki [BuildArm][v1_CN_Build], [FFMPEG][v1_CN_FFMPEG], [Reload][v1_CN_Reload]  
656 -* v1.0, 2014-02-27, add wiki [LowLatency][v1_CN_LowLatency], [HTTPCallback][v1_CN_HTTPCallback], [ServerSideScript][v1_CN_ServerSideScript], [IDE][v1_CN_IDE]  
657 -* v1.0, 2014-01-19, add wiki [DeliveryHLS][v1_CN_DeliveryHLS] 646 +* v1.0, 2014-02-28, add wiki [BuildArm][v2_CN_Build], [FFMPEG][v2_CN_FFMPEG], [Reload][v1_CN_Reload]
  647 +* v1.0, 2014-02-27, add wiki [LowLatency][v2_CN_LowLatency], [HTTPCallback][v2_CN_HTTPCallback], [ServerSideScript][v1_CN_ServerSideScript], [IDE][v2_CN_IDE]
  648 +* v1.0, 2014-01-19, add wiki [DeliveryHLS][v2_CN_DeliveryHLS]
658 * v1.0, 2014-01-12, add wiki [HowToAskQuestion][v1_CN_HowToAskQuestion], [RtmpUrlVhost][v1_CN_RtmpUrlVhost] 649 * v1.0, 2014-01-12, add wiki [HowToAskQuestion][v1_CN_HowToAskQuestion], [RtmpUrlVhost][v1_CN_RtmpUrlVhost]
659 * v1.0, 2014-01-11, fix jw/flower player pause bug, which send closeStream actually. 650 * v1.0, 2014-01-11, fix jw/flower player pause bug, which send closeStream actually.
660 -* v1.0, 2014-01-05, add wiki [Build][v1_CN_Build], [Performance][v1_CN_Performance], [Forward][v1_CN_Forward] 651 +* v1.0, 2014-01-05, add wiki [Build][v2_CN_Build], [Performance][v1_CN_Performance], [Forward][v1_CN_Forward]
661 * v1.0, 2014-01-01, change listen(512), chunk-size(60000), to improve performance. 652 * v1.0, 2014-01-01, change listen(512), chunk-size(60000), to improve performance.
662 * v1.0, 2013-12-27, merge from wenjie, the bandwidth test feature. 653 * v1.0, 2013-12-27, merge from wenjie, the bandwidth test feature.
663 * <strong>v0.9, 2013-12-25, [v0.9][r0.9] released. 20926 lines.</strong> 654 * <strong>v0.9, 2013-12-25, [v0.9][r0.9] released. 20926 lines.</strong>
@@ -675,7 +666,7 @@ Remark: @@ -675,7 +666,7 @@ Remark:
675 * v0.9, 2013-12-14, refine the thread model for the retry threads. 666 * v0.9, 2013-12-14, refine the thread model for the retry threads.
676 * v0.9, 2013-12-10, auto install depends tools/libs on centos/ubuntu. 667 * v0.9, 2013-12-10, auto install depends tools/libs on centos/ubuntu.
677 * <strong>v0.8, 2013-12-08, [v0.8][r0.8] released. 19186 lines.</strong> 668 * <strong>v0.8, 2013-12-08, [v0.8][r0.8] released. 19186 lines.</strong>
678 -* v0.8, 2013-12-08, support [http hooks][v1_CN_HTTPCallback]: on_connect/close/publish/unpublish/play/stop. 669 +* v0.8, 2013-12-08, support [http hooks][v2_CN_HTTPCallback]: on_connect/close/publish/unpublish/play/stop.
679 * v0.8, 2013-12-08, support multiple http hooks for a event. 670 * v0.8, 2013-12-08, support multiple http hooks for a event.
680 * v0.8, 2013-12-07, support http callback hooks, on_connect. 671 * v0.8, 2013-12-07, support http callback hooks, on_connect.
681 * v0.8, 2013-12-07, support network based cli and json result, add CherryPy 3.2.4. 672 * v0.8, 2013-12-07, support network based cli and json result, add CherryPy 3.2.4.
@@ -976,8 +967,8 @@ Winlin @@ -976,8 +967,8 @@ Winlin
976 [v1_EN_SampleARM]: https://github.com/ossrs/srs/wiki/v1_EN_SampleARM 967 [v1_EN_SampleARM]: https://github.com/ossrs/srs/wiki/v1_EN_SampleARM
977 [v1_CN_SampleIngest]: https://github.com/ossrs/srs/wiki/v1_CN_SampleIngest 968 [v1_CN_SampleIngest]: https://github.com/ossrs/srs/wiki/v1_CN_SampleIngest
978 [v1_EN_SampleIngest]: https://github.com/ossrs/srs/wiki/v1_EN_SampleIngest 969 [v1_EN_SampleIngest]: https://github.com/ossrs/srs/wiki/v1_EN_SampleIngest
979 -[v1_CN_SampleHTTP]: https://github.com/ossrs/srs/wiki/v1_CN_SampleHTTP  
980 -[v1_EN_SampleHTTP]: https://github.com/ossrs/srs/wiki/v1_EN_SampleHTTP 970 +[v2_CN_SampleHTTP]: https://github.com/ossrs/srs/wiki/v2_CN_SampleHTTP
  971 +[v2_EN_SampleHTTP]: https://github.com/ossrs/srs/wiki/v2_EN_SampleHTTP
981 [v1_CN_SampleDemo]: https://github.com/ossrs/srs/wiki/v1_CN_SampleDemo 972 [v1_CN_SampleDemo]: https://github.com/ossrs/srs/wiki/v1_CN_SampleDemo
982 [v1_EN_SampleDemo]: https://github.com/ossrs/srs/wiki/v1_EN_SampleDemo 973 [v1_EN_SampleDemo]: https://github.com/ossrs/srs/wiki/v1_EN_SampleDemo
983 [v2_CN_SrsLibrtmp2]: https://github.com/ossrs/srs/wiki/v2_CN_SrsLibrtmp#publish-h264-raw-data 974 [v2_CN_SrsLibrtmp2]: https://github.com/ossrs/srs/wiki/v2_CN_SrsLibrtmp#publish-h264-raw-data
@@ -1000,28 +991,28 @@ Winlin @@ -1000,28 +991,28 @@ Winlin
1000 [v1_EN_Performance]: https://github.com/ossrs/srs/wiki/v1_EN_Performance 991 [v1_EN_Performance]: https://github.com/ossrs/srs/wiki/v1_EN_Performance
1001 [v1_CN_DeliveryRTMP]: https://github.com/ossrs/srs/wiki/v1_CN_DeliveryRTMP 992 [v1_CN_DeliveryRTMP]: https://github.com/ossrs/srs/wiki/v1_CN_DeliveryRTMP
1002 [v1_EN_DeliveryRTMP]: https://github.com/ossrs/srs/wiki/v1_EN_DeliveryRTMP 993 [v1_EN_DeliveryRTMP]: https://github.com/ossrs/srs/wiki/v1_EN_DeliveryRTMP
1003 -[v1_CN_Edge]: https://github.com/ossrs/srs/wiki/v1_CN_Edge  
1004 -[v1_EN_Edge]: https://github.com/ossrs/srs/wiki/v1_EN_Edge 994 +[v2_CN_Edge]: https://github.com/ossrs/srs/wiki/v2_CN_Edge
  995 +[v2_EN_Edge]: https://github.com/ossrs/srs/wiki/v2_EN_Edge
1005 [v1_CN_RtmpUrlVhost]: https://github.com/ossrs/srs/wiki/v1_CN_RtmpUrlVhost 996 [v1_CN_RtmpUrlVhost]: https://github.com/ossrs/srs/wiki/v1_CN_RtmpUrlVhost
1006 [v1_EN_RtmpUrlVhost]: https://github.com/ossrs/srs/wiki/v1_EN_RtmpUrlVhost 997 [v1_EN_RtmpUrlVhost]: https://github.com/ossrs/srs/wiki/v1_EN_RtmpUrlVhost
1007 [v1_CN_RTMPHandshake]: https://github.com/ossrs/srs/wiki/v1_CN_RTMPHandshake 998 [v1_CN_RTMPHandshake]: https://github.com/ossrs/srs/wiki/v1_CN_RTMPHandshake
1008 [v1_EN_RTMPHandshake]: https://github.com/ossrs/srs/wiki/v1_EN_RTMPHandshake 999 [v1_EN_RTMPHandshake]: https://github.com/ossrs/srs/wiki/v1_EN_RTMPHandshake
1009 -[v1_CN_HTTPServer]: https://github.com/ossrs/srs/wiki/v1_CN_HTTPServer  
1010 -[v1_EN_HTTPServer]: https://github.com/ossrs/srs/wiki/v1_EN_HTTPServer  
1011 -[v1_CN_DeliveryHLS]: https://github.com/ossrs/srs/wiki/v1_CN_DeliveryHLS  
1012 -[v1_EN_DeliveryHLS]: https://github.com/ossrs/srs/wiki/v1_EN_DeliveryHLS  
1013 -[v1_CN_DeliveryHLS2]: https://github.com/ossrs/srs/wiki/v1_CN_DeliveryHLS#hlsaudioonly  
1014 -[v1_EN_DeliveryHLS2]: https://github.com/ossrs/srs/wiki/v1_EN_DeliveryHLS#hlsaudioonly 1000 +[v2_CN_HTTPServer]: https://github.com/ossrs/srs/wiki/v2_CN_HTTPServer
  1001 +[v2_EN_HTTPServer]: https://github.com/ossrs/srs/wiki/v2_EN_HTTPServer
  1002 +[v2_CN_DeliveryHLS]: https://github.com/ossrs/srs/wiki/v2_CN_DeliveryHLS
  1003 +[v2_EN_DeliveryHLS]: https://github.com/ossrs/srs/wiki/v2_EN_DeliveryHLS
  1004 +[v2_CN_DeliveryHLS2]: https://github.com/ossrs/srs/wiki/v2_CN_DeliveryHLS#hlsaudioonly
  1005 +[v2_EN_DeliveryHLS2]: https://github.com/ossrs/srs/wiki/v2_EN_DeliveryHLS#hlsaudioonly
1015 [v1_CN_Reload]: https://github.com/ossrs/srs/wiki/v1_CN_Reload 1006 [v1_CN_Reload]: https://github.com/ossrs/srs/wiki/v1_CN_Reload
1016 [v1_EN_Reload]: https://github.com/ossrs/srs/wiki/v1_EN_Reload 1007 [v1_EN_Reload]: https://github.com/ossrs/srs/wiki/v1_EN_Reload
1017 -[v1_CN_LowLatency2]: https://github.com/ossrs/srs/wiki/v1_CN_LowLatency#gop-cache  
1018 -[v1_EN_LowLatency2]: https://github.com/ossrs/srs/wiki/v1_EN_LowLatency#gop-cache 1008 +[v2_CN_LowLatency2]: https://github.com/ossrs/srs/wiki/v2_CN_LowLatency#gop-cache
  1009 +[v2_EN_LowLatency2]: https://github.com/ossrs/srs/wiki/v2_EN_LowLatency#gop-cache
1019 [v1_CN_Forward]: https://github.com/ossrs/srs/wiki/v1_CN_Forward 1010 [v1_CN_Forward]: https://github.com/ossrs/srs/wiki/v1_CN_Forward
1020 [v1_EN_Forward]: https://github.com/ossrs/srs/wiki/v1_EN_Forward 1011 [v1_EN_Forward]: https://github.com/ossrs/srs/wiki/v1_EN_Forward
1021 -[v1_CN_FFMPEG]: https://github.com/ossrs/srs/wiki/v1_CN_FFMPEG  
1022 -[v1_EN_FFMPEG]: https://github.com/ossrs/srs/wiki/v1_EN_FFMPEG  
1023 -[v1_CN_HTTPCallback]: https://github.com/ossrs/srs/wiki/v1_CN_HTTPCallback  
1024 -[v1_EN_HTTPCallback]: https://github.com/ossrs/srs/wiki/v1_EN_HTTPCallback 1012 +[v2_CN_FFMPEG]: https://github.com/ossrs/srs/wiki/v2_CN_FFMPEG
  1013 +[v2_EN_FFMPEG]: https://github.com/ossrs/srs/wiki/v2_EN_FFMPEG
  1014 +[v2_CN_HTTPCallback]: https://github.com/ossrs/srs/wiki/v2_CN_HTTPCallback
  1015 +[v2_EN_HTTPCallback]: https://github.com/ossrs/srs/wiki/v2_EN_HTTPCallback
1025 [v1_CN_BandwidthTestTool]: https://github.com/ossrs/srs/wiki/v1_CN_BandwidthTestTool 1016 [v1_CN_BandwidthTestTool]: https://github.com/ossrs/srs/wiki/v1_CN_BandwidthTestTool
1026 [v1_EN_BandwidthTestTool]: https://github.com/ossrs/srs/wiki/v1_EN_BandwidthTestTool 1017 [v1_EN_BandwidthTestTool]: https://github.com/ossrs/srs/wiki/v1_EN_BandwidthTestTool
1027 [v1_CN_SampleDemo]: https://github.com/ossrs/srs/wiki/v1_CN_SampleDemo 1018 [v1_CN_SampleDemo]: https://github.com/ossrs/srs/wiki/v1_CN_SampleDemo
@@ -1034,12 +1025,12 @@ Winlin @@ -1034,12 +1025,12 @@ Winlin
1034 [v1_EN_LinuxService]: https://github.com/ossrs/srs/wiki/v1_EN_LinuxService 1025 [v1_EN_LinuxService]: https://github.com/ossrs/srs/wiki/v1_EN_LinuxService
1035 [v1_CN_RTMP-ATC]: https://github.com/ossrs/srs/wiki/v1_CN_RTMP-ATC 1026 [v1_CN_RTMP-ATC]: https://github.com/ossrs/srs/wiki/v1_CN_RTMP-ATC
1036 [v1_EN_RTMP-ATC]: https://github.com/ossrs/srs/wiki/v1_EN_RTMP-ATC 1027 [v1_EN_RTMP-ATC]: https://github.com/ossrs/srs/wiki/v1_EN_RTMP-ATC
1037 -[v1_CN_HTTPApi]: https://github.com/ossrs/srs/wiki/v1_CN_HTTPApi  
1038 -[v1_EN_HTTPApi]: https://github.com/ossrs/srs/wiki/v1_EN_HTTPApi 1028 +[v2_CN_HTTPApi]: https://github.com/ossrs/srs/wiki/v2_CN_HTTPApi
  1029 +[v2_EN_HTTPApi]: https://github.com/ossrs/srs/wiki/v2_EN_HTTPApi
1039 [v1_CN_Ingest]: https://github.com/ossrs/srs/wiki/v1_CN_Ingest 1030 [v1_CN_Ingest]: https://github.com/ossrs/srs/wiki/v1_CN_Ingest
1040 [v1_EN_Ingest]: https://github.com/ossrs/srs/wiki/v1_EN_Ingest 1031 [v1_EN_Ingest]: https://github.com/ossrs/srs/wiki/v1_EN_Ingest
1041 -[v1_CN_DVR]: https://github.com/ossrs/srs/wiki/v1_CN_DVR  
1042 -[v1_EN_DVR]: https://github.com/ossrs/srs/wiki/v1_EN_DVR 1032 +[v2_CN_DVR]: https://github.com/ossrs/srs/wiki/v2_CN_DVR
  1033 +[v2_EN_DVR]: https://github.com/ossrs/srs/wiki/v2_EN_DVR
1043 [v1_CN_SrsLog]: https://github.com/ossrs/srs/wiki/v1_CN_SrsLog 1034 [v1_CN_SrsLog]: https://github.com/ossrs/srs/wiki/v1_CN_SrsLog
1044 [v1_EN_SrsLog]: https://github.com/ossrs/srs/wiki/v1_EN_SrsLog 1035 [v1_EN_SrsLog]: https://github.com/ossrs/srs/wiki/v1_EN_SrsLog
1045 [v1_CN_DRM2]: https://github.com/ossrs/srs/wiki/v1_CN_DRM#tokentraverse 1036 [v1_CN_DRM2]: https://github.com/ossrs/srs/wiki/v1_CN_DRM#tokentraverse
@@ -1056,8 +1047,8 @@ Winlin @@ -1056,8 +1047,8 @@ Winlin
1056 [v2_EN_Security]: https://github.com/ossrs/srs/wiki/v2_EN_Security 1047 [v2_EN_Security]: https://github.com/ossrs/srs/wiki/v2_EN_Security
1057 [v2_CN_DeliveryHttpStream]: https://github.com/ossrs/srs/wiki/v2_CN_DeliveryHttpStream 1048 [v2_CN_DeliveryHttpStream]: https://github.com/ossrs/srs/wiki/v2_CN_DeliveryHttpStream
1058 [v2_EN_DeliveryHttpStream]: https://github.com/ossrs/srs/wiki/v2_EN_DeliveryHttpStream 1049 [v2_EN_DeliveryHttpStream]: https://github.com/ossrs/srs/wiki/v2_EN_DeliveryHttpStream
1059 -[v1_CN_DeliveryHDS]: https://github.com/ossrs/srs/wiki/v1_CN_DeliveryHDS  
1060 -[v1_EN_DeliveryHDS]: https://github.com/ossrs/srs/wiki/v1_EN_DeliveryHDS 1050 +[v2_CN_DeliveryHDS]: https://github.com/ossrs/srs/wiki/v2_CN_DeliveryHDS
  1051 +[v2_EN_DeliveryHDS]: https://github.com/ossrs/srs/wiki/v2_EN_DeliveryHDS
1061 [v2_CN_Streamer2]: https://github.com/ossrs/srs/wiki/v2_CN_Streamer#push-http-flv-to-srs 1052 [v2_CN_Streamer2]: https://github.com/ossrs/srs/wiki/v2_CN_Streamer#push-http-flv-to-srs
1062 [v2_EN_Streamer2]: https://github.com/ossrs/srs/wiki/v2_EN_Streamer#push-http-flv-to-srs 1053 [v2_EN_Streamer2]: https://github.com/ossrs/srs/wiki/v2_EN_Streamer#push-http-flv-to-srs
1063 [v2_CN_SampleHttpFlv]: https://github.com/ossrs/srs/wiki/v2_CN_SampleHttpFlv 1054 [v2_CN_SampleHttpFlv]: https://github.com/ossrs/srs/wiki/v2_CN_SampleHttpFlv
@@ -1070,18 +1061,18 @@ Winlin @@ -1070,18 +1061,18 @@ Winlin
1070 [v1_CN_Performance#performancereport4k]: https://github.com/ossrs/srs/wiki/v1_CN_Performance#performancereport4k 1061 [v1_CN_Performance#performancereport4k]: https://github.com/ossrs/srs/wiki/v1_CN_Performance#performancereport4k
1071 [v1_CN_DRM#tokentraverse]: https://github.com/ossrs/srs/wiki/v1_CN_DRM#tokentraverse 1062 [v1_CN_DRM#tokentraverse]: https://github.com/ossrs/srs/wiki/v1_CN_DRM#tokentraverse
1072 [v1_CN_RaspberryPi]: https://github.com/ossrs/srs/wiki/v1_CN_RaspberryPi 1063 [v1_CN_RaspberryPi]: https://github.com/ossrs/srs/wiki/v1_CN_RaspberryPi
1073 -[v1_CN_SrsLibrtmp]: https://github.com/ossrs/srs/wiki/v1_CN_SrsLibrtmp  
1074 -[v1_CN_Build]: https://github.com/ossrs/srs/wiki/v1_CN_Build  
1075 -[v1_CN_LowLatency]: https://github.com/ossrs/srs/wiki/v1_CN_LowLatency 1064 +[v2_CN_SrsLibrtmp]: https://github.com/ossrs/srs/wiki/v2_CN_SrsLibrtmp
  1065 +[v2_CN_Build]: https://github.com/ossrs/srs/wiki/v2_CN_Build
  1066 +[v2_CN_LowLatency]: https://github.com/ossrs/srs/wiki/v2_CN_LowLatency
1076 [v1_CN_HowToAskQuestion]: https://github.com/ossrs/srs/wiki/v1_CN_HowToAskQuestion 1067 [v1_CN_HowToAskQuestion]: https://github.com/ossrs/srs/wiki/v1_CN_HowToAskQuestion
1077 -[v1_CN_Build]: https://github.com/ossrs/srs/wiki/v1_CN_Build 1068 +[v2_CN_Build]: https://github.com/ossrs/srs/wiki/v2_CN_Build
1078 [v1_CN_Performance]: https://github.com/ossrs/srs/wiki/v1_CN_Performance 1069 [v1_CN_Performance]: https://github.com/ossrs/srs/wiki/v1_CN_Performance
1079 [v1_CN_RaspberryPi]: https://github.com/ossrs/srs/wiki/v1_CN_RaspberryPi 1070 [v1_CN_RaspberryPi]: https://github.com/ossrs/srs/wiki/v1_CN_RaspberryPi
1080 [v2_CN_LowLatency#merged-read]: https://github.com/ossrs/srs/wiki/v2_CN_LowLatency#merged-read 1071 [v2_CN_LowLatency#merged-read]: https://github.com/ossrs/srs/wiki/v2_CN_LowLatency#merged-read
1081 [v1_CN_Product]: https://github.com/ossrs/srs/wiki/v1_CN_Product 1072 [v1_CN_Product]: https://github.com/ossrs/srs/wiki/v1_CN_Product
1082 [v1_CN_ServerSideScript]: https://github.com/ossrs/srs/wiki/v1_CN_ServerSideScript 1073 [v1_CN_ServerSideScript]: https://github.com/ossrs/srs/wiki/v1_CN_ServerSideScript
1083 [v2_EN_LowLatency#merged-write]: https://github.com/ossrs/srs/wiki/v2_EN_LowLatency#merged-write 1074 [v2_EN_LowLatency#merged-write]: https://github.com/ossrs/srs/wiki/v2_EN_LowLatency#merged-write
1084 -[v1_CN_IDE]: https://github.com/ossrs/srs/wiki/v1_CN_IDE 1075 +[v2_CN_IDE]: https://github.com/ossrs/srs/wiki/v2_CN_IDE
1085 [v2_CN_LowLatency#merged-write]: https://github.com/ossrs/srs/wiki/v2_CN_LowLatency#merged-write 1076 [v2_CN_LowLatency#merged-write]: https://github.com/ossrs/srs/wiki/v2_CN_LowLatency#merged-write
1086 1077
1087 [bug #213]: https://github.com/ossrs/srs/issues/213 1078 [bug #213]: https://github.com/ossrs/srs/issues/213
@@ -1285,6 +1276,7 @@ Winlin @@ -1285,6 +1276,7 @@ Winlin
1285 [bug #749]: https://github.com/ossrs/srs/issues/749 1276 [bug #749]: https://github.com/ossrs/srs/issues/749
1286 [bug #750]: https://github.com/ossrs/srs/issues/750 1277 [bug #750]: https://github.com/ossrs/srs/issues/750
1287 [bug #752]: https://github.com/ossrs/srs/issues/752 1278 [bug #752]: https://github.com/ossrs/srs/issues/752
  1279 +[bug #503]: https://github.com/ossrs/srs/issues/503
1288 [bug #xxxxxxxxxx]: https://github.com/ossrs/srs/issues/xxxxxxxxxx 1280 [bug #xxxxxxxxxx]: https://github.com/ossrs/srs/issues/xxxxxxxxxx
1289 1281
1290 [exo #828]: https://github.com/google/ExoPlayer/pull/828 1282 [exo #828]: https://github.com/google/ExoPlayer/pull/828
  1 +/*.conf
  2 +/doc/frozen*
  3 +/doc/kungfupanda*
  4 +/doc/time*
  5 +/html
  6 +/ide/srs_xcode/srs_xcode.xcodeproj/project.xcworkspace/xcshareddata/
  7 +/ide/srs_xcode/srs_xcode.xcodeproj/project.xcworkspace/xcuserdata/
  8 +/ide/srs_xcode/srs_xcode.xcodeproj/xcuserdata/
  9 +/research/aac/
  10 +/research/api-server/.idea/
  11 +/research/api-server/static-dir/mse
  12 +/research/bat/
  13 +/research/big/
  14 +/research/bitch/
  15 +/research/bott/
  16 +/research/cgo/
  17 +/research/dns/
  18 +/research/empty/
  19 +/research/golang/
  20 +/research/librtmp/*.mp4
  21 +/research/licenser/
  22 +/research/players/.idea/
  23 +/research/players/fls_player/
  24 +/research/players/mic/
  25 +/research/players/srs_player/.idea/
  26 +/research/proxy/
  27 +/research/redis-ocluster/
  28 +/research/rtmfp/
  29 +/research/snap/
  30 +/research/speex/
  31 +/test/
  32 +
@@ -3,6 +3,8 @@ @@ -3,6 +3,8 @@
3 3
4 listen 1935; 4 listen 1935;
5 max_connections 1000; 5 max_connections 1000;
  6 +daemon off;
  7 +srs_log_tank console;
6 vhost __defaultVhost__ { 8 vhost __defaultVhost__ {
7 } 9 }
8 10
@@ -5,6 +5,8 @@ @@ -5,6 +5,8 @@
5 5
6 listen 1935; 6 listen 1935;
7 max_connections 1000; 7 max_connections 1000;
  8 +daemon off;
  9 +srs_log_tank console;
8 vhost __defaultVhost__ { 10 vhost __defaultVhost__ {
9 dvr { 11 dvr {
10 enabled on; 12 enabled on;
@@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
4 4
5 listen 1935; 5 listen 1935;
6 max_connections 1000; 6 max_connections 1000;
  7 +daemon off;
  8 +srs_log_tank console;
7 vhost __defaultVhost__ { 9 vhost __defaultVhost__ {
8 dvr { 10 dvr {
9 enabled on; 11 enabled on;
@@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
4 4
5 listen 1935; 5 listen 1935;
6 max_connections 1000; 6 max_connections 1000;
  7 +daemon off;
  8 +srs_log_tank console;
7 vhost __defaultVhost__ { 9 vhost __defaultVhost__ {
8 dvr { 10 dvr {
9 enabled on; 11 enabled on;
@@ -5,7 +5,8 @@ @@ -5,7 +5,8 @@
5 listen 1935; 5 listen 1935;
6 max_connections 1000; 6 max_connections 1000;
7 pid objs/edge.pid; 7 pid objs/edge.pid;
8 -srs_log_file ./objs/edge.log; 8 +daemon off;
  9 +srs_log_tank console;
9 vhost __defaultVhost__ { 10 vhost __defaultVhost__ {
10 mode remote; 11 mode remote;
11 origin 127.0.0.1:19350; 12 origin 127.0.0.1:19350;
@@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
4 4
5 listen 1935 5 listen 1935
6 max_connections 1000; 6 max_connections 1000;
  7 +daemon off;
  8 +srs_log_tank console;
7 vhost __defaultVhost__ { 9 vhost __defaultVhost__ {
8 mode remote; 10 mode remote;
9 origin 127.0.0.1:19350; 11 origin 127.0.0.1:19350;
@@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
4 4
5 listen 1935; 5 listen 1935;
6 max_connections 1000; 6 max_connections 1000;
  7 +daemon off;
  8 +srs_log_tank console;
7 vhost __defaultVhost__ { 9 vhost __defaultVhost__ {
8 transcode { 10 transcode {
9 enabled on; 11 enabled on;
@@ -5,8 +5,8 @@ @@ -5,8 +5,8 @@
5 listen 1935; 5 listen 1935;
6 max_connections 1000; 6 max_connections 1000;
7 pid ./objs/srs.master.pid; 7 pid ./objs/srs.master.pid;
8 -srs_log_tank file;  
9 -srs_log_file ./objs/srs.master.log; 8 +daemon off;
  9 +srs_log_tank console;
10 vhost __defaultVhost__ { 10 vhost __defaultVhost__ {
11 forward 127.0.0.1:19350; 11 forward 127.0.0.1:19350;
12 } 12 }
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 listen 19350; 5 listen 19350;
6 max_connections 1000; 6 max_connections 1000;
7 pid ./objs/srs.slave.pid; 7 pid ./objs/srs.slave.pid;
8 -srs_log_tank file;  
9 -srs_log_file ./objs/srs.slave.log; 8 +daemon off;
  9 +srs_log_tank console;
10 vhost __defaultVhost__ { 10 vhost __defaultVhost__ {
11 } 11 }
@@ -4,10 +4,8 @@ @@ -4,10 +4,8 @@
4 4
5 listen 1935; 5 listen 1935;
6 max_connections 1000; 6 max_connections 1000;
7 -  
8 daemon off; 7 daemon off;
9 srs_log_tank console; 8 srs_log_tank console;
10 -srs_log_level trace;  
11 9
12 vhost __defaultVhost__ { 10 vhost __defaultVhost__ {
13 hds { 11 hds {
@@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
4 4
5 listen 1935; 5 listen 1935;
6 max_connections 1000; 6 max_connections 1000;
  7 +daemon off;
  8 +srs_log_tank console;
7 vhost __defaultVhost__ { 9 vhost __defaultVhost__ {
8 hls { 10 hls {
9 enabled on; 11 enabled on;
@@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
4 4
5 listen 1935; 5 listen 1935;
6 max_connections 1000; 6 max_connections 1000;
  7 +daemon off;
  8 +srs_log_tank console;
7 http_server { 9 http_server {
8 enabled on; 10 enabled on;
9 listen 8080; 11 listen 8080;
@@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
4 4
5 listen 1935; 5 listen 1935;
6 max_connections 1000; 6 max_connections 1000;
  7 +daemon off;
  8 +srs_log_tank console;
7 http_server { 9 http_server {
8 enabled on; 10 enabled on;
9 listen 8080; 11 listen 8080;
@@ -5,7 +5,8 @@ @@ -5,7 +5,8 @@
5 listen 19351; 5 listen 19351;
6 max_connections 1000; 6 max_connections 1000;
7 pid objs/srs.flv.19351.pid; 7 pid objs/srs.flv.19351.pid;
8 -srs_log_file objs/srs.flv.19351.log; 8 +daemon off;
  9 +srs_log_tank console;
9 http_server { 10 http_server {
10 enabled on; 11 enabled on;
11 listen 8081; 12 listen 8081;
@@ -5,7 +5,8 @@ @@ -5,7 +5,8 @@
5 listen 19352; 5 listen 19352;
6 max_connections 1000; 6 max_connections 1000;
7 pid objs/srs.flv.19352.pid; 7 pid objs/srs.flv.19352.pid;
8 -srs_log_file objs/srs.flv.19352.log; 8 +daemon off;
  9 +srs_log_tank console;
9 http_server { 10 http_server {
10 enabled on; 11 enabled on;
11 listen 8082; 12 listen 8082;
@@ -3,6 +3,8 @@ @@ -3,6 +3,8 @@
3 3
4 listen 1935 4 listen 1935
5 max_connections 1000; 5 max_connections 1000;
  6 +daemon off;
  7 +srs_log_tank console;
6 heartbeat { 8 heartbeat {
7 enabled on; 9 enabled on;
8 interval 9.3; 10 interval 9.3;
@@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
4 4
5 listen 1935; 5 listen 1935;
6 max_connections 1000; 6 max_connections 1000;
  7 +daemon off;
  8 +srs_log_tank console;
7 http_server { 9 http_server {
8 enabled on; 10 enabled on;
9 listen 8080; 11 listen 8080;
@@ -3,8 +3,8 @@ @@ -3,8 +3,8 @@
3 3
4 listen 1935; 4 listen 1935;
5 max_connections 1000; 5 max_connections 1000;
6 -srs_log_tank file;  
7 -srs_log_file ./objs/srs.log; 6 +daemon off;
  7 +srs_log_tank console;
8 vhost __defaultVhost__ { 8 vhost __defaultVhost__ {
9 http_hooks { 9 http_hooks {
10 enabled on; 10 enabled on;
@@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
4 4
5 listen 1935; 5 listen 1935;
6 max_connections 1000; 6 max_connections 1000;
  7 +daemon off;
  8 +srs_log_tank console;
7 http_server { 9 http_server {
8 enabled on; 10 enabled on;
9 listen 8080; 11 listen 8080;
@@ -3,6 +3,8 @@ @@ -3,6 +3,8 @@
3 3
4 listen 1935; 4 listen 1935;
5 max_connections 1000; 5 max_connections 1000;
  6 +daemon off;
  7 +srs_log_tank console;
6 http_server { 8 http_server {
7 enabled on; 9 enabled on;
8 listen 8080; 10 listen 8080;
@@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
4 4
5 listen 1935; 5 listen 1935;
6 max_connections 1000; 6 max_connections 1000;
  7 +daemon off;
  8 +srs_log_tank console;
7 http_server { 9 http_server {
8 enabled on; 10 enabled on;
9 listen 8080; 11 listen 8080;
@@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
4 4
5 listen 1935; 5 listen 1935;
6 max_connections 1000; 6 max_connections 1000;
  7 +daemon off;
  8 +srs_log_tank console;
7 vhost __defaultVhost__ { 9 vhost __defaultVhost__ {
8 ingest livestream { 10 ingest livestream {
9 enabled on; 11 enabled on;
@@ -4,7 +4,8 @@ @@ -4,7 +4,8 @@
4 4
5 listen 19350; 5 listen 19350;
6 max_connections 1000; 6 max_connections 1000;
7 -pid objs/origin.pid;  
8 -srs_log_file ./objs/origin.log; 7 +daemon off;
  8 +srs_log_tank console;
  9 +pid ./objs/origin.pid;
9 vhost __defaultVhost__ { 10 vhost __defaultVhost__ {
10 } 11 }
@@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
4 4
5 listen 1935; 5 listen 1935;
6 max_connections 1000; 6 max_connections 1000;
  7 +daemon off;
  8 +srs_log_tank console;
7 http_server { 9 http_server {
8 enabled on; 10 enabled on;
9 listen 8080; 11 listen 8080;
@@ -5,6 +5,8 @@ @@ -5,6 +5,8 @@
5 5
6 listen 1935; 6 listen 1935;
7 max_connections 1000; 7 max_connections 1000;
  8 +daemon off;
  9 +srs_log_tank console;
8 stream_caster { 10 stream_caster {
9 enabled on; 11 enabled on;
10 caster mpegts_over_udp; 12 caster mpegts_over_udp;
@@ -5,6 +5,8 @@ @@ -5,6 +5,8 @@
5 5
6 listen 1935; 6 listen 1935;
7 max_connections 1000; 7 max_connections 1000;
  8 +daemon off;
  9 +srs_log_tank console;
8 stream_caster { 10 stream_caster {
9 enabled on; 11 enabled on;
10 caster rtsp; 12 caster rtsp;
@@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
4 4
5 listen 1935; 5 listen 1935;
6 max_connections 1000; 6 max_connections 1000;
  7 +daemon off;
  8 +srs_log_tank console;
7 vhost __defaultVhost__ { 9 vhost __defaultVhost__ {
8 gop_cache off; 10 gop_cache off;
9 queue_length 10; 11 queue_length 10;
@@ -4,5 +4,7 @@ @@ -4,5 +4,7 @@
4 4
5 listen 1935; 5 listen 1935;
6 max_connections 1000; 6 max_connections 1000;
  7 +daemon off;
  8 +srs_log_tank console;
7 vhost __defaultVhost__ { 9 vhost __defaultVhost__ {
8 } 10 }
@@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
4 4
5 listen 1935; 5 listen 1935;
6 max_connections 1000; 6 max_connections 1000;
  7 +daemon off;
  8 +srs_log_tank console;
7 vhost __defaultVhost__ { 9 vhost __defaultVhost__ {
8 security { 10 security {
9 enabled on; 11 enabled on;
@@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
4 4
5 listen 1935; 5 listen 1935;
6 max_connections 1000; 6 max_connections 1000;
  7 +daemon off;
  8 +srs_log_tank console;
7 vhost __defaultVhost__ { 9 vhost __defaultVhost__ {
8 hls { 10 hls {
9 enabled on; 11 enabled on;
@@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
4 4
5 listen 1935; 5 listen 1935;
6 max_connections 1000; 6 max_connections 1000;
  7 +daemon off;
  8 +srs_log_tank console;
7 vhost __defaultVhost__ { 9 vhost __defaultVhost__ {
8 } 10 }
9 vhost source.srs.com { 11 vhost source.srs.com {
@@ -1227,6 +1227,12 @@ int SrsSource::on_reload_vhost_forward(string vhost) @@ -1227,6 +1227,12 @@ int SrsSource::on_reload_vhost_forward(string vhost)
1227 1227
1228 // forwarders 1228 // forwarders
1229 destroy_forwarders(); 1229 destroy_forwarders();
  1230 +
  1231 + // Don't start forwarders when source is not active.
  1232 + if (_can_publish) {
  1233 + return ret;
  1234 + }
  1235 +
1230 if ((ret = create_forwarders()) != ERROR_SUCCESS) { 1236 if ((ret = create_forwarders()) != ERROR_SUCCESS) {
1231 srs_error("create forwarders failed. ret=%d", ret); 1237 srs_error("create forwarders failed. ret=%d", ret);
1232 return ret; 1238 return ret;
@@ -1247,6 +1253,12 @@ int SrsSource::on_reload_vhost_hls(string vhost) @@ -1247,6 +1253,12 @@ int SrsSource::on_reload_vhost_hls(string vhost)
1247 1253
1248 #ifdef SRS_AUTO_HLS 1254 #ifdef SRS_AUTO_HLS
1249 hls->on_unpublish(); 1255 hls->on_unpublish();
  1256 +
  1257 + // Don't start forwarders when source is not active.
  1258 + if (_can_publish) {
  1259 + return ret;
  1260 + }
  1261 +
1250 if ((ret = hls->on_publish(_req, true)) != ERROR_SUCCESS) { 1262 if ((ret = hls->on_publish(_req, true)) != ERROR_SUCCESS) {
1251 srs_error("hls publish failed. ret=%d", ret); 1263 srs_error("hls publish failed. ret=%d", ret);
1252 return ret; 1264 return ret;
@@ -1267,6 +1279,12 @@ int SrsSource::on_reload_vhost_hds(string vhost) @@ -1267,6 +1279,12 @@ int SrsSource::on_reload_vhost_hds(string vhost)
1267 1279
1268 #ifdef SRS_AUTO_HDS 1280 #ifdef SRS_AUTO_HDS
1269 hds->on_unpublish(); 1281 hds->on_unpublish();
  1282 +
  1283 + // Don't start forwarders when source is not active.
  1284 + if (_can_publish) {
  1285 + return ret;
  1286 + }
  1287 +
1270 if ((ret = hds->on_publish(_req)) != ERROR_SUCCESS) { 1288 if ((ret = hds->on_publish(_req)) != ERROR_SUCCESS) {
1271 srs_error("hds publish failed. ret=%d", ret); 1289 srs_error("hds publish failed. ret=%d", ret);
1272 return ret; 1290 return ret;
@@ -1289,6 +1307,11 @@ int SrsSource::on_reload_vhost_dvr(string vhost) @@ -1289,6 +1307,11 @@ int SrsSource::on_reload_vhost_dvr(string vhost)
1289 // cleanup dvr 1307 // cleanup dvr
1290 dvr->on_unpublish(); 1308 dvr->on_unpublish();
1291 1309
  1310 + // Don't start forwarders when source is not active.
  1311 + if (_can_publish) {
  1312 + return ret;
  1313 + }
  1314 +
1292 // reinitialize the dvr, update plan. 1315 // reinitialize the dvr, update plan.
1293 if ((ret = dvr->initialize(this, _req)) != ERROR_SUCCESS) { 1316 if ((ret = dvr->initialize(this, _req)) != ERROR_SUCCESS) {
1294 return ret; 1317 return ret;
@@ -1316,6 +1339,12 @@ int SrsSource::on_reload_vhost_transcode(string vhost) @@ -1316,6 +1339,12 @@ int SrsSource::on_reload_vhost_transcode(string vhost)
1316 1339
1317 #ifdef SRS_AUTO_TRANSCODE 1340 #ifdef SRS_AUTO_TRANSCODE
1318 encoder->on_unpublish(); 1341 encoder->on_unpublish();
  1342 +
  1343 + // Don't start forwarders when source is not active.
  1344 + if (_can_publish) {
  1345 + return ret;
  1346 + }
  1347 +
1319 if ((ret = encoder->on_publish(_req)) != ERROR_SUCCESS) { 1348 if ((ret = encoder->on_publish(_req)) != ERROR_SUCCESS) {
1320 srs_error("start encoder failed. ret=%d", ret); 1349 srs_error("start encoder failed. ret=%d", ret);
1321 return ret; 1350 return ret;
@@ -1896,7 +1925,6 @@ int SrsSource::on_video(SrsCommonMessage* shared_video) @@ -1896,7 +1925,6 @@ int SrsSource::on_video(SrsCommonMessage* shared_video)
1896 if (!m) { 1925 if (!m) {
1897 return ret; 1926 return ret;
1898 } 1927 }
1899 - SrsAutoFree(SrsSharedPtrMessage, m);  
1900 1928
1901 // consume the monotonically increase message. 1929 // consume the monotonically increase message.
1902 if (m->is_audio()) { 1930 if (m->is_audio()) {
@@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 // current release version 31 // current release version
32 #define VERSION_MAJOR 2 32 #define VERSION_MAJOR 2
33 #define VERSION_MINOR 0 33 #define VERSION_MINOR 0
34 -#define VERSION_REVISION 232 34 +#define VERSION_REVISION 234
35 35
36 // generated by configure, only macros. 36 // generated by configure, only macros.
37 #include <srs_auto_headers.hpp> 37 #include <srs_auto_headers.hpp>
@@ -1656,7 +1656,6 @@ int SrsProtocol::response_acknowledgement_message() @@ -1656,7 +1656,6 @@ int SrsProtocol::response_acknowledgement_message()
1656 1656
1657 SrsAcknowledgementPacket* pkt = new SrsAcknowledgementPacket(); 1657 SrsAcknowledgementPacket* pkt = new SrsAcknowledgementPacket();
1658 pkt->sequence_number = sequence_number; 1658 pkt->sequence_number = sequence_number;
1659 - srs_warn("ack sequence=%#x", sequence_number);  
1660 1659
1661 // cache the message and use flush to send. 1660 // cache the message and use flush to send.
1662 if (!auto_response_when_recv) { 1661 if (!auto_response_when_recv) {