From f3e5431d0fc21bee74e98da0ffe5a0b2eab0a45b Mon Sep 17 00:00:00 2001 From: winlin Date: Tue, 17 Mar 2015 21:12:30 +0800 Subject: [PATCH 1/3] check what a fuck os for some fresh. --- trunk/auto/depends.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/trunk/auto/depends.sh b/trunk/auto/depends.sh index 58db96402..6f246f8ff 100755 --- a/trunk/auto/depends.sh +++ b/trunk/auto/depends.sh @@ -368,6 +368,19 @@ if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then OSX_prepare; ret=$?; if [[ 0 -ne $ret ]]; then echo "OSX prepare failed, ret=$ret"; exit $ret; fi fi +##################################################################################### +# check the os. +##################################################################################### +# user must specifies something what a fuck, we suppport following os: +# centos/ubuntu/osx, +# embeded system, for example, mips or arm, +# export srs-librtmp +# others is invalid. +if [[ $OS_IS_UBUNTU = NO && $OS_IS_CENTOS = NO && $OS_IS_OSX = NO && $SRS_EMBEDED_CPU = NO && $SRS_EXPORT_LIBRTMP_PROJECT = NO ]]; then + echo "what a fuck, os not supported." + exit 1 +fi + ##################################################################################### # st-1.9 ##################################################################################### From a28c051c2c5cae14fe0156f52ee14b921cca8096 Mon Sep 17 00:00:00 2001 From: winlin Date: Tue, 17 Mar 2015 21:51:19 +0800 Subject: [PATCH 2/3] osx support build nginx and ffmpeg --- trunk/3rdparty/patches/5.x264.osx.gcc.patch | 19 +++++ trunk/auto/build_ffmpeg.sh | 1 + trunk/auto/depends.sh | 80 ++++++++++----------- 3 files changed, 60 insertions(+), 40 deletions(-) create mode 100644 trunk/3rdparty/patches/5.x264.osx.gcc.patch diff --git a/trunk/3rdparty/patches/5.x264.osx.gcc.patch b/trunk/3rdparty/patches/5.x264.osx.gcc.patch new file mode 100644 index 000000000..2b6411a41 --- /dev/null +++ b/trunk/3rdparty/patches/5.x264.osx.gcc.patch @@ -0,0 +1,19 @@ +*** configure Sat Nov 30 05:45:08 2013 +--- ../x264-snapshot-20131129-2245-stable-patch/configure Tue Mar 17 21:42:24 2015 +*************** +*** 466,472 **** + ;; + darwin*) + SYS="MACOSX" +! CFLAGS="$CFLAGS -falign-loops=16" + libm="-lm" + if [ "$pic" = "no" ]; then + cc_check "" -mdynamic-no-pic && CFLAGS="$CFLAGS -mdynamic-no-pic" +--- 466,472 ---- + ;; + darwin*) + SYS="MACOSX" +! CFLAGS="$CFLAGS" + libm="-lm" + if [ "$pic" = "no" ]; then + cc_check "" -mdynamic-no-pic && CFLAGS="$CFLAGS -mdynamic-no-pic" diff --git a/trunk/auto/build_ffmpeg.sh b/trunk/auto/build_ffmpeg.sh index 19f6f7245..8748224cd 100755 --- a/trunk/auto/build_ffmpeg.sh +++ b/trunk/auto/build_ffmpeg.sh @@ -79,6 +79,7 @@ else cd $ff_current_dir && rm -rf x264-snapshot-20131129-2245-stable && unzip -q ${ff_src_dir}/x264-snapshot-20131129-2245-stable.zip && cd x264-snapshot-20131129-2245-stable && + chmod +w configure && patch -p0 <../../../3rdparty/patches/5.x264.osx.gcc.patch && ./configure --prefix=${ff_release_dir} --disable-opencl --bit-depth=8 \ --enable-static --disable-avs --disable-swscale --disable-lavf \ --disable-ffms --disable-gpac && diff --git a/trunk/auto/depends.sh b/trunk/auto/depends.sh index 6f246f8ff..bbc738f04 100755 --- a/trunk/auto/depends.sh +++ b/trunk/auto/depends.sh @@ -97,6 +97,15 @@ function Ubuntu_prepare() sudo apt-get install -y --force-yes unzip; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi echo "install unzip success" fi + + if [ $SRS_NGINX = YES ]; then + if [[ ! -f /usr/include/pcre.h ]]; then + echo "install libpcre3-dev" + require_sudoer "sudo apt-get install -y --force-yes libpcre3-dev" + sudo apt-get install -y --force-yes libpcre3-dev; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi + echo "install libpcre3-dev success" + fi + fi if [ $SRS_FFMPEG_TOOL = YES ]; then autoconf --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then @@ -113,13 +122,6 @@ function Ubuntu_prepare() echo "install libtool success" fi - if [[ ! -f /usr/include/pcre.h ]]; then - echo "install libpcre3-dev" - require_sudoer "sudo apt-get install -y --force-yes libpcre3-dev" - sudo apt-get install -y --force-yes libpcre3-dev; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi - echo "install libpcre3-dev success" - fi - if [[ ! -f /usr/include/zlib.h ]]; then echo "install zlib1g-dev" require_sudoer "sudo apt-get install -y --force-yes zlib1g-dev" @@ -188,6 +190,15 @@ function Centos_prepare() sudo yum install -y unzip; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi echo "install unzip success" fi + + if [ $SRS_NGINX = YES ]; then + if [[ ! -f /usr/include/pcre.h ]]; then + echo "install pcre-devel" + require_sudoer "sudo yum install -y pcre-devel" + sudo yum install -y pcre-devel; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi + echo "install pcre-devel success" + fi + fi if [ $SRS_FFMPEG_TOOL = YES ]; then automake --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then @@ -211,13 +222,6 @@ function Centos_prepare() echo "install libtool success" fi - if [[ ! -f /usr/include/pcre.h ]]; then - echo "install pcre-devel" - require_sudoer "sudo yum install -y pcre-devel" - sudo yum install -y pcre-devel; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi - echo "install pcre-devel success" - fi - if [[ ! -f /usr/include/zlib.h ]]; then echo "install zlib-devel" require_sudoer "sudo yum install -y zlib-devel" @@ -271,14 +275,6 @@ function OSX_prepare() echo "OSX does not support stat, use --without-stat" exit 1 fi - if [ $SRS_FFMPEG_TOOL = YES ]; then - echo "OSX does not support ffmpeg, use --without-ffmpeg" - exit 1 - fi - if [ $SRS_NGINX = YES ]; then - echo "OSX does not support nginx, use --without-nginx" - exit 1 - fi fi brew --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then @@ -322,7 +318,16 @@ function OSX_prepare() brew install unzip; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi echo "install unzip success" fi - + + if [ $SRS_NGINX = YES ]; then + if [[ ! -f /usr/local/include/pcre.h ]]; then + echo "install pcre" + echo "brew install pcre" + brew install pcre; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi + echo "install pcre success" + fi + fi + if [ $SRS_FFMPEG_TOOL = YES ]; then automake --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then echo "install automake" @@ -338,25 +343,18 @@ function OSX_prepare() echo "install autoconf success" fi - libtool --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then + which libtool >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then echo "install libtool" echo "brew install libtool" brew install libtool; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi echo "install libtool success" fi - - if [[ ! -f /usr/include/pcre.h ]]; then - echo "install pcre-devel" - echo "brew install pcre-devel" - brew install pcre-devel; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi - echo "install pcre-devel success" - fi - - if [[ ! -f /usr/include/zlib.h ]]; then - echo "install zlib-devel" - echo "brew install zlib-devel" - brew install zlib-devel; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi - echo "install zlib-devel success" + + brew info zlib >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then + echo "install zlib" + echo "brew install zlib" + brew install zlib; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi + echo "install zlib success" fi fi @@ -448,8 +446,6 @@ if [ $SRS_HTTP_PARSER = YES ]; then rm -rf ${SRS_OBJS}/http-parser-2.1 && cd ${SRS_OBJS} && unzip -q ../3rdparty/http-parser-2.1.zip && cd http-parser-2.1 && patch -p0 < ../../3rdparty/patches/2.http.parser.patch && - sed -i "s/CPPFLAGS_FAST +=.*$/CPPFLAGS_FAST = \$\(CPPFLAGS_DEBUG\)/g" Makefile && - sed -i "s/CFLAGS_FAST =.*$/CFLAGS_FAST = \$\(CFLAGS_DEBUG\)/g" Makefile && make CC=${SrsArmCC} AR=${SrsArmAR} package && cd .. && rm -rf hp && ln -sf http-parser-2.1 hp && cd .. && touch ${SRS_OBJS}/_flag.st.hp.tmp @@ -517,7 +513,11 @@ if [ $__SRS_BUILD_NGINX = YES ]; then # srs will write ts/m3u8 file use current user, # nginx default use nobody, so cannot read the ts/m3u8 created by srs. cp ${SRS_OBJS}/nginx/conf/nginx.conf ${SRS_OBJS}/nginx/conf/nginx.conf.bk - sed -i "s/^.user nobody;/user `whoami`;/g" ${SRS_OBJS}/nginx/conf/nginx.conf + if [ $OS_IS_OSX = YES ]; then + sed -i '' "s/^.user nobody;/user `whoami`;/g" ${SRS_OBJS}/nginx/conf/nginx.conf + else + sed -i "s/^.user nobody;/user `whoami`;/g" ${SRS_OBJS}/nginx/conf/nginx.conf + fi fi # the demo dir. From ab673e1300dff9baf7a15746f05db9a44387eba3 Mon Sep 17 00:00:00 2001 From: winlin Date: Tue, 17 Mar 2015 22:06:59 +0800 Subject: [PATCH 3/3] for #155, osx(darwin) support demo with nginx and ffmpeg. 2.0.143. --- README.md | 1 + trunk/etc/init.d/srs-api | 10 +++++----- trunk/etc/init.d/srs-demo | 10 +++++----- trunk/etc/init.d/srs-demo-19350 | 10 +++++----- trunk/scripts/run.sh | 11 ++++++----- trunk/src/core/srs_core.hpp | 4 ++-- 6 files changed, 24 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 26d811509..92515ba65 100755 --- a/README.md +++ b/README.md @@ -566,6 +566,7 @@ Supported operating systems and hardware: ### SRS 2.0 history +* v2.0, 2015-03-17, for [#155](https://github.com/winlinvip/simple-rtmp-server/issues/155), osx(darwin) support demo with nginx and ffmpeg. 2.0.143. * v2.0, 2015-03-15, start [2.0release branch](https://github.com/winlinvip/simple-rtmp-server/tree/2.0release), 80773 lines. * v2.0, 2015-03-14, fix [#324](https://github.com/winlinvip/simple-rtmp-server/issues/324), support hstrs(http stream trigger rtmp source) edge mode. 2.0.140. * v2.0, 2015-03-14, for [#324](https://github.com/winlinvip/simple-rtmp-server/issues/324), support hstrs(http stream trigger rtmp source) origin mode. 2.0.139. diff --git a/trunk/etc/init.d/srs-api b/trunk/etc/init.d/srs-api index dba4dc524..8d1f56e52 100755 --- a/trunk/etc/init.d/srs-api +++ b/trunk/etc/init.d/srs-api @@ -19,11 +19,11 @@ CONFIG="8085" ######################################################################## # utility functions ######################################################################## -RED="\\e[31m" -GREEN="\\e[32m" -YELLOW="\\e[33m" -BLACK="\\e[0m" -POS="\\e[60G" +RED="\\033[31m" +GREEN="\\033[32m" +YELLOW="\\033[33m" +BLACK="\\033[0m" +POS="\\033[60G" ok_msg(){ echo -e "${1}${POS}${BLACK}[${GREEN} OK ${BLACK}]" diff --git a/trunk/etc/init.d/srs-demo b/trunk/etc/init.d/srs-demo index e7e2bd5eb..b02df8dd3 100755 --- a/trunk/etc/init.d/srs-demo +++ b/trunk/etc/init.d/srs-demo @@ -21,11 +21,11 @@ DEFAULT_LOG_FILE='./objs/srs.demo.log' ######################################################################## # utility functions ######################################################################## -RED="\\e[31m" -GREEN="\\e[32m" -YELLOW="\\e[33m" -BLACK="\\e[0m" -POS="\\e[60G" +RED="\\033[31m" +GREEN="\\033[32m" +YELLOW="\\033[33m" +BLACK="\\033[0m" +POS="\\033[60G" ok_msg() { echo -e "${1}${POS}${BLACK}[${GREEN} OK ${BLACK}]" diff --git a/trunk/etc/init.d/srs-demo-19350 b/trunk/etc/init.d/srs-demo-19350 index 704b89bdc..b23677758 100755 --- a/trunk/etc/init.d/srs-demo-19350 +++ b/trunk/etc/init.d/srs-demo-19350 @@ -21,11 +21,11 @@ DEFAULT_LOG_FILE='./objs/srs.demo.19350.log' ######################################################################## # utility functions ######################################################################## -RED="\\e[31m" -GREEN="\\e[32m" -YELLOW="\\e[33m" -BLACK="\\e[0m" -POS="\\e[60G" +RED="\\033[31m" +GREEN="\\033[32m" +YELLOW="\\033[33m" +BLACK="\\033[0m" +POS="\\033[60G" ok_msg() { echo -e "${1}${POS}${BLACK}[${GREEN} OK ${BLACK}]" diff --git a/trunk/scripts/run.sh b/trunk/scripts/run.sh index 4f4849547..81b65ff92 100755 --- a/trunk/scripts/run.sh +++ b/trunk/scripts/run.sh @@ -3,10 +3,10 @@ src_dir='src' if [[ ! -d $src_dir ]]; then echo "错误:必须在src同目录执行脚本"; exit 1; fi # linux shell color support. -RED="\\e[31m" -GREEN="\\e[32m" -YELLOW="\\e[33m" -BLACK="\\e[0m" +RED="\\033[31m" +GREEN="\\033[32m" +YELLOW="\\033[33m" +BLACK="\\033[0m" ./etc/init.d/srs-demo restart; ret=$?; if [[ 0 -ne $ret ]]; then echo "错误:启动SRS失败"; exit $ret; fi echo "启动SRS服务器成功" @@ -32,7 +32,8 @@ cat</dev/null 2>&1 +if [[ 0 -eq $? && `getenforce` != 'Disabled' ]]; then echo -e "${RED}请关闭selinux:${BLACK}"; echo -e "${RED} 打开配置文件:sudo vi /etc/sysconfig/selinux${BLACK}"; echo -e "${RED} 修改为:SELINUX=disabled${BLACK}"; diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp index ccbe0dedb..c6e90da72 100644 --- a/trunk/src/core/srs_core.hpp +++ b/trunk/src/core/srs_core.hpp @@ -31,11 +31,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // current release version #define VERSION_MAJOR 2 #define VERSION_MINOR 0 -#define VERSION_REVISION 142 +#define VERSION_REVISION 143 // server info. #define RTMP_SIG_SRS_KEY "SRS" -#define RTMP_SIG_SRS_CODE "OuXuli" +#define RTMP_SIG_SRS_CODE "ZhouGuowen" #define RTMP_SIG_SRS_ROLE "origin/edge server" #define RTMP_SIG_SRS_NAME RTMP_SIG_SRS_KEY"(Simple RTMP Server)" #define RTMP_SIG_SRS_URL_SHORT "github.com/winlinvip/simple-rtmp-server"