wenjiegit

add linux version of band check app; add web version of band check app

@@ -238,6 +238,7 @@ function srs_init(rtmp_url, hls_url, modal_player) { @@ -238,6 +238,7 @@ function srs_init(rtmp_url, hls_url, modal_player) {
238 $(modal_player).css("margin-left", "-" + srs_get_player_modal() / 2 +"px"); 238 $(modal_player).css("margin-left", "-" + srs_get_player_modal() / 2 +"px");
239 } 239 }
240 } 240 }
  241 +
241 // for the chat to init the publish url. 242 // for the chat to init the publish url.
242 function srs_init_publish(rtmp_url) { 243 function srs_init_publish(rtmp_url) {
243 update_nav(); 244 update_nav();
@@ -247,6 +248,34 @@ function srs_init_publish(rtmp_url) { @@ -247,6 +248,34 @@ function srs_init_publish(rtmp_url) {
247 } 248 }
248 } 249 }
249 250
  251 +// for bw to init url
  252 +// url: scheme://host:port/path?query#fragment
  253 +function srs_init_bwt(rtmp_url, hls_url) {
  254 + update_nav();
  255 +
  256 + if (rtmp_url) {
  257 + //var query = parse_query_string();
  258 + var search_filed = String(window.location.search).replace(" ", "").split("?")[1];
  259 + $(rtmp_url).val("rtmp://" + window.location.host + ":" + 1935 + "/app?" + search_filed);
  260 + }
  261 + if (hls_url) {
  262 + $(hls_url).val(build_default_hls_url());
  263 + }
  264 +}
  265 +
  266 +function srs_bwt_check_url(url) {
  267 + if (url.indexOf("key") != -1 && url.indexOf("vhost") != -1) {
  268 + return true;
  269 + }
  270 +
  271 + return false;
  272 +}
  273 +
  274 +function srs_bwt_build_default_url() {
  275 + var url_default = "rtmp://" + window.location.host + ":" + 1935 + "/app?key=35c9b402c12a7246868752e2878f7e0e&vhost=bandcheck.srs.com";
  276 + return url_default;
  277 +}
  278 +
