mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
add scripts
This commit is contained in:
parent
8e95227ada
commit
0846f05e6a
6 changed files with 191 additions and 1 deletions
27
README.md
27
README.md
|
@ -15,7 +15,32 @@ who is the contributors: <br/>
|
||||||
1. contribute important features to srs. <br/>
|
1. contribute important features to srs. <br/>
|
||||||
2. the name of all contributors will send in the response of NetConnection.connect and metadata.
|
2. the name of all contributors will send in the response of NetConnection.connect and metadata.
|
||||||
|
|
||||||
### Usage
|
### Usage(simple)
|
||||||
|
<strong>step 1:</strong> get srs <br/>
|
||||||
|
<pre>
|
||||||
|
tar xf simple-rtmp-server-*.*.tar.gz
|
||||||
|
cd simple-rtmp-server-*.*/trunk
|
||||||
|
</pre>
|
||||||
|
or get the latest code:<br/>
|
||||||
|
<pre>
|
||||||
|
git clone https://github.com/winlinvip/simple-rtmp-server
|
||||||
|
cd simple-rtmp-server/trunk
|
||||||
|
</pre>
|
||||||
|
<strong>step 2:</strong> build and start srs all demo features.<br/>
|
||||||
|
<pre>
|
||||||
|
bash scripts/demo.sh
|
||||||
|
</pre>
|
||||||
|
<strong>step 3:</strong> srs live show: [http://demo.srs.com/players](http://demo.srs.com/players) <br/>
|
||||||
|
requires client add server ip to hosts. <br/>
|
||||||
|
<pre>
|
||||||
|
# edit the folowing file:
|
||||||
|
# linux: /etc/hosts
|
||||||
|
# windows: C:\Windows\System32\drivers\etc\hosts
|
||||||
|
# where server ip is 192.168.2.111
|
||||||
|
192.168.2.111 demo.srs.com
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
### Usage(detail)
|
||||||
<strong>step 1:</strong> build srs <br/>
|
<strong>step 1:</strong> build srs <br/>
|
||||||
<pre>
|
<pre>
|
||||||
tar xf simple-rtmp-server-*.*.tar.gz
|
tar xf simple-rtmp-server-*.*.tar.gz
|
||||||
|
|
64
trunk/scripts/demo.sh
Executable file
64
trunk/scripts/demo.sh
Executable file
|
@ -0,0 +1,64 @@
|
||||||
|
#!/bin/bash
|
||||||
|
src_dir='src'
|
||||||
|
if [[ ! -d $src_dir ]]; then echo "错误:必须在src同目录执行脚本"; exit 1; fi
|
||||||
|
|
||||||
|
# step 1: build srs
|
||||||
|
echo "编译SRS"
|
||||||
|
./configure --with-ssl --with-hls --with-ffmpeg --with-http && make
|
||||||
|
ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:编译SRS失败"; exit $ret; fi
|
||||||
|
|
||||||
|
# step 2: start srs
|
||||||
|
cmd="nohup ./objs/srs -c conf/srs.conf >./objs/logs/srs.log 2>&1 &"
|
||||||
|
echo "启动SRS服务器:$cmd"
|
||||||
|
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
|
||||||
|
nohup ./objs/srs -c conf/srs.conf >./objs/logs/srs.log 2>&1 &
|
||||||
|
ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动SRS失败"; exit $ret; fi
|
||||||
|
|
||||||
|
# step 3(optinal): start srs listen at 19350 to forward to
|
||||||
|
cmd="nohup ./objs/srs -c conf/srs.19350.conf > ./objs/logs/srs.19350.log 2>&1 &"
|
||||||
|
echo "启动SRS转发服务器:$cmd"
|
||||||
|
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
|
||||||
|
nohup ./objs/srs -c conf/srs.19350.conf > ./objs/logs/srs.19350.log 2>&1 &
|
||||||
|
ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动SRS转发服务器失败"; exit $ret; fi
|
||||||
|
|
||||||
|
# step 4(optinal): start nginx for HLS
|
||||||
|
cmd="sudo ./objs/nginx/sbin/nginx"
|
||||||
|
echo "启动NGINX(HLS服务):$cmd"
|
||||||
|
pids=`ps aux|grep nginx|grep process|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; sudo kill -s SIGKILL $pid; done
|
||||||
|
sudo ./objs/nginx/sbin/nginx
|
||||||
|
ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动NGINX(HLS服务)失败"; exit $ret; fi
|
||||||
|
|
||||||
|
# step 5(optinal): start http hooks for srs callback
|
||||||
|
cmd="nohup python ./research/api-server/server.py 8085 >./objs/logs/api-server.log 2>&1 &"
|
||||||
|
echo "启动API服务器:$cmd"
|
||||||
|
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
|
||||||
|
nohup python ./research/api-server/server.py 8085 >./objs/logs/api-server.log 2>&1 &
|
||||||
|
ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动API服务器失败"; exit $ret; fi
|
||||||
|
|
||||||
|
# step 6: publish demo live stream
|
||||||
|
cmd="nohup bash scripts/ffmpeg.demo.sh >./objs/logs/ffmpeg-demo.log 2>&1 &"
|
||||||
|
echo "启动FFMPEG推送demo流(播放器上12路演示):$cmd"
|
||||||
|
pids=`ps aux|grep scripts|grep "ffmpeg.demo.sh"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done
|
||||||
|
nohup bash scripts/ffmpeg.demo.sh >./objs/logs/ffmpeg-demo.log 2>&1 &
|
||||||
|
ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动FFMPEG推送demo流(播放器上12路演示)失败"; exit $ret; fi
|
||||||
|
|
||||||
|
# step 7: publish players live stream
|
||||||
|
cmd="nohup bash scripts/ffmpeg.players.sh >./objs/logs/ffmpeg-players.log 2>&1 &"
|
||||||
|
echo "启动FFMPEG推送players流(播放器上演示用):$cmd"
|
||||||
|
pids=`ps aux|grep scripts|grep "ffmpeg.players.sh"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done
|
||||||
|
nohup bash scripts/ffmpeg.players.sh >./objs/logs/ffmpeg-players.log 2>&1 &
|
||||||
|
ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动FFMPEG推送players流(播放器上演示用)失败"; exit $ret; fi
|
||||||
|
|
||||||
|
# step 8: add server ip to client hosts as demo.
|
||||||
|
cat<<END
|
||||||
|
SRS系统启动成功,您需要在客户端机器设置hosts后即可观看演示:
|
||||||
|
# edit the folowing file:
|
||||||
|
# linux: /etc/hosts
|
||||||
|
# windows: C:\Windows\System32\drivers\etc\hosts
|
||||||
|
# where server ip is 192.168.2.111
|
||||||
|
192.168.2.111 demo.srs.com
|
||||||
|
默认的12路流演示:http://demo.srs.com/players
|
||||||
|
默认的播放器流演示:http://demo.srs.com/players/srs_player.html?vhost=players
|
||||||
|
推流(主播)应用演示:http://demo.srs.com/players/srs_publisher.html?vhost=players
|
||||||
|
视频会议(聊天室)应用演示:http://demo.srs.com/players/srs_chat.html?vhost=players
|
||||||
|
END
|
56
trunk/scripts/dev.sh
Executable file
56
trunk/scripts/dev.sh
Executable file
|
@ -0,0 +1,56 @@
|
||||||
|
#!/bin/bash
|
||||||
|
src_dir='src'
|
||||||
|
if [[ ! -d $src_dir ]]; then echo "错误:必须在src同目录执行脚本"; exit 1; fi
|
||||||
|
|
||||||
|
# step 1: build srs
|
||||||
|
echo "编译SRS"
|
||||||
|
./configure --with-ssl --with-hls --with-ffmpeg --with-http && make
|
||||||
|
ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:编译SRS失败"; exit $ret; fi
|
||||||
|
|
||||||
|
# step 2: start srs
|
||||||
|
cmd="nohup ./objs/srs -c conf/srs.conf >./objs/logs/srs.log 2>&1 &"
|
||||||
|
echo "启动SRS服务器:$cmd"
|
||||||
|
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
|
||||||
|
nohup ./objs/srs -c conf/srs.conf >./objs/logs/srs.log 2>&1 &
|
||||||
|
ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动SRS失败"; exit $ret; fi
|
||||||
|
|
||||||
|
## step 3(optinal): start srs listen at 19350 to forward to
|
||||||
|
#cmd="nohup ./objs/srs -c conf/srs.19350.conf > ./objs/logs/srs.19350.log 2>&1 &"
|
||||||
|
#echo "启动SRS转发服务器:$cmd"
|
||||||
|
#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
|
||||||
|
#nohup ./objs/srs -c conf/srs.19350.conf > ./objs/logs/srs.19350.log 2>&1 &
|
||||||
|
#ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动SRS转发服务器失败"; exit $ret; fi
|
||||||
|
|
||||||
|
# step 4(optinal): start nginx for HLS
|
||||||
|
cmd="sudo ./objs/nginx/sbin/nginx"
|
||||||
|
echo "启动NGINX(HLS服务):$cmd"
|
||||||
|
pids=`ps aux|grep nginx|grep process|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; sudo kill -s SIGKILL $pid; done
|
||||||
|
sudo ./objs/nginx/sbin/nginx
|
||||||
|
ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动NGINX(HLS服务)失败"; exit $ret; fi
|
||||||
|
|
||||||
|
# step 5(optinal): start http hooks for srs callback
|
||||||
|
cmd="nohup python ./research/api-server/server.py 8085 >./objs/logs/api-server.log 2>&1 &"
|
||||||
|
echo "启动API服务器:$cmd"
|
||||||
|
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
|
||||||
|
nohup python ./research/api-server/server.py 8085 >./objs/logs/api-server.log 2>&1 &
|
||||||
|
ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动API服务器失败"; exit $ret; fi
|
||||||
|
|
||||||
|
## step 6: publish demo live stream
|
||||||
|
#cmd="nohup bash scripts/ffmpeg.demo.sh >./objs/logs/ffmpeg-demo.log 2>&1 &"
|
||||||
|
#echo "启动FFMPEG推送demo流(播放器上12路演示):$cmd"
|
||||||
|
#pids=`ps aux|grep scripts|grep "ffmpeg.demo.sh"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done
|
||||||
|
#nohup bash scripts/ffmpeg.demo.sh >./objs/logs/ffmpeg-demo.log 2>&1 &
|
||||||
|
#ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动FFMPEG推送demo流(播放器上12路演示)失败"; exit $ret; fi
|
||||||
|
##
|
||||||
|
## step 7: publish players live stream
|
||||||
|
#cmd="nohup bash scripts/ffmpeg.players.sh >./objs/logs/ffmpeg-players.log 2>&1 &"
|
||||||
|
#echo "启动FFMPEG推送players流(播放器上演示用):$cmd"
|
||||||
|
#pids=`ps aux|grep scripts|grep "ffmpeg.players.sh"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done
|
||||||
|
#nohup bash scripts/ffmpeg.players.sh >./objs/logs/ffmpeg-players.log 2>&1 &
|
||||||
|
#ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动FFMPEG推送players流(播放器上演示用)失败"; exit $ret; fi
|
||||||
|
|
||||||
|
# step 8: add server ip to client hosts as demo.
|
||||||
|
cat<<END
|
||||||
|
SRS系统开发环境启动成功
|
||||||
|
默认的播放器流演示:http://dev/players
|
||||||
|
END
|
7
trunk/scripts/ffmpeg.demo.sh
Executable file
7
trunk/scripts/ffmpeg.demo.sh
Executable file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
for((;;)); do \
|
||||||
|
./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.200kbps.768x320.flv \
|
||||||
|
-vcodec copy -acodec copy \
|
||||||
|
-f flv -y rtmp://127.0.0.1/live?vhost=demo.srs.com/livestream; \
|
||||||
|
sleep 1; \
|
||||||
|
done
|
7
trunk/scripts/ffmpeg.players.sh
Executable file
7
trunk/scripts/ffmpeg.players.sh
Executable file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
for((;;)); do \
|
||||||
|
./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.200kbps.768x320.flv \
|
||||||
|
-vcodec copy -acodec copy \
|
||||||
|
-f flv -y rtmp://127.0.0.1/live?vhost=players/livestream; \
|
||||||
|
sleep 1; \
|
||||||
|
done
|
31
trunk/scripts/stop.sh
Executable file
31
trunk/scripts/stop.sh
Executable file
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "停止SRS服务器"
|
||||||
|
ps aux|grep srs|grep "./objs"|grep "srs.conf"
|
||||||
|
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
|
||||||
|
|
||||||
|
echo "停止SRS转发服务器"
|
||||||
|
ps aux|grep srs|grep "./objs"|grep "srs.19350.conf"
|
||||||
|
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
|
||||||
|
|
||||||
|
# step 4(optinal): start nginx for HLS
|
||||||
|
echo "停止NGINX(HLS服务)"
|
||||||
|
ps aux|grep nginx|grep process
|
||||||
|
pids=`ps aux|grep nginx|grep process|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; sudo kill -s SIGKILL $pid; done
|
||||||
|
|
||||||
|
# step 5(optinal): start http hooks for srs callback
|
||||||
|
echo "停止API服务器"
|
||||||
|
ps aux|grep python|grep research|grep "api-server"
|
||||||
|
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
|
||||||
|
|
||||||
|
# step 6: publish demo live stream
|
||||||
|
echo "停止FFMPEG推送demo流(播放器上12路演示)"
|
||||||
|
ps aux|grep scripts|grep "ffmpeg.demo.sh"
|
||||||
|
pids=`ps aux|grep scripts|grep "ffmpeg.demo.sh"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done
|
||||||
|
|
||||||
|
# step 7: publish players live stream
|
||||||
|
echo "停止FFMPEG推送players流(播放器上演示用)"
|
||||||
|
ps aux|grep scripts|grep "ffmpeg.players.sh"
|
||||||
|
pids=`ps aux|grep scripts|grep "ffmpeg.players.sh"|awk '{print $2}'`; for pid in $pids; do echo "结束现有进程:$pid"; kill -s SIGKILL $pid; done
|
||||||
|
|
||||||
|
echo "SRS系统服务均已停止"
|
Loading…
Add table
Add a link
Reference in a new issue