From 20d1732ced9209097a6cd1f350ead83f3b7272a8 Mon Sep 17 00:00:00 2001 From: winlin Date: Fri, 27 Dec 2013 17:03:12 +0800 Subject: [PATCH] merge from wenjie, the bandwidth test feature. --- README.md | 1 + trunk/conf/srs.conf | 2 +- trunk/configure | 20 +- trunk/research/players/js/srs.bandwidth.js | 27 + trunk/research/players/srs_bwt.html | 127 ++- .../players/srs_bwt/.actionScriptProperties | 40 + trunk/research/players/srs_bwt/.project | 17 + .../players/srs_bwt/release/srs_bwt.swf | Bin 0 -> 2603 bytes .../srs_bwt/src/SrsClass/SrsElapsedTimer.as | 24 + .../srs_bwt/src/SrsClass/SrsSettings.as | 27 + trunk/research/players/srs_bwt/src/srs_bwt.as | 227 +++++ trunk/src/core/srs_core_bandwidth.cpp | 16 +- trunk/src/core/srs_core_protocol.cpp | 2 +- trunk/src/core/srs_core_rtmp.hpp | 460 +++++----- trunk/src/main/srs_main_bandcheck.cpp | 832 ++++++++++++++++++ trunk/src/srs/srs.upp | 1 + 16 files changed, 1577 insertions(+), 246 deletions(-) create mode 100755 trunk/research/players/js/srs.bandwidth.js create mode 100755 trunk/research/players/srs_bwt/.actionScriptProperties create mode 100755 trunk/research/players/srs_bwt/.project create mode 100755 trunk/research/players/srs_bwt/release/srs_bwt.swf create mode 100755 trunk/research/players/srs_bwt/src/SrsClass/SrsElapsedTimer.as create mode 100755 trunk/research/players/srs_bwt/src/SrsClass/SrsSettings.as create mode 100755 trunk/research/players/srs_bwt/src/srs_bwt.as mode change 100644 => 100755 trunk/src/core/srs_core_bandwidth.cpp mode change 100644 => 100755 trunk/src/core/srs_core_protocol.cpp mode change 100644 => 100755 trunk/src/core/srs_core_rtmp.hpp create mode 100755 trunk/src/main/srs_main_bandcheck.cpp diff --git a/README.md b/README.md index b0bb23c7d..7fb4df96f 100755 --- a/README.md +++ b/README.md @@ -278,6 +278,7 @@ usr sys idl wai hiq siq| read writ| recv send| in out | int csw * nginx v1.5.0: 139524 lines
### History +* v1.0, 2013-12-27, merge from wenjie, the bandwidth test feature. * v0.9, 2013-12-25, [v0.9](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.9) released. 20926 lines. * v0.9, 2013-12-25, fix the bitrate bug(in Bps), use enhanced microphone. * v0.9, 2013-12-22, demo video meeting or chat(srs+cherrypy+jquery+bootstrap). diff --git a/trunk/conf/srs.conf b/trunk/conf/srs.conf index 18482fbf8..232c1238e 100755 --- a/trunk/conf/srs.conf +++ b/trunk/conf/srs.conf @@ -223,7 +223,7 @@ vhost bandcheck.srs.com { enabled on; # the key for server to valid, # if invalid key, server disconnect and abort the bandwidth check. - key 35c9b402c12a7246868752e2878f7e0e; + key "35c9b402c12a7246868752e2878f7e0e"; # the interval in seconds for bandwidth check, # server donot allow new test request. # default: 30 diff --git a/trunk/configure b/trunk/configure index ba8b1b4fa..5be8cc473 100755 --- a/trunk/configure +++ b/trunk/configure @@ -47,22 +47,27 @@ echo "" >> $SRS_AUTO_HEADERS_H echo "generate Makefile" cat << END > ${SRS_MAKEFILE} -.PHONY: default help clean server _prepare_dir -default: server +.PHONY: default help clean server bandwidth _prepare_dir +default: server bandwidth help: - @echo "Usage: make ||" + @echo "Usage: make |||" @echo " help display this help menu" @echo " clean cleanup project" @echo " server build the srs(simple rtmp server) over st(state-threads)" + @echo " bandwidth build the bandwidth test client tool." clean: - (rm -f Makefile; cd ${SRS_OBJS}; rm -rf srs Makefile *.hpp src st_*_load) + (rm -f Makefile; cd ${SRS_OBJS}; rm -rf srs bandwidth Makefile *.hpp src st_*_load) server: _prepare_dir @echo "build the srs(simple rtmp server) over st(state-threads)" \$(MAKE) -f ${SRS_OBJS}/${SRS_MAKEFILE} srs +bandwidth: _prepare_dir + @echo "build the bandwidth test client tool" + \$(MAKE) -f ${SRS_OBJS}/${SRS_MAKEFILE} bandwidth + # the ./configure will generate it. _prepare_dir: @mkdir -p ${SRS_OBJS} @@ -87,7 +92,7 @@ GCC = g++ LINK = \$(GCC) AR = ar -.PHONY: default srs +.PHONY: default srs bandwidth default: @@ -124,12 +129,12 @@ CORE_OBJS="${MODULE_OBJS[@]}" MODULE_ID="MAIN" MODULE_DEPENDS=("CORE") ModuleLibIncs=(${LibSTRoot} ${SRS_OBJS}) -MODULE_FILES=("srs_main_server") +MODULE_FILES=("srs_main_server" "srs_main_bandcheck") MODULE_DIR="src/main" . auto/modules.sh MAIN_OBJS="${MODULE_OBJS[@].o}" # all main entrances -MAIN_ENTRANCES=("srs_main_server") +MAIN_ENTRANCES=("srs_main_server" "srs_main_bandcheck") # srs(simple rtmp server) over st(state-threads) ModuleLibFiles=(${LibSTfile}) @@ -143,6 +148,7 @@ else LINK_OPTIONS="-ldl" fi BUILD_KEY="srs" APP_MAIN="srs_main_server" APP_NAME="srs" SO_PATH="" . auto/apps.sh +BUILD_KEY="bandwidth" APP_MAIN="srs_main_bandcheck" APP_NAME="bandwidth" SO_PATH="" . auto/apps.sh echo 'configure ok! ' diff --git a/trunk/research/players/js/srs.bandwidth.js b/trunk/research/players/js/srs.bandwidth.js new file mode 100755 index 000000000..79c51e2f8 --- /dev/null +++ b/trunk/research/players/js/srs.bandwidth.js @@ -0,0 +1,27 @@ +// for bw to init url +// url: scheme://host:port/path?query#fragment +function srs_init_bwt(rtmp_url, hls_url) { + update_nav(); + + if (rtmp_url) { + //var query = parse_query_string(); + var search_filed = String(window.location.search).replace(" ", "").split("?")[1]; + $(rtmp_url).val("rtmp://" + window.location.host + ":" + 1935 + "/app?" + search_filed); + } + if (hls_url) { + $(hls_url).val(build_default_hls_url()); + } +} + +function srs_bwt_check_url(url) { + if (url.indexOf("key") != -1 && url.indexOf("vhost") != -1) { + return true; + } + + return false; +} + +function srs_bwt_build_default_url() { + var url_default = "rtmp://" + window.location.host + ":" + 1935 + "/app?key=35c9b402c12a7246868752e2878f7e0e&vhost=bandcheck.srs.com"; + return url_default; +} \ No newline at end of file diff --git a/trunk/research/players/srs_bwt.html b/trunk/research/players/srs_bwt.html index e12b64c58..3f68ea6b5 100755 --- a/trunk/research/players/srs_bwt.html +++ b/trunk/research/players/srs_bwt.html @@ -13,15 +13,112 @@ + @@ -44,6 +141,34 @@
+ +
+ URL: + + +
+ + +