diff --git a/README.md b/README.md index 6f67e4d69..08b2917c8 100755 --- a/README.md +++ b/README.md @@ -59,22 +59,28 @@ step 8: play live stream.
 rtmp url: rtmp://demo:1935/live/livestream
 m3u8 url: http://demo:80/live/livestream.m3u8
+for android: http://demo:80/live/livestream.html
 
step 9: play live stream auto transcoded
 rtmp url: rtmp://demo:1935/live/livestream_ld
 m3u8 url: http://demo:80/live/livestream_ld.m3u8
+for android: http://demo:80/live/livestream_ld.html
 rtmp url: rtmp://demo:1935/live/livestream_sd
 m3u8 url: http://demo:80/live/livestream_sd.m3u8
+for android: http://demo:80/live/livestream_sd.html
 
step 10: play live stream auto forwarded, the hls dir change to /forward
 rtmp url: rtmp://demo:19350/live/livestream
 m3u8 url: http://demo:80/forward/live/livestream.m3u8
+for android: http://demo:80/forward/live/livestream.html
 rtmp url: rtmp://demo:19350/live/livestream_ld
 m3u8 url: http://demo:80/forward/live/livestream_ld.m3u8
+for android: http://demo:80/forward/live/livestream_ld.html
 rtmp url: rtmp://demo:19350/live/livestream_sd
 m3u8 url: http://demo:80/forward/live/livestream_sd.m3u8
+for android: http://demo:80/forward/live/livestream_sd.html
 
