mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
refine readme.
This commit is contained in:
parent
0b7c7240e6
commit
dba7329682
4 changed files with 2915 additions and 2915 deletions
122
README.md
Normal file → Executable file
122
README.md
Normal file → Executable file
|
@ -21,52 +21,52 @@ people who have submitted patches, reported bugs, added translations, helped<br/
|
||||||
answer newbie questions, and generally made SRS that much better: [AUTHORS.txt](https://github.com/winlinvip/simple-rtmp-server/blob/master/AUTHORS.txt)
|
answer newbie questions, and generally made SRS that much better: [AUTHORS.txt](https://github.com/winlinvip/simple-rtmp-server/blob/master/AUTHORS.txt)
|
||||||
|
|
||||||
### Usage(simple)
|
### Usage(simple)
|
||||||
<strong>step -1:</strong> get SRS<br/>
|
<strong>Step -1:</strong> get SRS<br/>
|
||||||
<pre>
|
<pre>
|
||||||
git clone https://github.com/winlinvip/simple-rtmp-server &&
|
git clone https://github.com/winlinvip/simple-rtmp-server &&
|
||||||
cd simple-rtmp-server/trunk
|
cd simple-rtmp-server/trunk
|
||||||
</pre>
|
</pre>
|
||||||
<strong>step 0:</strong> build SRS system.<br/>
|
<strong>Step 0:</strong> build SRS system.<br/>
|
||||||
<pre>
|
<pre>
|
||||||
bash scripts/build.sh
|
bash scripts/build.sh
|
||||||
</pre>
|
</pre>
|
||||||
<strong>step 1:</strong> start SRS all demo features.<br/>
|
<strong>Step 1:</strong> start SRS all demo features.<br/>
|
||||||
<pre>
|
<pre>
|
||||||
bash scripts/run.sh
|
bash scripts/run.sh
|
||||||
</pre>
|
</pre>
|
||||||
<strong>step 2:</strong> SRS live show: [http://your-server-ip](http://your-server-ip) <br/>
|
<strong>Step 2:</strong> SRS live show: [http://your-server-ip](http://your-server-ip) <br/>
|
||||||
<strong>step 3:</strong> stop SRS demo<br/>
|
<strong>Step 3:</strong> stop SRS demo<br/>
|
||||||
<pre>
|
<pre>
|
||||||
bash scripts/stop.sh
|
bash scripts/stop.sh
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
### Usage(detail)
|
### Usage(detail)
|
||||||
<strong>step 0:</strong> get SRS <br/>
|
<strong>Step 0:</strong> get SRS <br/>
|
||||||
<pre>
|
<pre>
|
||||||
git clone https://github.com/winlinvip/simple-rtmp-server &&
|
git clone https://github.com/winlinvip/simple-rtmp-server &&
|
||||||
cd simple-rtmp-server/trunk
|
cd simple-rtmp-server/trunk
|
||||||
</pre>
|
</pre>
|
||||||
<strong>step 1:</strong> build SRS <br/>
|
<strong>Step 1:</strong> build SRS <br/>
|
||||||
<pre>
|
<pre>
|
||||||
./configure --with-ssl --with-hls --with-ffmpeg --with-http && make
|
./configure --with-ssl --with-hls --with-ffmpeg --with-http && make
|
||||||
</pre>
|
</pre>
|
||||||
<strong>step 2:</strong> start SRS <br/>
|
<strong>Step 2:</strong> start SRS <br/>
|
||||||
<pre>
|
<pre>
|
||||||
./objs/srs -c conf/srs.conf
|
./objs/srs -c conf/srs.conf
|
||||||
</pre>
|
</pre>
|
||||||
<strong>step 3(optinal):</strong> start SRS listen at 19350 to forward to<br/>
|
<strong>Step 3(optinal):</strong> start SRS listen at 19350 to forward to<br/>
|
||||||
<pre>
|
<pre>
|
||||||
./objs/srs -c conf/srs.19350.conf
|
./objs/srs -c conf/srs.19350.conf
|
||||||
</pre>
|
</pre>
|
||||||
<strong>step 4(optinal):</strong> start nginx for HLS <br/>
|
<strong>Step 4(optinal):</strong> start nginx for HLS <br/>
|
||||||
<pre>
|
<pre>
|
||||||
sudo ./objs/nginx/sbin/nginx
|
sudo ./objs/nginx/sbin/nginx
|
||||||
</pre>
|
</pre>
|
||||||
<strong>step 5(optinal):</strong> start http hooks for SRS callback <br/>
|
<strong>Step 5(optinal):</strong> start http hooks for SRS callback <br/>
|
||||||
<pre>
|
<pre>
|
||||||
python ./research/api-server/server.py 8085
|
python ./research/api-server/server.py 8085
|
||||||
</pre>
|
</pre>
|
||||||
<strong>step 6:</strong> publish demo live stream <br/>
|
<strong>Step 6:</strong> publish demo live stream <br/>
|
||||||
<pre>
|
<pre>
|
||||||
FMS URL: rtmp://127.0.0.1/live?vhost=demo.srs.com
|
FMS URL: rtmp://127.0.0.1/live?vhost=demo.srs.com
|
||||||
Stream: livestream
|
Stream: livestream
|
||||||
|
@ -78,7 +78,7 @@ FFMPEG to publish the default demo stream:
|
||||||
sleep 1; \
|
sleep 1; \
|
||||||
done
|
done
|
||||||
</pre>
|
</pre>
|
||||||
<strong>step 7:</strong> publish players live stream <br/>
|
<strong>Step 7:</strong> publish players live stream <br/>
|
||||||
<pre>
|
<pre>
|
||||||
FMS URL: rtmp://127.0.0.1/live?vhost=players
|
FMS URL: rtmp://127.0.0.1/live?vhost=players
|
||||||
Stream: livestream
|
Stream: livestream
|
||||||
|
@ -90,7 +90,7 @@ FFMPEG to publish the players demo stream:
|
||||||
sleep 1; \
|
sleep 1; \
|
||||||
done
|
done
|
||||||
</pre>
|
</pre>
|
||||||
<strong>step 8:</strong> add server ip to client hosts as demo. <br/>
|
<strong>Step 8:</strong> add server ip to client hosts as demo. <br/>
|
||||||
<pre>
|
<pre>
|
||||||
# edit the folowing file:
|
# edit the folowing file:
|
||||||
# linux: /etc/hosts
|
# linux: /etc/hosts
|
||||||
|
@ -98,14 +98,14 @@ FFMPEG to publish the players demo stream:
|
||||||
# where server ip is 192.168.2.111
|
# where server ip is 192.168.2.111
|
||||||
192.168.2.111 demo.srs.com
|
192.168.2.111 demo.srs.com
|
||||||
</pre>
|
</pre>
|
||||||
<strong>step 9:</strong> play live stream. <br/>
|
<strong>Step 9:</strong> play live stream. <br/>
|
||||||
<pre>
|
<pre>
|
||||||
players: http://demo.srs.com/players
|
players: http://demo.srs.com/players
|
||||||
rtmp url: rtmp://demo.srs.com/live/livestream
|
rtmp url: rtmp://demo.srs.com/live/livestream
|
||||||
m3u8 url: http://demo.srs.com/live/livestream.m3u8
|
m3u8 url: http://demo.srs.com/live/livestream.m3u8
|
||||||
for android: http://demo.srs.com/live/livestream.html
|
for android: http://demo.srs.com/live/livestream.html
|
||||||
</pre>
|
</pre>
|
||||||
<strong>step 10(optinal):</strong> play live stream auto transcoded<br/>
|
<strong>Step 10(optinal):</strong> play live stream auto transcoded<br/>
|
||||||
<pre>
|
<pre>
|
||||||
rtmp url: rtmp://demo.srs.com/live/livestream_ld
|
rtmp url: rtmp://demo.srs.com/live/livestream_ld
|
||||||
m3u8 url: http://demo.srs.com/live/livestream_ld.m3u8
|
m3u8 url: http://demo.srs.com/live/livestream_ld.m3u8
|
||||||
|
@ -114,7 +114,7 @@ rtmp url: rtmp://demo.srs.com/live/livestream_sd
|
||||||
m3u8 url: http://demo.srs.com/live/livestream_sd.m3u8
|
m3u8 url: http://demo.srs.com/live/livestream_sd.m3u8
|
||||||
for android: http://demo.srs.com/live/livestream_sd.html
|
for android: http://demo.srs.com/live/livestream_sd.html
|
||||||
</pre>
|
</pre>
|
||||||
<strong>step 11(optinal):</strong> play live stream auto forwarded, the hls dir change to /forward<br/>
|
<strong>Step 11(optinal):</strong> play live stream auto forwarded, the hls dir change to /forward<br/>
|
||||||
<pre>
|
<pre>
|
||||||
rtmp url: rtmp://demo.srs.com:19350/live/livestream
|
rtmp url: rtmp://demo.srs.com:19350/live/livestream
|
||||||
m3u8 url: http://demo.srs.com/forward/live/livestream.m3u8
|
m3u8 url: http://demo.srs.com/forward/live/livestream.m3u8
|
||||||
|
@ -126,7 +126,7 @@ rtmp url: rtmp://demo.srs.com:19350/live/livestream_sd
|
||||||
m3u8 url: http://demo.srs.com/forward/live/livestream_sd.m3u8
|
m3u8 url: http://demo.srs.com/forward/live/livestream_sd.m3u8
|
||||||
for android: http://demo.srs.com/forward/live/livestream_sd.html
|
for android: http://demo.srs.com/forward/live/livestream_sd.html
|
||||||
</pre>
|
</pre>
|
||||||
<strong>step 12(optinal):</strong> modify the config and reload it (all features support reload)<br/>
|
<strong>Step 12(optinal):</strong> modify the config and reload it (all features support reload)<br/>
|
||||||
<pre>
|
<pre>
|
||||||
killall -1 srs
|
killall -1 srs
|
||||||
</pre>
|
</pre>
|
||||||
|
@ -190,7 +190,7 @@ Bandwidth Test Workflow:
|
||||||
| final(2)-----------------> |
|
| final(2)-----------------> |
|
||||||
| <END> |
|
| <END> |
|
||||||
|
|
||||||
@see: class SrsBandwidth comments.
|
@See: class SrsBandwidth comments.
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
### System Requirements
|
### System Requirements
|
||||||
|
@ -199,37 +199,38 @@ Supported operating systems and hardware:
|
||||||
* All handware.
|
* All handware.
|
||||||
|
|
||||||
### Summary
|
### Summary
|
||||||
1. simple: also stable enough.<br/>
|
1. Simple: also stable enough.<br/>
|
||||||
2. high-performance: single-thread, async socket, event/st-thread driven.<br/>
|
2. High-performance: single-thread, async socket, event/st-thread driven.<br/>
|
||||||
3. no edge server, origin server only.<br/>
|
3. NO edge server, origin server only.<br/>
|
||||||
4. no vod streaming, live streaming only.<br/>
|
4. NO vod streaming, live streaming only.<br/>
|
||||||
5. no multiple processes, single process only.<br/>
|
5. NO multiple processes, single process only.<br/>
|
||||||
6. support vhost, support \_\_defaultVhost\_\_.<br/>
|
6. Support vhost, support \_\_defaultVhost\_\_.<br/>
|
||||||
7. support adobe rtmp live streaming.<br/>
|
7. Support adobe rtmp live streaming.<br/>
|
||||||
8. support apple hls(m3u8) live streaming.<br/>
|
8. Support apple hls(m3u8) live streaming.<br/>
|
||||||
9. support reload config to enable changes.<br/>
|
9. Support reload config to enable changes.<br/>
|
||||||
10. support cache last gop for flash player to fast startup.<br/>
|
10. Support cache last gop for flash player to fast startup.<br/>
|
||||||
11. support listen at multiple ports.<br/>
|
11. Support listen at multiple ports.<br/>
|
||||||
12. support long time(>4.6hours) publish/play.<br/>
|
12. Support long time(>4.6hours) publish/play.<br/>
|
||||||
13. high performace, 1800 connections(500kbps), 900Mbps, CPU 90.2%, 41MB<br/>
|
13. High performace, 1800 connections(500kbps), 900Mbps, CPU 90.2%, 41MB<br/>
|
||||||
14. support forward publish stream to build active-standby cluster.<br/>
|
14. Support forward publish stream to build active-standby cluster.<br/>
|
||||||
15. support broadcast by forward the stream to other servers(origin/edge).<br/>
|
15. Support broadcast by forward the stream to other servers(origin/edge).<br/>
|
||||||
16. support live stream transcoding by ffmpeg.<br/>
|
16. Support live stream transcoding by ffmpeg.<br/>
|
||||||
17. support live stream forward(acopy/vcopy) by ffmpeg.<br/>
|
17. Support live stream forward(acopy/vcopy) by ffmpeg.<br/>
|
||||||
18. support ffmpeg filters(logo/overlay/crop), x264 params.<br/>
|
18. Support ffmpeg filters(logo/overlay/crop), x264 params.<br/>
|
||||||
19. support audio transcode only, speex/mp3 to aac<br/>
|
19. Support audio transcode only, speex/mp3 to aac<br/>
|
||||||
20. support http callback api hooks(for authentication and injection).<br/>
|
20. Support http callback api hooks(for authentication and injection).<br/>
|
||||||
21. support bandwidth test api and flash client.<br/>
|
21. Support bandwidth test api and flash client.<br/>
|
||||||
22. player, publisher(encoder), and demo pages(jquery+bootstrap). <br/>
|
22. Player, publisher(encoder), and demo pages(jquery+bootstrap). <br/>
|
||||||
23. demo video meeting or chat(SRS+cherrypy+jquery+bootstrap). <br/>
|
23. Demo video meeting or chat(SRS+cherrypy+jquery+bootstrap). <br/>
|
||||||
24. [plan] support network based cli and json result.<br/>
|
24. [dev] Full documents in wiki, in chineses. <br/>
|
||||||
25. [plan] support adobe flash refer/token/swf verification.<br/>
|
25. [plan] Support network based cli and json result.<br/>
|
||||||
26. [plan] support adobe amf3 codec.<br/>
|
26. [plan] Support adobe flash refer/token/swf verification.<br/>
|
||||||
27. [plan] support dvr(record live to vod file)<br/>
|
27. [plan] Support adobe amf3 codec.<br/>
|
||||||
28. [plan] support FMS edge protocol<br/>
|
28. [plan] Support dvr(record live to vod file)<br/>
|
||||||
29. [plan] support encryption: RTMPE/RTMPS, HLS DRM<br/>
|
29. [plan] Support FMS edge protocol<br/>
|
||||||
30. [plan] support RTMPT, http to tranverse firewalls<br/>
|
30. [plan] Support encryption: RTMPE/RTMPS, HLS DRM<br/>
|
||||||
31. [plan] support file source, transcoding file to live stream<br/>
|
31. [plan] Support RTMPT, http to tranverse firewalls<br/>
|
||||||
|
32. [plan] Support file source, transcoding file to live stream<br/>
|
||||||
|
|
||||||
### Performance
|
### Performance
|
||||||
1. 300 connections, 150Mbps, 500kbps, CPU 18.8%, 5956KB.
|
1. 300 connections, 150Mbps, 500kbps, CPU 18.8%, 5956KB.
|
||||||
|
@ -239,6 +240,7 @@ Supported operating systems and hardware:
|
||||||
5. 1500 connections, 750Mbps, 500kbps, CPU 81.9%, 28MB.
|
5. 1500 connections, 750Mbps, 500kbps, CPU 81.9%, 28MB.
|
||||||
6. 1800 connections, 900Mbps, 500kbps, CPU 90.2%, 41MB.
|
6. 1800 connections, 900Mbps, 500kbps, CPU 90.2%, 41MB.
|
||||||
<pre>
|
<pre>
|
||||||
|
[winlin@dev6 srs]$ dstat
|
||||||
----total-cpu-usage---- -dsk/total- ---net/lo-- ---paging-- ---system--
|
----total-cpu-usage---- -dsk/total- ---net/lo-- ---paging-- ---system--
|
||||||
usr sys idl wai hiq siq| read writ| recv send| in out | int csw
|
usr sys idl wai hiq siq| read writ| recv send| in out | int csw
|
||||||
58 9 32 0 0 1| 0 4168k| 277M 277M| 0 0 | 29k 25k
|
58 9 32 0 0 1| 0 4168k| 277M 277M| 0 0 | 29k 25k
|
||||||
|
@ -257,16 +259,16 @@ usr sys idl wai hiq siq| read writ| recv send| in out | int csw
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
### Releases
|
### Releases
|
||||||
* 2013-12-25, [release v0.9](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.9), support bandwidth test, add player/encoder/chat demos. 20926 lines.<br/>
|
* 2013-12-25, [Release v0.9](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.9), support bandwidth test, add player/encoder/chat demos. 20926 lines.<br/>
|
||||||
* 2013-12-08, [release v0.8](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.8), support http hooks callback, update [st_load](https://github.com/winlinvip/st-load). 19186 lines.<br/>
|
* 2013-12-08, [Release v0.8](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.8), support http hooks callback, update [st_load](https://github.com/winlinvip/st-load). 19186 lines.<br/>
|
||||||
* 2013-12-03, [release v0.7](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.7), support live stream transcoding. 17605 lines.<br/>
|
* 2013-12-03, [Release v0.7](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.7), support live stream transcoding. 17605 lines.<br/>
|
||||||
* 2013-11-29, [release v0.6](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.6), support forward stream to origin/edge. 16094 lines.<br/>
|
* 2013-11-29, [Release v0.6](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.6), support forward stream to origin/edge. 16094 lines.<br/>
|
||||||
* 2013-11-26, [release v0.5](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.5), support HLS(m3u8), fragment and window. 14449 lines.<br/>
|
* 2013-11-26, [Release v0.5](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.5), support HLS(m3u8), fragment and window. 14449 lines.<br/>
|
||||||
* 2013-11-10, [release v0.4](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.4), support reload config, pause, longtime publish/play. 12500 lines.<br/>
|
* 2013-11-10, [Release v0.4](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.4), support reload config, pause, longtime publish/play. 12500 lines.<br/>
|
||||||
* 2013-11-04, [release v0.3](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.3), support vhost, refer, gop cache, listen multiple ports. 11773 lines.<br/>
|
* 2013-11-04, [Release v0.3](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.3), support vhost, refer, gop cache, listen multiple ports. 11773 lines.<br/>
|
||||||
* 2013-10-25, [release v0.2](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.2), support rtmp flash publish, h264, time jitter correct. 10125 lines.<br/>
|
* 2013-10-25, [Release v0.2](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.2), support rtmp flash publish, h264, time jitter correct. 10125 lines.<br/>
|
||||||
* 2013-10-23, [release v0.1](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.1), support rtmp FMLE/FFMPEG publish, vp6. 8287 lines.<br/>
|
* 2013-10-23, [Release v0.1](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.1), support rtmp FMLE/FFMPEG publish, vp6. 8287 lines.<br/>
|
||||||
* 2013-10-17, created.<br/>
|
* 2013-10-17, Created.<br/>
|
||||||
|
|
||||||
### Compare
|
### Compare
|
||||||
* SRS v0.9: 20926 lines. player/encoder/chat demos. bandwidth test for encoder/CDN.<br/>
|
* SRS v0.9: 20926 lines. player/encoder/chat demos. bandwidth test for encoder/CDN.<br/>
|
||||||
|
|
|
@ -76,7 +76,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#define RTMP_SIG_SRS_URL "https://"RTMP_SIG_SRS_URL_SHORT
|
#define RTMP_SIG_SRS_URL "https://"RTMP_SIG_SRS_URL_SHORT
|
||||||
#define RTMP_SIG_SRS_URL_SHORT "github.com/winlinvip/simple-rtmp-server"
|
#define RTMP_SIG_SRS_URL_SHORT "github.com/winlinvip/simple-rtmp-server"
|
||||||
#define RTMP_SIG_SRS_WEB "http://blog.csdn.net/win_lin"
|
#define RTMP_SIG_SRS_WEB "http://blog.csdn.net/win_lin"
|
||||||
#define RTMP_SIG_SRS_EMAIL "winterserver@126.com"
|
#define RTMP_SIG_SRS_EMAIL "winlin@vip.126.com"
|
||||||
#define RTMP_SIG_SRS_LICENSE "The MIT License (MIT)"
|
#define RTMP_SIG_SRS_LICENSE "The MIT License (MIT)"
|
||||||
#define RTMP_SIG_SRS_COPYRIGHT "Copyright (c) 2013-2014 winlin"
|
#define RTMP_SIG_SRS_COPYRIGHT "Copyright (c) 2013-2014 winlin"
|
||||||
#define RTMP_SIG_SRS_PRIMARY_AUTHROS "winlin,wenjiegit"
|
#define RTMP_SIG_SRS_PRIMARY_AUTHROS "winlin,wenjiegit"
|
||||||
|
|
3333
trunk/src/core/srs_core_config.cpp
Executable file → Normal file
3333
trunk/src/core/srs_core_config.cpp
Executable file → Normal file
File diff suppressed because it is too large
Load diff
2373
trunk/src/core/srs_core_rtmp.cpp
Executable file → Normal file
2373
trunk/src/core/srs_core_rtmp.cpp
Executable file → Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue