winlin

refine the script, add build/run/stop

@@ -16,14 +16,18 @@ who is the contributors: <br/> @@ -16,14 +16,18 @@ who is the contributors: <br/>
16 2. the name of all contributors will send in the response of NetConnection.connect and metadata. 16 2. the name of all contributors will send in the response of NetConnection.connect and metadata.
17 17
18 ### Usage(simple) 18 ### Usage(simple)
19 -<strong>step 0:</strong> get srs<br/> 19 +<strong>step -1:</strong> get srs<br/>
20 <pre> 20 <pre>
21 git clone https://github.com/winlinvip/simple-rtmp-server && 21 git clone https://github.com/winlinvip/simple-rtmp-server &&
22 cd simple-rtmp-server/trunk 22 cd simple-rtmp-server/trunk
23 </pre> 23 </pre>
24 -<strong>step 1:</strong> build and start srs all demo features.<br/> 24 +<strong>step 0:</strong> build srs system.<br/>
25 <pre> 25 <pre>
26 -bash scripts/demo.sh 26 +bash scripts/build.sh
  27 +</pre>
  28 +<strong>step 1:</strong> start srs all demo features.<br/>
  29 +<pre>
  30 +bash scripts/run.sh
27 </pre> 31 </pre>
28 <strong>step 2:</strong> srs live show: [http://demo.srs.com/players](http://demo.srs.com/players) <br/> 32 <strong>step 2:</strong> srs live show: [http://demo.srs.com/players](http://demo.srs.com/players) <br/>
29 requires client add server ip to hosts. <br/> 33 requires client add server ip to hosts. <br/>
  1 +#!/bin/bash
  2 +src_dir='src'
  3 +if [[ ! -d $src_dir ]]; then echo "错误:必须在src同目录执行脚本"; exit 1; fi
  4 +
  5 +echo "编译SRS"
  6 +./configure --with-ssl --with-hls --with-ffmpeg --with-http && make
  7 +ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:编译SRS失败"; exit $ret; fi
  8 +
  9 +echo "编译SRS成功"
  10 +exit 0
  1 +#!/bin/bash
  2 +src_dir='src'
  3 +if [[ ! -d $src_dir ]]; then echo "错误:必须在src同目录执行脚本"; exit 1; fi
  4 +
  5 +cmd="nohup python ./research/api-server/server.py 8085 >./objs/logs/api-server.log 2>&1 &"
  6 +echo "启动API服务器:$cmd"
  7 +pids=`ps aux|grep python|grep research|grep "api-server"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done
  8 +nohup python ./research/api-server/server.py 8085 >./objs/logs/api-server.log 2>&1 &
  9 +ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动API服务器失败"; exit $ret; fi
  10 +
  11 +echo "启动API服务器成功"
  12 +exit 0
  1 +#!/bin/bash
  2 +src_dir='src'
  3 +if [[ ! -d $src_dir ]]; then echo "错误:必须在src同目录执行脚本"; exit 1; fi
  4 +
  5 +cmd="nohup bash ./scripts/ffmpeg.demo.sh >./objs/logs/ffmpeg-demo.log 2>&1 &"
  6 +echo "启动FFMPEG推送demo流(播放器上12路演示):$cmd"
  7 +pids=`ps aux|grep scripts|grep "/ffmpeg.demo.sh"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done
  8 +nohup bash ./scripts/ffmpeg.demo.sh >./objs/logs/ffmpeg-demo.log 2>&1 &
  9 +ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动FFMPEG推送demo流(播放器上12路演示)失败"; exit $ret; fi
  10 +
  11 +echo "启动FFMPEG推送demo流(播放器上12路演示)成功"
  12 +exit 0
  1 +#!/bin/bash
  2 +src_dir='src'
  3 +if [[ ! -d $src_dir ]]; then echo "错误:必须在src同目录执行脚本"; exit 1; fi
  4 +
  5 +cmd="nohup bash scripts/ffmpeg.players.sh >./objs/logs/ffmpeg-players.log 2>&1 &"
  6 +echo "启动FFMPEG推送players流(播放器上演示用):$cmd"
  7 +pids=`ps aux|grep scripts|grep "/ffmpeg.players.sh"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done
  8 +nohup bash scripts/ffmpeg.players.sh >./objs/logs/ffmpeg-players.log 2>&1 &
  9 +ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动FFMPEG推送players流(播放器上演示用)失败"; exit $ret; fi
  10 +
  11 +echo "启动FFMPEG推送players流(播放器上演示用)成功"
  12 +exit 0
  1 +#!/bin/bash
  2 +src_dir='src'
  3 +if [[ ! -d $src_dir ]]; then echo "错误:必须在src同目录执行脚本"; exit 1; fi
  4 +
  5 +cmd="sudo ./objs/nginx/sbin/nginx"
  6 +echo "启动NGINX(HLS服务):$cmd"
  7 +pids=`ps aux|grep nginx|grep process|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; sudo kill -s SIGKILL $pid; done
  8 +sudo ./objs/nginx/sbin/nginx
  9 +ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动NGINX(HLS服务)失败"; exit $ret; fi
  10 +
  11 +echo "启动NGINX(HLS服务)成功"
  12 +exit 0
  1 +#!/bin/bash
  2 +src_dir='src'
  3 +if [[ ! -d $src_dir ]]; then echo "错误:必须在src同目录执行脚本"; exit 1; fi
  4 +
  5 +cmd="nohup ./objs/srs -c conf/srs.19350.conf > ./objs/logs/srs.19350.log 2>&1 &"
  6 +echo "启动SRS转发服务器:$cmd"
  7 +pids=`ps aux|grep srs|grep "./objs"|grep "srs.19350.conf"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done
  8 +nohup ./objs/srs -c conf/srs.19350.conf > ./objs/logs/srs.19350.log 2>&1 &
  9 +ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动SRS转发服务器失败"; exit $ret; fi
  10 +
  11 +echo "启动SRS转发服务器成功"
  12 +exit 0
  1 +#!/bin/bash
  2 +src_dir='src'
  3 +if [[ ! -d $src_dir ]]; then echo "错误:必须在src同目录执行脚本"; exit 1; fi
  4 +
  5 +cmd="nohup ./objs/srs -c conf/srs.conf >./objs/logs/srs.log 2>&1 &"
  6 +echo "启动SRS服务器:$cmd"
  7 +pids=`ps aux|grep srs|grep "./objs"|grep "srs.conf"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done
  8 +nohup ./objs/srs -c conf/srs.conf >./objs/logs/srs.log 2>&1 &
  9 +ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动SRS失败"; exit $ret; fi
  10 +
  11 +echo "启动SRS服务器成功"
  12 +exit 0
  1 +#!/bin/bash
  2 +src_dir='src'
  3 +if [[ ! -d $src_dir ]]; then echo "错误:必须在src同目录执行脚本"; exit 1; fi
  4 +
  5 +# step 1: build srs
  6 +bash scripts/_step.build.sh; ret=$?; if [[ 0 -ne $ret ]]; then exit $ret; fi
  7 +
  8 +echo "编译SRS成功"
1 -#!/bin/bash  
2 -src_dir='src'  
3 -if [[ ! -d $src_dir ]]; then echo "错误:必须在src同目录执行脚本"; exit 1; fi  
4 -  
5 -# step 1: build srs  
6 -echo "编译SRS"  
7 -./configure --with-ssl --with-hls --with-ffmpeg --with-http && make  
8 -ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:编译SRS失败"; exit $ret; fi  
9 -  
10 -# step 2: start srs  
11 -cmd="nohup ./objs/srs -c conf/srs.conf >./objs/logs/srs.log 2>&1 &"  
12 -echo "启动SRS服务器:$cmd"  
13 -pids=`ps aux|grep srs|grep "./objs"|grep "srs.conf"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done  
14 -nohup ./objs/srs -c conf/srs.conf >./objs/logs/srs.log 2>&1 &  
15 -ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动SRS失败"; exit $ret; fi  
16 -  
17 -# step 3(optinal): start srs listen at 19350 to forward to  
18 -cmd="nohup ./objs/srs -c conf/srs.19350.conf > ./objs/logs/srs.19350.log 2>&1 &"  
19 -echo "启动SRS转发服务器:$cmd"  
20 -pids=`ps aux|grep srs|grep "./objs"|grep "srs.19350.conf"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done  
21 -nohup ./objs/srs -c conf/srs.19350.conf > ./objs/logs/srs.19350.log 2>&1 &  
22 -ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动SRS转发服务器失败"; exit $ret; fi  
23 -  
24 -# step 4(optinal): start nginx for HLS  
25 -cmd="sudo ./objs/nginx/sbin/nginx"  
26 -echo "启动NGINX(HLS服务):$cmd"  
27 -pids=`ps aux|grep nginx|grep process|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; sudo kill -s SIGKILL $pid; done  
28 -sudo ./objs/nginx/sbin/nginx  
29 -ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动NGINX(HLS服务)失败"; exit $ret; fi  
30 -  
31 -# step 5(optinal): start http hooks for srs callback  
32 -cmd="nohup python ./research/api-server/server.py 8085 >./objs/logs/api-server.log 2>&1 &"  
33 -echo "启动API服务器:$cmd"  
34 -pids=`ps aux|grep python|grep research|grep "api-server"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done  
35 -nohup python ./research/api-server/server.py 8085 >./objs/logs/api-server.log 2>&1 &  
36 -ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动API服务器失败"; exit $ret; fi  
37 -  
38 -# step 6: publish demo live stream  
39 -cmd="nohup bash scripts/ffmpeg.demo.sh >./objs/logs/ffmpeg-demo.log 2>&1 &"  
40 -echo "启动FFMPEG推送demo流(播放器上12路演示):$cmd"  
41 -pids=`ps aux|grep scripts|grep "ffmpeg.demo.sh"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done  
42 -nohup bash scripts/ffmpeg.demo.sh >./objs/logs/ffmpeg-demo.log 2>&1 &  
43 -ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动FFMPEG推送demo流(播放器上12路演示)失败"; exit $ret; fi  
44 -  
45 -# step 7: publish players live stream  
46 -cmd="nohup bash scripts/ffmpeg.players.sh >./objs/logs/ffmpeg-players.log 2>&1 &"  
47 -echo "启动FFMPEG推送players流(播放器上演示用):$cmd"  
48 -pids=`ps aux|grep scripts|grep "ffmpeg.players.sh"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done  
49 -nohup bash scripts/ffmpeg.players.sh >./objs/logs/ffmpeg-players.log 2>&1 &  
50 -ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动FFMPEG推送players流(播放器上演示用)失败"; exit $ret; fi  
51 -  
52 -# step 8: add server ip to client hosts as demo.  
53 -cat<<END  
54 -SRS系统启动成功,您需要在客户端机器设置hosts后即可观看演示:  
55 - # edit the folowing file:  
56 - # linux: /etc/hosts  
57 - # windows: C:\Windows\System32\drivers\etc\hosts  
58 - # where server ip is 192.168.2.111  
59 - 192.168.2.111 demo.srs.com  
60 -默认的12路流演示:http://demo.srs.com/players  
61 -默认的播放器流演示:http://demo.srs.com/players/srs_player.html?vhost=players  
62 -推流(主播)应用演示:http://demo.srs.com/players/srs_publisher.html?vhost=players  
63 -视频会议(聊天室)应用演示:http://demo.srs.com/players/srs_chat.html?vhost=players  
64 -END  
@@ -3,51 +3,25 @@ src_dir='src' @@ -3,51 +3,25 @@ src_dir='src'
3 if [[ ! -d $src_dir ]]; then echo "错误:必须在src同目录执行脚本"; exit 1; fi 3 if [[ ! -d $src_dir ]]; then echo "错误:必须在src同目录执行脚本"; exit 1; fi
4 4
5 # step 1: build srs 5 # step 1: build srs
6 -echo "编译SRS"  
7 -./configure --with-ssl --with-hls --with-ffmpeg --with-http && make  
8 -ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:编译SRS失败"; exit $ret; fi 6 +#bash scripts/_step.build.sh; ret=$?; if [[ 0 -ne $ret ]]; then exit $ret; fi
9 7
10 # step 2: start srs 8 # step 2: start srs
11 -cmd="nohup ./objs/srs -c conf/srs.conf >./objs/logs/srs.log 2>&1 &"  
12 -echo "启动SRS服务器:$cmd"  
13 -pids=`ps aux|grep srs|grep "./objs"|grep "srs.conf"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done  
14 -nohup ./objs/srs -c conf/srs.conf >./objs/logs/srs.log 2>&1 &  
15 -ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动SRS失败"; exit $ret; fi  
16 -  
17 -## step 3(optinal): start srs listen at 19350 to forward to  
18 -#cmd="nohup ./objs/srs -c conf/srs.19350.conf > ./objs/logs/srs.19350.log 2>&1 &"  
19 -#echo "启动SRS转发服务器:$cmd"  
20 -#pids=`ps aux|grep srs|grep "./objs"|grep "srs.19350.conf"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done  
21 -#nohup ./objs/srs -c conf/srs.19350.conf > ./objs/logs/srs.19350.log 2>&1 &  
22 -#ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动SRS转发服务器失败"; exit $ret; fi 9 +bash scripts/_step.start.srs.sh; ret=$?; if [[ 0 -ne $ret ]]; then exit $ret; fi
  10 +
  11 +# step 3(optinal): start srs listen at 19350 to forward to
  12 +#bash scripts/_step.start.srs.19350.sh; ret=$?; if [[ 0 -ne $ret ]]; then exit $ret; fi
23 13
24 # step 4(optinal): start nginx for HLS 14 # step 4(optinal): start nginx for HLS
25 -cmd="sudo ./objs/nginx/sbin/nginx"  
26 -echo "启动NGINX(HLS服务):$cmd"  
27 -pids=`ps aux|grep nginx|grep process|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; sudo kill -s SIGKILL $pid; done  
28 -sudo ./objs/nginx/sbin/nginx  
29 -ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动NGINX(HLS服务)失败"; exit $ret; fi 15 +bash scripts/_step.start.nginx.sh; ret=$?; if [[ 0 -ne $ret ]]; then exit $ret; fi
30 16
31 # step 5(optinal): start http hooks for srs callback 17 # step 5(optinal): start http hooks for srs callback
32 -cmd="nohup python ./research/api-server/server.py 8085 >./objs/logs/api-server.log 2>&1 &"  
33 -echo "启动API服务器:$cmd"  
34 -pids=`ps aux|grep python|grep research|grep "api-server"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done  
35 -nohup python ./research/api-server/server.py 8085 >./objs/logs/api-server.log 2>&1 &  
36 -ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动API服务器失败"; exit $ret; fi  
37 -  
38 -## step 6: publish demo live stream  
39 -#cmd="nohup bash scripts/ffmpeg.demo.sh >./objs/logs/ffmpeg-demo.log 2>&1 &"  
40 -#echo "启动FFMPEG推送demo流(播放器上12路演示):$cmd"  
41 -#pids=`ps aux|grep scripts|grep "ffmpeg.demo.sh"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done  
42 -#nohup bash scripts/ffmpeg.demo.sh >./objs/logs/ffmpeg-demo.log 2>&1 &  
43 -#ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动FFMPEG推送demo流(播放器上12路演示)失败"; exit $ret; fi  
44 -##  
45 -## step 7: publish players live stream  
46 -#cmd="nohup bash scripts/ffmpeg.players.sh >./objs/logs/ffmpeg-players.log 2>&1 &"  
47 -#echo "启动FFMPEG推送players流(播放器上演示用):$cmd"  
48 -#pids=`ps aux|grep scripts|grep "ffmpeg.players.sh"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done  
49 -#nohup bash scripts/ffmpeg.players.sh >./objs/logs/ffmpeg-players.log 2>&1 &  
50 -#ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动FFMPEG推送players流(播放器上演示用)失败"; exit $ret; fi 18 +bash scripts/_step.start.api.server.sh; ret=$?; if [[ 0 -ne $ret ]]; then exit $ret; fi
  19 +
  20 +# step 6: publish demo live stream
  21 +#bash scripts/_step.start.ffmpeg.demo.sh; ret=$?; if [[ 0 -ne $ret ]]; then exit $ret; fi
  22 +
  23 +# step 7: publish players live stream
  24 +#bash scripts/_step.start.ffmpeg.players.sh; ret=$?; if [[ 0 -ne $ret ]]; then exit $ret; fi
51 25
52 # step 8: add server ip to client hosts as demo. 26 # step 8: add server ip to client hosts as demo.
53 cat<<END 27 cat<<END
  1 +#!/bin/bash
  2 +src_dir='src'
  3 +if [[ ! -d $src_dir ]]; then echo "错误:必须在src同目录执行脚本"; exit 1; fi
  4 +
  5 +# step 1: build srs
  6 +#bash scripts/_step.build.sh; ret=$?; if [[ 0 -ne $ret ]]; then exit $ret; fi
  7 +
  8 +# step 2: start srs
  9 +bash scripts/_step.start.srs.sh; ret=$?; if [[ 0 -ne $ret ]]; then exit $ret; fi
  10 +
  11 +# step 3(optinal): start srs listen at 19350 to forward to
  12 +bash scripts/_step.start.srs.19350.sh; ret=$?; if [[ 0 -ne $ret ]]; then exit $ret; fi
  13 +
  14 +# step 4(optinal): start nginx for HLS
  15 +bash scripts/_step.start.nginx.sh; ret=$?; if [[ 0 -ne $ret ]]; then exit $ret; fi
  16 +
  17 +# step 5(optinal): start http hooks for srs callback
  18 +bash scripts/_step.start.api.server.sh; ret=$?; if [[ 0 -ne $ret ]]; then exit $ret; fi
  19 +
  20 +# step 6: publish demo live stream
  21 +bash scripts/_step.start.ffmpeg.demo.sh; ret=$?; if [[ 0 -ne $ret ]]; then exit $ret; fi
  22 +
  23 +# step 7: publish players live stream
  24 +bash scripts/_step.start.ffmpeg.players.sh; ret=$?; if [[ 0 -ne $ret ]]; then exit $ret; fi
  25 +
  26 +# step 8: add server ip to client hosts as demo.
  27 +cat<<END
  28 +SRS系统启动成功,您需要在客户端机器设置hosts后即可观看演示:
  29 + # edit the folowing file:
  30 + # linux: /etc/hosts
  31 + # windows: C:\Windows\System32\drivers\etc\hosts
  32 + # where server ip is 192.168.2.111
  33 + 192.168.2.111 demo.srs.com
  34 +默认的12路流演示:http://demo.srs.com/players
  35 +默认的播放器流演示:http://demo.srs.com/players/srs_player.html?vhost=players
  36 +推流(主播)应用演示:http://demo.srs.com/players/srs_publisher.html?vhost=players
  37 +视频会议(聊天室)应用演示:http://demo.srs.com/players/srs_chat.html?vhost=players
  38 +END
@@ -21,11 +21,11 @@ pids=`ps aux|grep python|grep research|grep "api-server"|awk '{print $2}'`; for @@ -21,11 +21,11 @@ pids=`ps aux|grep python|grep research|grep "api-server"|awk '{print $2}'`; for
21 # step 6: publish demo live stream 21 # step 6: publish demo live stream
22 echo "停止FFMPEG推送demo流(播放器上12路演示)" 22 echo "停止FFMPEG推送demo流(播放器上12路演示)"
23 ps aux|grep scripts|grep "ffmpeg.demo.sh" 23 ps aux|grep scripts|grep "ffmpeg.demo.sh"
24 -pids=`ps aux|grep scripts|grep "ffmpeg.demo.sh"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done 24 +pids=`ps aux|grep scripts|grep "/ffmpeg.demo.sh"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done
25 25
26 # step 7: publish players live stream 26 # step 7: publish players live stream
27 echo "停止FFMPEG推送players流(播放器上演示用)" 27 echo "停止FFMPEG推送players流(播放器上演示用)"
28 ps aux|grep scripts|grep "ffmpeg.players.sh" 28 ps aux|grep scripts|grep "ffmpeg.players.sh"
29 -pids=`ps aux|grep scripts|grep "ffmpeg.players.sh"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done 29 +pids=`ps aux|grep scripts|grep "/ffmpeg.players.sh"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done
30 30
31 echo "SRS系统服务均已停止" 31 echo "SRS系统服务均已停止"