diff --git a/README.md b/README.md
index a0f59ebbf..a115097a0 100755
--- a/README.md
+++ b/README.md
@@ -15,7 +15,32 @@ who is the contributors:
1. contribute important features to srs.
2. the name of all contributors will send in the response of NetConnection.connect and metadata.
-### Usage
+### Usage(simple)
+step 1: get srs
+
+tar xf simple-rtmp-server-*.*.tar.gz +cd simple-rtmp-server-*.*/trunk ++or get the latest code:
+git clone https://github.com/winlinvip/simple-rtmp-server +cd simple-rtmp-server/trunk ++step 2: build and start srs all demo features.
+bash scripts/demo.sh ++step 3: srs live show: [http://demo.srs.com/players](http://demo.srs.com/players)
+# 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 ++ +### Usage(detail) step 1: build srs
tar xf simple-rtmp-server-*.*.tar.gz diff --git a/trunk/scripts/demo.sh b/trunk/scripts/demo.sh new file mode 100755 index 000000000..8c4ccea0c --- /dev/null +++ b/trunk/scripts/demo.sh @@ -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<./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<