250 /** 279 /**
251 * when publisher ready, init the page elements. 280 * when publisher ready, init the page elements.
252 */ 281 */
@@ -53,7 +53,7 @@ @@ -53,7 +53,7 @@
53 // get the vhost and port to set the default url. 53 // get the vhost and port to set the default url.
54 // for example: http://192.168.1.213/players/jwplayer6.html?port=1935&vhost=demo 54 // for example: http://192.168.1.213/players/jwplayer6.html?port=1935&vhost=demo
55 // url set to: rtmp://demo:1935/live/livestream 55 // url set to: rtmp://demo:1935/live/livestream
56 - srs_init("#txt_url", null, "#main_modal"); 56 + //srs_init("#txt_url", null, "#main_modal");
57 57
58 $("#main_modal").on("hide", function(){ 58 $("#main_modal").on("hide", function(){
59 osmf_play("http://localhost"); 59 osmf_play("http://localhost");
@@ -12,10 +12,106 @@ @@ -12,10 +12,106 @@
12 body{ 12 body{
13 padding-top: 55px; 13 padding-top: 55px;
14 } 14 }
  15 + #main_modal {
  16 + width: 600px;
  17 + margin-left: -300px;
  18 + }
  19 + #check_status {
  20 + margin-left: 20px;
  21 + margin-top: -55px;
  22 + }
  23 + #pb_buffer_bg {
  24 + margin-top: 40px;
  25 + margin-bottom: 10px;
  26 + }
15 </style> 27 </style>
16 <script type="text/javascript"> 28 <script type="text/javascript">
  29 +
  30 + function update_progress(percent) {
  31 + $("#progress_bar").width(percent);
  32 + }
  33 +
  34 + function progress_reset() {
  35 + $("#progress_bar").width("0%");
  36 + }
  37 +
  38 + function update_status(text) {
  39 + $("#check_status").text(text);
  40 + }
  41 +
  42 + function get_swf_width() {
  43 + return 1;
  44 + }
  45 +
  46 + function get_swf_height() {
  47 + return 1;
  48 + }
  49 +
  50 + function show_modal() {
  51 + $("#main_modal").modal({show:true, keyboard:false});
  52 + }
  53 +
  54 + function band_check(url) {
  55 +
  56 + // remove flash contet
  57 + var bw_div = $("<div/>");
  58 + $(bw_div).attr("id", "bw_div");
  59 + $("#bw_center").append(bw_div);
  60 +
  61 + var flashvars = {};
  62 + flashvars.url = url;
  63 + flashvars.update_progress = "update_progress";
  64 + flashvars.progress_reset = "progress_reset";
  65 + flashvars.update_status = "update_status";
  66 +
  67 + var params = {};
  68 + params.allowFullScreen = true;
  69 +
  70 + var attributes = {};
  71 +
  72 + swfobject.embedSWF(
  73 + "srs_bwt/release/srs_bwt.swf", "bw_div",
  74 + get_swf_width(), get_swf_height(),
  75 + "11.1.0", "js/AdobeFlashPlayerInstall.swf",
  76 + flashvars, params, attributes
  77 + );
  78 + }
  79 +
17 $(function(){ 80 $(function(){
18 update_nav(); 81 update_nav();
  82 + srs_init_bwt("#txt_url");
  83 +
  84 + var txt_input = $("#txt_url").val();
  85 + // if valid ?
  86 + if (!srs_bwt_check_url(txt_input)) {
  87 + $("#txt_url").val(srs_bwt_build_default_url());
  88 + }
  89 +
  90 + $("#main_modal").on(
  91 + "show",
  92 + function()
  93 + {
  94 + progress_reset();
  95 + update_status("");
  96 + var url = $("#txt_url").val();
  97 + /*!
  98 + url encode
  99 + */
  100 + url = escape(url);
  101 + band_check(url);
  102 + }
  103 + );
  104 +
  105 + $("#main_modal").on("hide", function(){
  106 + $("#bw_div").remove();
  107 + });
  108 +
  109 + $("#btn_play").click(
  110 + function()
  111 + {
  112 + $("#main_modal").modal({show:true, keyboard:false});
  113 + }
  114 + );
19 }); 115 });
20 </script> 116 </script>
21 </head> 117 </head>
@@ -39,6 +135,34 @@ @@ -39,6 +135,34 @@
39 </div> 135 </div>
40 </div> 136 </div>
41 <div class="container"> 137 <div class="container">
  138 +
  139 + <div class="form-inline">
  140 + URL:
  141 + <input type="text" id="txt_url" class="input-xxlarge" value="" placeholder="例如:rtmp://host:port/app?key=xx&vhost=yy"></input>
  142 + <button class="btn btn-primary" id="btn_play">开始测速</button>
  143 + </div>
  144 +
  145 + <div id="main_modal" class="modal hide fade">
  146 + <div class="modal-header">
  147 + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  148 + <h3>SRS Band Check</h3>
  149 + </div>
  150 + <div class="modal-body">
  151 + <div id="player"></div>
  152 + <div class="progress progress-striped active" id="pb_buffer_bg">
  153 + <div class="bar" style="width: 50%;" id="progress_bar"></div>
  154 + </div>
  155 + </div>
  156 +
  157 + <div class="modal-body" id="bw_center">
  158 + </div>
  159 + <span id="check_status1"><font ><strong id="check_status">status</strong></font> </span>
  160 +
  161 + <div class="modal-footer">
  162 + <button class="btn btn-primary" data-dismiss="modal" aria-hidden="true"> 关闭 </button>
  163 + </div>
  164 + </div>
  165 +
42 <hr> 166 <hr>
43 <footer> 167 <footer>
44 <p><a href="https://github.com/winlinvip/simple-rtmp-server">SRS Team &copy; 2013</a></p> 168 <p><a href="https://github.com/winlinvip/simple-rtmp-server">SRS Team &copy; 2013</a></p>
@@ -40,6 +40,8 @@ cat<<END @@ -40,6 +40,8 @@ cat<<END
40 http://$ip/players/srs_publisher.html?vhost=players 40 http://$ip/players/srs_publisher.html?vhost=players
41 视频会议(聊天室)应用演示: 41 视频会议(聊天室)应用演示:
42 http://$ip/players/srs_chat.html?vhost=players 42 http://$ip/players/srs_chat.html?vhost=players
  43 +默认的测速应用演示:
  44 + http://$ip/players/srs_bwt.html?key=35c9b402c12a7246868752e2878f7e0e&vhost=bandcheck.srs.com
43 END 45 END
44 echo -e "${GREEN}演示地址:${BLACK}" 46 echo -e "${GREEN}演示地址:${BLACK}"
45 echo -e "${RED} http://$ip${BLACK}" 47 echo -e "${RED} http://$ip${BLACK}"