winlin

refine the authors and license

  1 +Authors ordered by first contribution.
  2 +
  3 +* winlin <winlin@vip.126.com>
  4 +* wenjie
1 -simple-rtmp-server 1 +Simple-RTMP-Server
2 ================== 2 ==================
3 3
4 -srs(simple rtmp origin live server) over state-threads.<br/>  
5 -srs is a simple, high-performance, running in single process, origin live server.<br/>  
6 -srs supports vhost, rtmp, HLS, transcoding, forward, http hooks. <br/>  
7 -blog: [http://blog.csdn.net/win_lin](http://blog.csdn.net/win_lin) <br/>  
8 -see also: [https://github.com/winlinvip/simple-rtmp-server](https://github.com/winlinvip/simple-rtmp-server) <br/>  
9 -see also: [http://winlinvip.github.io/simple-rtmp-server](http://winlinvip.github.io/simple-rtmp-server) <br/> 4 +SRS(SIMPLE RTMP Server) over state-threads created in 2013.<br/>
  5 +SRS is a simple, high-performance, running in single process, origin live server.<br/>
  6 +SRS supports vhost, rtmp, HLS, transcoding, forward, http hooks. <br/>
  7 +Blog: [http://blog.csdn.net/win_lin](http://blog.csdn.net/win_lin) <br/>
  8 +See also: [https://github.com/winlinvip/simple-rtmp-server](https://github.com/winlinvip/simple-rtmp-server) <br/>
  9 +See also: [http://winlinvip.github.io/simple-rtmp-server](http://winlinvip.github.io/simple-rtmp-server) <br/>
10 TencentQQ: [http://url.cn/WAHICw](http://url.cn/WAHICw) (Group: 212189142) 10 TencentQQ: [http://url.cn/WAHICw](http://url.cn/WAHICw) (Group: 212189142)
11 11
12 -### Contributors  
13 -winlin([winterserver](#)): [http://blog.csdn.net/win_lin](http://blog.csdn.net/win_lin) <br/>  
14 -wenjie([wenjiegit](https://github.com/wenjiegit/simple-rtmp-server)): [http://blog.chinaunix.net/uid/25006789.html](http://blog.chinaunix.net/uid/25006789.html) <br/>  
15 -about the contributors: <br/>  
16 -1. contribute important features to srs. <br/>  
17 -2. the name of all contributors will send in the response of NetConnection.connect and metadata. 12 +### AUTHORS
  13 +The PRIMARY AUTHORS are (and/or have been)(Authors ordered by first contribution): <br/>
  14 +* winlin([winterserver](#)): [http://blog.csdn.net/win_lin](http://blog.csdn.net/win_lin) <br/>
  15 +* wenjie([wenjiegit](https://github.com/wenjiegit/simple-rtmp-server)): [http://blog.chinaunix.net/uid/25006789.html](http://blog.chinaunix.net/uid/25006789.html) <br/>
  16 +About the primary AUTHORS: <br/>
  17 +* Contribute important features to SRS. <br/>
  18 +* Names of all PRIMARY AUTHORS response in NetConnection.connect and metadata. <br/>
  19 +And here is an inevitably incomplete list of MUCH-APPRECIATED CONTRIBUTORS --<br/>
  20 +people who have submitted patches, reported bugs, added translations, helped<br/>
  21 +answer newbie questions, and generally made SRS that much better: [AUTHORS.txt](https://github.com/winlinvip/simple-rtmp-server/blob/master/AUTHORS.txt)
18 22
19 ### Usage(simple) 23 ### Usage(simple)
20 -<strong>step -1:</strong> get srs<br/> 24 +<strong>step -1:</strong> get SRS<br/>
21 <pre> 25 <pre>
22 git clone https://github.com/winlinvip/simple-rtmp-server && 26 git clone https://github.com/winlinvip/simple-rtmp-server &&
23 cd simple-rtmp-server/trunk 27 cd simple-rtmp-server/trunk
24 </pre> 28 </pre>
25 -<strong>step 0:</strong> build srs system.<br/> 29 +<strong>step 0:</strong> build SRS system.<br/>
26 <pre> 30 <pre>
27 bash scripts/build.sh 31 bash scripts/build.sh
28 </pre> 32 </pre>
29 -<strong>step 1:</strong> start srs all demo features.<br/> 33 +<strong>step 1:</strong> start SRS all demo features.<br/>
30 <pre> 34 <pre>
31 bash scripts/run.sh 35 bash scripts/run.sh
32 </pre> 36 </pre>
33 -<strong>step 2:</strong> srs live show: [http://your-server-ip](http://your-server-ip) <br/>  
34 -<strong>step 3:</strong> stop srs demo<br/> 37 +<strong>step 2:</strong> SRS live show: [http://your-server-ip](http://your-server-ip) <br/>
  38 +<strong>step 3:</strong> stop SRS demo<br/>
35 <pre> 39 <pre>
36 bash scripts/stop.sh 40 bash scripts/stop.sh
37 </pre> 41 </pre>
38 42
39 ### Usage(detail) 43 ### Usage(detail)
40 -<strong>step 0:</strong> get srs <br/> 44 +<strong>step 0:</strong> get SRS <br/>
41 <pre> 45 <pre>
42 git clone https://github.com/winlinvip/simple-rtmp-server && 46 git clone https://github.com/winlinvip/simple-rtmp-server &&
43 cd simple-rtmp-server/trunk 47 cd simple-rtmp-server/trunk
44 </pre> 48 </pre>
45 -<strong>step 1:</strong> build srs <br/> 49 +<strong>step 1:</strong> build SRS <br/>
46 <pre> 50 <pre>
47 ./configure --with-ssl --with-hls --with-ffmpeg --with-http && make 51 ./configure --with-ssl --with-hls --with-ffmpeg --with-http && make
48 </pre> 52 </pre>
49 -<strong>step 2:</strong> start srs <br/> 53 +<strong>step 2:</strong> start SRS <br/>
50 <pre> 54 <pre>
51 ./objs/srs -c conf/srs.conf 55 ./objs/srs -c conf/srs.conf
52 </pre> 56 </pre>
53 -<strong>step 3(optinal):</strong> start srs listen at 19350 to forward to<br/> 57 +<strong>step 3(optinal):</strong> start SRS listen at 19350 to forward to<br/>
54 <pre> 58 <pre>
55 ./objs/srs -c conf/srs.19350.conf 59 ./objs/srs -c conf/srs.19350.conf
56 </pre> 60 </pre>
@@ -58,7 +62,7 @@ cd simple-rtmp-server/trunk @@ -58,7 +62,7 @@ cd simple-rtmp-server/trunk
58 <pre> 62 <pre>
59 sudo ./objs/nginx/sbin/nginx 63 sudo ./objs/nginx/sbin/nginx
60 </pre> 64 </pre>
61 -<strong>step 5(optinal):</strong> start http hooks for srs callback <br/> 65 +<strong>step 5(optinal):</strong> start http hooks for SRS callback <br/>
62 <pre> 66 <pre>
63 python ./research/api-server/server.py 8085 67 python ./research/api-server/server.py 8085
64 </pre> 68 </pre>
@@ -135,7 +139,7 @@ killall -s SIGHUP srs @@ -135,7 +139,7 @@ killall -s SIGHUP srs
135 System Architecture: 139 System Architecture:
136 <pre> 140 <pre>
137 +------------------------------------------------------+ 141 +------------------------------------------------------+
138 -| SRS(Simple Rtmp Server) | 142 +| SRS(Simple RTMP Server) |
139 +---------------+---------------+-----------+----------+ 143 +---------------+---------------+-----------+----------+
140 | API/hook | Transcoder | HLS | RTMP | 144 | API/hook | Transcoder | HLS | RTMP |
141 | http-parser | FFMPEG/x264 | NGINX/ts | protocol | 145 | http-parser | FFMPEG/x264 | NGINX/ts | protocol |
@@ -151,7 +155,7 @@ Stream Architecture: @@ -151,7 +155,7 @@ Stream Architecture:
151 + Publish + + Deliver | 155 + Publish + + Deliver |
152 +---|-----+ +----|-----+ 156 +---|-----+ +----|-----+
153 +-----------+-------------------------+----------------+ 157 +-----------+-------------------------+----------------+
154 -| Encoder | SRS(Simple Rtmp Server) | Client | 158 +| Encoder | SRS(Simple RTMP Server) | Client |
155 +-----------+-------------------------+----------------+ 159 +-----------+-------------------------+----------------+
156 | (FMLE, | +-> RTMP protocol ----+-> Flash Player | 160 | (FMLE, | +-> RTMP protocol ----+-> Flash Player |
157 | FFMPEG, --+-> +-> HLS/NGINX --------+-> m3u8 player | 161 | FFMPEG, --+-> +-> HLS/NGINX --------+-> m3u8 player |
@@ -217,7 +221,7 @@ Supported operating systems and hardware: @@ -217,7 +221,7 @@ Supported operating systems and hardware:
217 20. support http callback api hooks(for authentication and injection).<br/> 221 20. support http callback api hooks(for authentication and injection).<br/>
218 21. support bandwidth test api and flash client.<br/> 222 21. support bandwidth test api and flash client.<br/>
219 22. player, publisher(encoder), and demo pages(jquery+bootstrap). <br/> 223 22. player, publisher(encoder), and demo pages(jquery+bootstrap). <br/>
220 -23. demo video meeting or chat(srs+cherrypy+jquery+bootstrap). <br/> 224 +23. demo video meeting or chat(SRS+cherrypy+jquery+bootstrap). <br/>
221 24. [plan] support network based cli and json result.<br/> 225 24. [plan] support network based cli and json result.<br/>
222 25. [plan] support adobe flash refer/token/swf verification.<br/> 226 25. [plan] support adobe flash refer/token/swf verification.<br/>
223 26. [plan] support adobe amf3 codec.<br/> 227 26. [plan] support adobe amf3 codec.<br/>
@@ -265,15 +269,15 @@ usr sys idl wai hiq siq| read writ| recv send| in out | int csw @@ -265,15 +269,15 @@ usr sys idl wai hiq siq| read writ| recv send| in out | int csw
265 * 2013-10-17, created.<br/> 269 * 2013-10-17, created.<br/>
266 270
267 ### Compare 271 ### Compare
268 -* srs v0.9: 20926 lines. player/encoder/chat demos. bandwidth test for encoder/CDN.<br/>  
269 -* srs v0.8: 19186 lines. implements http hooks refer to [nginx-rtmp](https://github.com/arut/nginx-rtmp-module). <br/>  
270 -* srs v0.7: 17605 lines. implements transcoding(FFMPEG) feature refer to [wowza](http://www.wowza.com). <br/>  
271 -* srs v0.6: 16094 lines. important feature forward for CDN. <br/>  
272 -* srs v0.5: 14449 lines. implements HLS feature refer to [nginx-rtmp](https://github.com/arut/nginx-rtmp-module). <br/>  
273 -* srs v0.4: 12500 lines. important feature reload for CDN. <br/>  
274 -* srs v0.3: 11773 lines. implements vhost feature refer to [FMS](http://www.adobe.com/products/adobe-media-server-family.html). <br/>  
275 -* srs v0.2: 10125 lines. implements rtmp protocol stack refer to [nginx-rtmp](https://github.com/arut/nginx-rtmp-module). <br/>  
276 -* srs v0.1: 8287 lines. base on state-threads. <br/> 272 +* SRS v0.9: 20926 lines. player/encoder/chat demos. bandwidth test for encoder/CDN.<br/>
  273 +* SRS v0.8: 19186 lines. implements http hooks refer to [nginx-rtmp](https://github.com/arut/nginx-rtmp-module). <br/>
  274 +* SRS v0.7: 17605 lines. implements transcoding(FFMPEG) feature refer to [wowza](http://www.wowza.com). <br/>
  275 +* SRS v0.6: 16094 lines. important feature forward for CDN. <br/>
  276 +* SRS v0.5: 14449 lines. implements HLS feature refer to [nginx-rtmp](https://github.com/arut/nginx-rtmp-module). <br/>
  277 +* SRS v0.4: 12500 lines. important feature reload for CDN. <br/>
  278 +* SRS v0.3: 11773 lines. implements vhost feature refer to [FMS](http://www.adobe.com/products/adobe-media-server-family.html). <br/>
  279 +* SRS v0.2: 10125 lines. implements rtmp protocol stack refer to [nginx-rtmp](https://github.com/arut/nginx-rtmp-module). <br/>
  280 +* SRS v0.1: 8287 lines. base on state-threads. <br/>
277 * nginx-rtmp v1.0.4: 26786 lines <br/> 281 * nginx-rtmp v1.0.4: 26786 lines <br/>
278 * nginx v1.5.0: 139524 lines <br/> 282 * nginx v1.5.0: 139524 lines <br/>
279 283
@@ -281,7 +285,7 @@ usr sys idl wai hiq siq| read writ| recv send| in out | int csw @@ -281,7 +285,7 @@ usr sys idl wai hiq siq| read writ| recv send| in out | int csw
281 * v1.0, 2013-12-27, merge from wenjie, the bandwidth test feature. 285 * v1.0, 2013-12-27, merge from wenjie, the bandwidth test feature.
282 * v0.9, 2013-12-25, [v0.9](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.9) released. 20926 lines. 286 * v0.9, 2013-12-25, [v0.9](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.9) released. 20926 lines.
283 * v0.9, 2013-12-25, fix the bitrate bug(in Bps), use enhanced microphone. 287 * v0.9, 2013-12-25, fix the bitrate bug(in Bps), use enhanced microphone.
284 -* v0.9, 2013-12-22, demo video meeting or chat(srs+cherrypy+jquery+bootstrap). 288 +* v0.9, 2013-12-22, demo video meeting or chat(SRS+cherrypy+jquery+bootstrap).
285 * v0.9, 2013-12-22, merge from wenjie, support banwidth test. 289 * v0.9, 2013-12-22, merge from wenjie, support banwidth test.
286 * v0.9, 2013-12-22, merge from wenjie: support set chunk size at vhost level 290 * v0.9, 2013-12-22, merge from wenjie: support set chunk size at vhost level
287 * v0.9, 2013-12-21, add [players](http://demo.srs.com/players) for play and publish. 291 * v0.9, 2013-12-21, add [players](http://demo.srs.com/players) for play and publish.
@@ -298,7 +302,7 @@ usr sys idl wai hiq siq| read writ| recv send| in out | int csw @@ -298,7 +302,7 @@ usr sys idl wai hiq siq| read writ| recv send| in out | int csw
298 * v0.8, 2013-12-08, support multiple http hooks for a event. 302 * v0.8, 2013-12-08, support multiple http hooks for a event.
299 * v0.8, 2013-12-07, support http callback hooks, on_connect. 303 * v0.8, 2013-12-07, support http callback hooks, on_connect.
300 * v0.8, 2013-12-07, support network based cli and json result, add CherryPy 3.2.4. 304 * v0.8, 2013-12-07, support network based cli and json result, add CherryPy 3.2.4.
301 -* v0.8, 2013-12-07, update http/hls/rtmp load test tool [st_load](https://github.com/winlinvip/st-load), use srs rtmp sdk. 305 +* v0.8, 2013-12-07, update http/hls/rtmp load test tool [st_load](https://github.com/winlinvip/st-load), use SRS rtmp sdk.
302 * v0.8, 2013-12-06, support max_connections, drop if exceed. 306 * v0.8, 2013-12-06, support max_connections, drop if exceed.
303 * v0.8, 2013-12-05, support log_dir, write ffmpeg log to file. 307 * v0.8, 2013-12-05, support log_dir, write ffmpeg log to file.
304 * v0.8, 2013-12-05, fix the forward/hls/encoder bug. 308 * v0.8, 2013-12-05, fix the forward/hls/encoder bug.
@@ -79,7 +79,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -79,7 +79,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
79 #define RTMP_SIG_SRS_EMAIL "winterserver@126.com" 79 #define RTMP_SIG_SRS_EMAIL "winterserver@126.com"
80 #define RTMP_SIG_SRS_LICENSE "The MIT License (MIT)" 80 #define RTMP_SIG_SRS_LICENSE "The MIT License (MIT)"
81 #define RTMP_SIG_SRS_COPYRIGHT "Copyright (c) 2013-2014 winlin" 81 #define RTMP_SIG_SRS_COPYRIGHT "Copyright (c) 2013-2014 winlin"
82 -#define RTMP_SIG_SRS_CONTRIBUTOR "winlin,wenjiegit" 82 +#define RTMP_SIG_SRS_PRIMARY_AUTHROS "winlin,wenjiegit"
83 83
84 // compare 84 // compare
85 #define srs_min(a, b) (((a) < (b))? (a) : (b)) 85 #define srs_min(a, b) (((a) < (b))? (a) : (b))
@@ -735,9 +735,9 @@ int SrsConfig::parse_argv(int& i, char** argv) @@ -735,9 +735,9 @@ int SrsConfig::parse_argv(int& i, char** argv)
735 735
736 void SrsConfig::print_help(char** argv) 736 void SrsConfig::print_help(char** argv)
737 { 737 {
738 - printf(RTMP_SIG_SRS_NAME" "RTMP_SIG_SRS_VERSION  
739 - " Copyright (c) 2013-2014 winlin\n"  
740 - "Contributors: "RTMP_SIG_SRS_CONTRIBUTOR"\n" 738 + printf(
  739 + RTMP_SIG_SRS_NAME" "RTMP_SIG_SRS_VERSION" "RTMP_SIG_SRS_COPYRIGHT"\n"
  740 + "Primary Authors: "RTMP_SIG_SRS_PRIMARY_AUTHROS"\n"
741 "Build: "SRS_BUILD_DATE" Configuration: "SRS_CONFIGURE"\n" 741 "Build: "SRS_BUILD_DATE" Configuration: "SRS_CONFIGURE"\n"
742 "Usage: %s [-h?vV] [-c <filename>]\n" 742 "Usage: %s [-h?vV] [-c <filename>]\n"
743 "\n" 743 "\n"
@@ -607,7 +607,7 @@ int SrsRtmp::response_connect_app(SrsRequest *req, const char* server_ip) @@ -607,7 +607,7 @@ int SrsRtmp::response_connect_app(SrsRequest *req, const char* server_ip)
607 data->set("srs_site", new SrsAmf0String(RTMP_SIG_SRS_WEB)); 607 data->set("srs_site", new SrsAmf0String(RTMP_SIG_SRS_WEB));
608 data->set("srs_email", new SrsAmf0String(RTMP_SIG_SRS_EMAIL)); 608 data->set("srs_email", new SrsAmf0String(RTMP_SIG_SRS_EMAIL));
609 data->set("srs_copyright", new SrsAmf0String(RTMP_SIG_SRS_COPYRIGHT)); 609 data->set("srs_copyright", new SrsAmf0String(RTMP_SIG_SRS_COPYRIGHT));
610 - data->set("srs_contributor", new SrsAmf0String(RTMP_SIG_SRS_CONTRIBUTOR)); 610 + data->set("srs_primary_authors", new SrsAmf0String(RTMP_SIG_SRS_PRIMARY_AUTHROS));
611 611
612 if (server_ip) { 612 if (server_ip) {
613 data->set("srs_server_ip", new SrsAmf0String(server_ip)); 613 data->set("srs_server_ip", new SrsAmf0String(server_ip));
@@ -642,7 +642,7 @@ int SrsSource::on_meta_data(SrsCommonMessage* msg, SrsOnMetaDataPacket* metadata @@ -642,7 +642,7 @@ int SrsSource::on_meta_data(SrsCommonMessage* msg, SrsOnMetaDataPacket* metadata
642 metadata->metadata->set("server", new SrsAmf0String( 642 metadata->metadata->set("server", new SrsAmf0String(
643 RTMP_SIG_SRS_KEY" "RTMP_SIG_SRS_VERSION" ("RTMP_SIG_SRS_URL_SHORT")")); 643 RTMP_SIG_SRS_KEY" "RTMP_SIG_SRS_VERSION" ("RTMP_SIG_SRS_URL_SHORT")"));
644 metadata->metadata->set("contributor", 644 metadata->metadata->set("contributor",
645 - new SrsAmf0String(RTMP_SIG_SRS_CONTRIBUTOR)); 645 + new SrsAmf0String(RTMP_SIG_SRS_PRIMARY_AUTHROS));
646 646
647 SrsAmf0Any* prop = NULL; 647 SrsAmf0Any* prop = NULL;
648 if ((prop = metadata->metadata->get_property("audiosamplerate")) != NULL) { 648 if ((prop = metadata->metadata->get_property("audiosamplerate")) != NULL) {