From 152082d3525c9627c5b1c435ffe3d05807148784 Mon Sep 17 00:00:00 2001 From: Anton Schubert Date: Fri, 22 Dec 2017 21:18:13 +0100 Subject: update clapprio and plugins --- template/assemblies/player/dash.phtml | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) (limited to 'template/assemblies/player/dash.phtml') diff --git a/template/assemblies/player/dash.phtml b/template/assemblies/player/dash.phtml index 7048006..57f2ddc 100644 --- a/template/assemblies/player/dash.phtml +++ b/template/assemblies/player/dash.phtml @@ -1,4 +1,4 @@ - + @@ -19,8 +19,21 @@ shakaConfiguration: { abr: { defaultBandwidthEstimate: 600000 - }, + } }, + levelSelectorConfig: { + labels: { + 7: 'HD', + 8: 'SD', + 9: 'Slides', + 10: 'HD', + 11: 'SD', + 12: 'Slides', + 13: 'HD', + 14: 'SD', + 15: 'Slides', + } + }, autoPlay: true, parentId: '#player' }); @@ -35,11 +48,4 @@ body.room .player-wrap.tab-content { padding: 0; } -.level_selector[data-level-selector] { - margin-top: 7px; -} -.level_selector[data-level-selector] button, -.level_selector[data-level-selector] li { - font-size: 12px; -} -- cgit v1.2.3 From 80f79007a7ddcfe51b441ff601bdc65e4fa2d40e Mon Sep 17 00:00:00 2001 From: Anton Schubert Date: Fri, 22 Dec 2017 22:57:10 +0100 Subject: try to increase player robustness --- template/assemblies/player/dash.phtml | 36 +++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) (limited to 'template/assemblies/player/dash.phtml') diff --git a/template/assemblies/player/dash.phtml b/template/assemblies/player/dash.phtml index 57f2ddc..9ca654b 100644 --- a/template/assemblies/player/dash.phtml +++ b/template/assemblies/player/dash.phtml @@ -17,23 +17,27 @@ width: "100%", plugins: [DashShakaPlayback, LevelSelector, AudioSelector], shakaConfiguration: { - abr: { - defaultBandwidthEstimate: 600000 - } + abr: { + defaultBandwidthEstimate: 600000 + }, + streaming: { + rebufferingGoal: 12, + jumpLargeGaps: true + } + }, + levelSelectorConfig: { + labels: { + 7: 'HD', + 8: 'SD', + 9: 'Slides', + 10: 'HD', + 11: 'SD', + 12: 'Slides', + 13: 'HD', + 14: 'SD', + 15: 'Slides', + } }, - levelSelectorConfig: { - labels: { - 7: 'HD', - 8: 'SD', - 9: 'Slides', - 10: 'HD', - 11: 'SD', - 12: 'Slides', - 13: 'HD', - 14: 'SD', - 15: 'Slides', - } - }, autoPlay: true, parentId: '#player' }); -- cgit v1.2.3 From 317f94d5e3c80f5b342208bad5192a0139a398ea Mon Sep 17 00:00:00 2001 From: Anton Schubert Date: Sat, 23 Dec 2017 21:59:23 +0100 Subject: update adaptive player plugins for better hls --- template/assemblies/player/dash.phtml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'template/assemblies/player/dash.phtml') diff --git a/template/assemblies/player/dash.phtml b/template/assemblies/player/dash.phtml index 9ca654b..54f685c 100644 --- a/template/assemblies/player/dash.phtml +++ b/template/assemblies/player/dash.phtml @@ -11,9 +11,9 @@ interference with the new dash-player. --> -- cgit v1.2.3 From d29fa327630533e31a0b7bdea3c8bc25ef19e5ac Mon Sep 17 00:00:00 2001 From: Anton Schubert Date: Thu, 28 Dec 2017 11:12:54 +0100 Subject: increase default bandwidth estimate for dash player to select sd quality initially --- template/assemblies/player/dash.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'template/assemblies/player/dash.phtml') diff --git a/template/assemblies/player/dash.phtml b/template/assemblies/player/dash.phtml index 3ad61fd..ddfc48a 100644 --- a/template/assemblies/player/dash.phtml +++ b/template/assemblies/player/dash.phtml @@ -43,7 +43,7 @@ plugins: [DashShakaPlayback, LevelSelector, AudioSelector], shakaConfiguration: { abr: { - defaultBandwidthEstimate: 600000 + defaultBandwidthEstimate: 1000000 }, streaming: { rebufferingGoal: 12, -- cgit v1.2.3 From 870bacae02c922c795b2af4e39839c279168768b Mon Sep 17 00:00:00 2001 From: Anton Schubert Date: Thu, 28 Dec 2017 12:27:51 +0100 Subject: serve simple webm as fallback for multiquality player --- template/assemblies/player/dash.phtml | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'template/assemblies/player/dash.phtml') diff --git a/template/assemblies/player/dash.phtml b/template/assemblies/player/dash.phtml index ddfc48a..f447c09 100644 --- a/template/assemblies/player/dash.phtml +++ b/template/assemblies/player/dash.phtml @@ -36,9 +36,9 @@ }); } - var createPlayer = function(url) { - var player = new Clappr.Player({ - source: url, + var createPlayer = function(sources) { + return new Clappr.Player({ + sources: sources, width: "100%", plugins: [DashShakaPlayback, LevelSelector, AudioSelector], shakaConfiguration: { @@ -74,12 +74,24 @@ }); } - // Detect WebM capability, Select relay, Create player - var hasWebM = document.createElement('video').canPlayType('video/webm') != ""; - var cdnUrl = hasWebM ? 'getDashManifestUrl())?>' : 'getHLSPlaylistUrl())?>'; - selectRelay(cdnUrl, function(relayUrl) { - createPlayer(relayUrl); - }); + var hasMSE = 'MediaSource' in window, + hasWebM = document.createElement('video').canPlayType('video/webm') != "", + nativeHLS = document.createElement('video').canPlayType('application/vnd.apple.mpegURL') != ""; + + // Play Multiquality only if supported + if (hasMSE || nativeHLS) { + // Detect WebM capability, Select relay, Create player + var cdnUrl = hasWebM ? 'getDashManifestUrl())?>' : 'getHLSPlaylistUrl())?>'; + selectRelay(cdnUrl, function(relayUrl) { + createPlayer([{source: relayUrl}]); + }); + } else { + // Default to simple WebM playback + var player = createPlayer([{ + source: "getVideoUrl('webm', 'hd'))?>", + mimeType: "video/webm" + }]); + } }()); -- cgit v1.2.3 From 080c1d085e4311b16ba7cfec47bddb9d1dc64243 Mon Sep 17 00:00:00 2001 From: Anton Schubert Date: Sat, 30 Dec 2017 02:55:57 +0100 Subject: explicitely require vp9 + vorbis for dash playback --- template/assemblies/player/dash.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'template/assemblies/player/dash.phtml') diff --git a/template/assemblies/player/dash.phtml b/template/assemblies/player/dash.phtml index f447c09..a5344c7 100644 --- a/template/assemblies/player/dash.phtml +++ b/template/assemblies/player/dash.phtml @@ -75,7 +75,7 @@ } var hasMSE = 'MediaSource' in window, - hasWebM = document.createElement('video').canPlayType('video/webm') != "", + hasWebM = document.createElement('video').canPlayType('video/webm; codecs=vp9,vorbis') != "", nativeHLS = document.createElement('video').canPlayType('application/vnd.apple.mpegURL') != ""; // Play Multiquality only if supported -- cgit v1.2.3 From f36367abd9b1537b3b01463347d01b186844fbef Mon Sep 17 00:00:00 2001 From: Anton Schubert Date: Sat, 30 Dec 2017 17:51:44 +0100 Subject: update shaka-player to 2.3.0, improve source-selection code for multiquality player --- template/assemblies/player/dash.phtml | 56 ++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 21 deletions(-) (limited to 'template/assemblies/player/dash.phtml') diff --git a/template/assemblies/player/dash.phtml b/template/assemblies/player/dash.phtml index a5344c7..24a3df6 100644 --- a/template/assemblies/player/dash.phtml +++ b/template/assemblies/player/dash.phtml @@ -25,9 +25,7 @@ setTimeout(selectRelay.bind(null, url, cb), 2000); console.log("selected relay", relay); - var proto = url.match(/^https?:\/\//), - path = "/" + url.split("/").slice(3).join("/"); - cb(proto + relay + path) + cb(relay); }, error: function(err) { console.error("Error while selecting relay: ", err.status, err.statusText) @@ -36,6 +34,12 @@ }); } + var getRelayUrl = function(relay, cdnUrl) { + var proto = cdnUrl.match(/^https?:\/\//), + path = "/" + cdnUrl.split("/").slice(3).join("/"); + return proto + relay + path; + } + var createPlayer = function(sources) { return new Clappr.Player({ sources: sources, @@ -47,7 +51,12 @@ }, streaming: { rebufferingGoal: 12, - jumpLargeGaps: true + jumpLargeGaps: true, + + // Todo: handle streaming failure + // failureCallback: function() { + // console.log("streaming failure callback", arguments) + // } } }, levelSelectorConfig: { @@ -74,24 +83,29 @@ }); } - var hasMSE = 'MediaSource' in window, - hasWebM = document.createElement('video').canPlayType('video/webm; codecs=vp9,vorbis') != "", - nativeHLS = document.createElement('video').canPlayType('application/vnd.apple.mpegURL') != ""; - - // Play Multiquality only if supported - if (hasMSE || nativeHLS) { - // Detect WebM capability, Select relay, Create player - var cdnUrl = hasWebM ? 'getDashManifestUrl())?>' : 'getHLSPlaylistUrl())?>'; - selectRelay(cdnUrl, function(relayUrl) { - createPlayer([{source: relayUrl}]); - }); - } else { - // Default to simple WebM playback - var player = createPlayer([{ + selectRelay("getDashManifestUrl())?>", function(relay) { + // WebM fallback + var sources = [{ source: "getVideoUrl('webm', 'hd'))?>", - mimeType: "video/webm" - }]); - } + }]; + + // HLS playlist + var hasMSE = "MediaSource" in window; + if (hasMSE || document.createElement('video').canPlayType('application/vnd.apple.mpegURL') != "") { + sources.unshift({ + source: "getHLSPlaylistUrl())?>" + }); + } + + // VP9 dash player + if (hasMSE && MediaSource.isTypeSupported('video/webm; codecs="vp9,vorbis"')) { + sources.unshift({ + source: "getDashManifestUrl())?>" + }); + } + + createPlayer(sources); + }); }()); -- cgit v1.2.3