winlin

refine hls m3u8 refresh interval and buffer time

@@ -536,6 +536,9 @@ @@ -536,6 +536,9 @@
536 srs_player = new SrsPlayer("player_id", srs_get_player_width(), srs_get_player_height()); 536 srs_player = new SrsPlayer("player_id", srs_get_player_width(), srs_get_player_height());
537 srs_player.on_player_ready = function() { 537 srs_player.on_player_ready = function() {
538 var buffer_time = 0.5; 538 var buffer_time = 0.5;
  539 + if (url.indexOf('.m3u8') > 0) {
  540 + buffer_time = 2;
  541 + }
539 542
540 if (query.buffer) { 543 if (query.buffer) {
541 for (var i = 0; i < bts.length - 1; i++) { 544 for (var i = 0; i < bts.length - 1; i++) {
@@ -110,7 +110,9 @@ package @@ -110,7 +110,9 @@ package
110 to = hls.duration * 1000 / hls.tsCount * m3u8_refresh_ratio; 110 to = hls.duration * 1000 / hls.tsCount * m3u8_refresh_ratio;
111 } 111 }
112 setTimeout(refresh_m3u8, to); 112 setTimeout(refresh_m3u8, to);
113 - log("m3u8 not changed, retry after " + to.toFixed(2) + "ms"); 113 + log("m3u8 not changed, retry after " + to.toFixed(2) + "ms, duration="
  114 + + hls.duration.toFixed(2) + "s, count=" + hls.tsCount.toFixed(0)
  115 + + ", refresh-ratio=" + m3u8_refresh_ratio.toFixed(2));
114 return; 116 return;
115 } 117 }
116 118
@@ -31,7 +31,7 @@ package @@ -31,7 +31,7 @@ package
31 public class Player 31 public class Player
32 { 32 {
33 // refresh every ts_fragment_seconds*M3u8RefreshRatio 33 // refresh every ts_fragment_seconds*M3u8RefreshRatio
34 - public static var M3u8RefreshRatio:Number = 0.5; 34 + public static var M3u8RefreshRatio:Number = 0.45;
35 35
36 // parse ts every this ms. 36 // parse ts every this ms.
37 public static var TsParseAsyncInterval:Number = 80; 37 public static var TsParseAsyncInterval:Number = 80;