### Architecture diff --git a/trunk/auto/depends.sh b/trunk/auto/depends.sh index 1024bdea7..cc873a377 100755 --- a/trunk/auto/depends.sh +++ b/trunk/auto/depends.sh @@ -3,6 +3,150 @@ # TODO: check gcc/g++ echo "check gcc/g++/gdb/make/openssl-devel" echo "depends tools are ok" +##################################################################################### +# for Ubuntu +##################################################################################### +function Ubuntu_prepare() +{ + uname -v|grep Ubuntu >/dev/null 2>&1 + ret=$?; if [[ 0 -ne $ret ]]; then + return; + fi + + echo "Ubuntu detected, install tools if needed" + + apt-cache show libpcre3; ret=$?; if [[ 0 -ne $ret ]]; then + echo "install libpcre3" + require_sudoer "sudo apt-get install -y libpcre3" + sudo apt-get install -y libpcre3 + echo "install libpcre3 success" + fi + + apt-cache show libpcre3-dev; ret=$?; if [[ 0 -ne $ret ]]; then + echo "install libpcre3-dev" + require_sudoer "sudo apt-get install -y libpcre3-dev" + sudo apt-get install -y libpcre3-dev + echo "install libpcre3-dev success" + fi + + apt-cache show zlib1g-dev; ret=$?; if [[ 0 -ne $ret ]]; then + echo "install zlib1g-dev" + require_sudoer "sudo apt-get install -y zlib1g-dev" + sudo apt-get install -y zlib1g-dev + echo "install zlib1g-dev success" + fi + + apt-cache show libfreetype6-dev; ret=$?; if [[ 0 -ne $ret ]]; then + echo "install libfreetype6-dev" + require_sudoer "sudo apt-get install -y libfreetype6-dev" + sudo apt-get install -y libfreetype6-dev + echo "install libfreetype6-dev success" + fi + + apt-cache show gcc; ret=$?; if [[ 0 -ne $ret ]]; then + echo "install gcc" + require_sudoer "sudo apt-get install -y gcc" + sudo apt-get install -y gcc + echo "install gcc success" + fi + + apt-cache show g++; ret=$?; if [[ 0 -ne $ret ]]; then + echo "install g++" + require_sudoer "sudo apt-get install -y g++" + sudo apt-get install -y g++ + echo "install g++ success" + fi + + apt-cache show make; ret=$?; if [[ 0 -ne $ret ]]; then + echo "install make" + require_sudoer "sudo apt-get install -y make" + sudo apt-get install -y make + echo "install make success" + fi + + apt-cache show autoconf; ret=$?; if [[ 0 -ne $ret ]]; then + echo "install autoconf" + require_sudoer "sudo apt-get install -y autoconf" + sudo apt-get install -y autoconf + echo "install autoconf success" + fi + + apt-cache show libtool; ret=$?; if [[ 0 -ne $ret ]]; then + echo "install libtool" + require_sudoer "sudo apt-get install -y libtool" + sudo apt-get install -y libtool + echo "install libtool success" + fi + + apt-cache show libssl-dev; ret=$?; if [[ 0 -ne $ret ]]; then + echo "install libssl-dev" + require_sudoer "sudo apt-get install -y libssl-dev" + sudo apt-get install -y libssl-dev + echo "install libssl-dev success" + fi +} +Ubuntu_prepare +##################################################################################### +# for Centos +##################################################################################### +function Centos_prepare() +{ + if [[ ! -f /etc/redhat-release ]]; then + return; + fi + + echo "Centos detected, install tools if needed" + + gcc --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then + echo "install gcc" + require_sudoer "sudo yum install -y gcc" + sudo yum install -y gcc + echo "install gcc success" + fi + + g++ --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then + echo "install gcc-c++" + require_sudoer "sudo yum install -y gcc-c++" + sudo yum install -y gcc-c++ + echo "install gcc-c++ success" + fi + + make --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then + echo "install make" + require_sudoer "sudo yum install -y make" + sudo yum install -y make + echo "install make success" + fi + + automake --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then + echo "install automake" + require_sudoer "sudo yum install -y automake" + sudo yum install -y automake + echo "install automake success" + fi + + autoconf --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then + echo "install autoconf" + require_sudoer "sudo yum install -y autoconf" + sudo yum install -y autoconf + echo "install autoconf success" + fi + + libtool --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then + echo "install libtool" + require_sudoer "sudo yum install -y libtool" + sudo yum install -y libtool + echo "install libtool success" + fi + + if [[ ! -d /usr/include/openssl ]]; then + echo "install openssl-devel" + require_sudoer "sudo yum install -y openssl-devel" + sudo yum install -y openssl-devel + echo "install openssl-devels success" + fi +} +Centos_prepare ##################################################################################### # st-1.9 @@ -48,6 +192,16 @@ fi ##################################################################################### # nginx for HLS, nginx-1.5.0 ##################################################################################### +function write_nginx_html5() +{ + cat<> ${html_file} + +END +} if [ $SRS_HLS = YES ]; then if [[ -f ${SRS_OBJS}/nginx/sbin/nginx ]]; then echo "nginx-1.5.7 is ok."; @@ -72,6 +226,14 @@ if [ $SRS_HLS = YES ]; then # create forward dir mkdir -p ${SRS_OBJS}/nginx/html/forward + + # generate default html pages for android. + html_file=${SRS_OBJS}/nginx/html/live/livestream.html && hls_stream=livestream.m3u8 && write_nginx_html5 + html_file=${SRS_OBJS}/nginx/html/live/livestream_ld.html && hls_stream=livestream_ld.m3u8 && write_nginx_html5 + html_file=${SRS_OBJS}/nginx/html/live/livestream_sd.html && hls_stream=livestream_sd.m3u8 && write_nginx_html5 + html_file=${SRS_OBJS}/nginx/html/forward/live/livestream.html && hls_stream=livestream.m3u8 && write_nginx_html5 + html_file=${SRS_OBJS}/nginx/html/forward/live/livestream_ld.html && hls_stream=livestream_ld.m3u8 && write_nginx_html5 + html_file=${SRS_OBJS}/nginx/html/forward/live/livestream_sd.html && hls_stream=livestream_sd.m3u8 && write_nginx_html5 fi if [ $SRS_HLS = YES ]; then @@ -87,6 +249,7 @@ if [ $SRS_HTTP = YES ]; then if [[ -f ${SRS_OBJS}/CherryPy-3.2.4/setup.py ]]; then echo "CherryPy-3.2.4 is ok."; else + require_sudoer "configure --with-http" echo "install CherryPy-3.2.4"; ( sudo rm -rf ${SRS_OBJS}/CherryPy-3.2.4 && cd ${SRS_OBJS} && diff --git a/trunk/conf/srs.conf b/trunk/conf/srs.conf index fdfe601f3..65411f6b0 100755 --- a/trunk/conf/srs.conf +++ b/trunk/conf/srs.conf @@ -85,9 +85,9 @@ vhost dev { hls_path ./objs/nginx/html; hls_fragment 5; hls_window 30; - forward 127.0.0.1:19350; + #forward 127.0.0.1:19350; http_hooks { - enabled on; + enabled off; on_connect http://127.0.0.1:8085/api/v1/clients; on_close http://127.0.0.1:8085/api/v1/clients; on_publish http://127.0.0.1:8085/api/v1/streams; @@ -96,7 +96,7 @@ vhost dev { on_stop http://127.0.0.1:8085/api/v1/sessions; } transcode { - enabled on; + enabled off; ffmpeg ./objs/ffmpeg/bin/ffmpeg; engine dev { enabled on; diff --git a/trunk/configure b/trunk/configure index 652d2fff1..85493c767 100755 --- a/trunk/configure +++ b/trunk/configure @@ -15,14 +15,15 @@ BLACK="\\e[0m" # parse user options. . auto/options.sh -# if specifies http, requires sudo to install the CherryPy. -if [ $SRS_HTTP = YES ]; then +function require_sudoer() +{ sudo echo "" >/dev/null 2>&1 - ret=$?; if [[ 0 -ne $ret ]]; then echo - "--with-http requires sudoer, ret=$ret"; + + ret=$?; if [[ 0 -ne $ret ]]; then + echo "\"$1\" require sudoer failed. ret=$ret"; exit $ret; fi -fi +} # clean the exists if [[ -f Makefile ]]; then