Video Embed & Thumbnail Generator - Version 4.6.26

Version Description

  • December 28, 2020 =
  • Added option to disable shortcode URL rewriting if WordPress doesn't know your videos are hosted on a CDN.
  • Added playsinline attribute to Video.js videos to allow iPhones to play videos inline on web pages.
  • Added filter to manually rewrite shortcode URLs.
  • Changed code that caused fatal error 'Can't use function return value in write context' on PHP versions before 5.5
  • Made gallery thumbnail images responsive.
  • Stopped using deprecated $user_ID global.
  • Fixed bug that crashed WordPress Default player if text tracks were available but no default track was set.
  • Fixed bugs that caused FFMPEG errors if application path contained a space.
Download this release

Release Info

Developer kylegilman
Plugin Icon 128x128 Video Embed & Thumbnail Generator
Version 4.6.26
Comparing to
See all releases

Code changes from version 4.6.25 to 4.6.26

Files changed (55) hide show
  1. css/kgvid_styles.css +9 -1
  2. flash/StrobeMediaPlayback.swf +0 -0
  3. flash/expressInstall.swf +0 -0
  4. flash/skin/kg_skin.xml +7 -7
  5. index.html +12 -12
  6. js/jquery.simplemodal.1.4.5.min.js +7 -7
  7. js/kgvid_video_embed.js +9 -5
  8. js/mejs-source-chooser.js +271 -271
  9. js/mejs-speed.js +174 -174
  10. js/mep-feature-sourcechooser.js +167 -167
  11. js/mep-speed.js +170 -170
  12. languages/video-embed-thumbnail-generator-bg_BG.po +2355 -2355
  13. license.txt +278 -278
  14. readme.txt +495 -484
  15. uninstall.php +23 -23
  16. video-embed-thumbnail-generator.php +62 -35
  17. video-js/font/VideoJS.eot +0 -0
  18. video-js/font/VideoJS.svg +102 -102
  19. video-js/font/VideoJS.ttf +0 -0
  20. video-js/font/VideoJS.woff +0 -0
  21. video-js/kg-video-js-skin.css +106 -106
  22. video-js/lang/ar.js +33 -33
  23. video-js/lang/ba.js +25 -25
  24. video-js/lang/bg.js +25 -25
  25. video-js/lang/ca.js +25 -25
  26. video-js/lang/cs.js +25 -25
  27. video-js/lang/da.js +25 -25
  28. video-js/lang/de.js +39 -39
  29. video-js/lang/el.js +39 -39
  30. video-js/lang/en.js +39 -39
  31. video-js/lang/es.js +25 -25
  32. video-js/lang/fa.js +25 -25
  33. video-js/lang/fi.js +25 -25
  34. video-js/lang/fr.js +39 -39
  35. video-js/lang/hr.js +25 -25
  36. video-js/lang/hu.js +25 -25
  37. video-js/lang/it.js +25 -25
  38. video-js/lang/ja.js +25 -25
  39. video-js/lang/ko.js +25 -25
  40. video-js/lang/nb.js +25 -25
  41. video-js/lang/nl.js +36 -36
  42. video-js/lang/nn.js +25 -25
  43. video-js/lang/pl.js +33 -33
  44. video-js/lang/pt-BR.js +25 -25
  45. video-js/lang/ru.js +39 -39
  46. video-js/lang/sr.js +25 -25
  47. video-js/lang/sv.js +25 -25
  48. video-js/lang/tr.js +33 -33
  49. video-js/lang/uk.js +39 -39
  50. video-js/lang/vi.js +25 -25
  51. video-js/lang/zh-CN.js +26 -26
  52. video-js/lang/zh-TW.js +39 -39
  53. video-js/video-quality-selector-license.txt +20 -20
  54. video-js/video-quality-selector.js +458 -458
  55. video-js/video.js +18 -18
css/kgvid_styles.css CHANGED
@@ -299,7 +299,8 @@ span.kgvid_facebook_icon_holder {
299
  }
300
 
301
  .kgvid_video_gallery_thumb {
302
- position: relative;
 
303
  vertical-align: bottom;
304
  display:inline-block;
305
  cursor: pointer !important;
@@ -315,6 +316,13 @@ span.kgvid_facebook_icon_holder {
315
  object-fit: cover;
316
  }
317
 
 
 
 
 
 
 
 
318
  .kgvid_video_gallery_thumb .titlebackground {
319
  position:absolute;
320
  bottom:10px;
299
  }
300
 
301
  .kgvid_video_gallery_thumb {
302
+ position: relative;
303
+ max-width:100%;
304
  vertical-align: bottom;
305
  display:inline-block;
306
  cursor: pointer !important;
316
  object-fit: cover;
317
  }
318
 
319
+ .kgvid_video_gallery_thumb .mejs-overlay-button {
320
+ position: absolute;
321
+ top: 50%;
322
+ left: 50%;
323
+ transform-origin: 0 0;
324
+ }
325
+
326
  .kgvid_video_gallery_thumb .titlebackground {
327
  position:absolute;
328
  bottom:10px;
flash/StrobeMediaPlayback.swf CHANGED
File without changes
flash/expressInstall.swf CHANGED
File without changes
flash/skin/kg_skin.xml CHANGED
@@ -1,8 +1,8 @@
1
- <skin>
2
- <elements basePath="skin/images/">
3
- <element id="controlBarBackdrop" src="backDrop_center.png"/>
4
- <element id = "playButtonOverlayNormal" src = "PlayNormal.png"/>
5
- <element id = "playButtonOverlayOver" src = "Play_Over.png"/>
6
- <element id = "playButtonOverlayDown" src = "Play_Down.png"/>
7
- </elements>
8
  </skin>
1
+ <skin>
2
+ <elements basePath="skin/images/">
3
+ <element id="controlBarBackdrop" src="backDrop_center.png"/>
4
+ <element id = "playButtonOverlayNormal" src = "PlayNormal.png"/>
5
+ <element id = "playButtonOverlayOver" src = "Play_Over.png"/>
6
+ <element id = "playButtonOverlayDown" src = "Play_Down.png"/>
7
+ </elements>
8
  </skin>
index.html CHANGED
@@ -1,12 +1,12 @@
1
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2
- <HTML>
3
-
4
- <HEAD>
5
- <TITLE>Access Denied</TITLE>
6
- </HEAD>
7
-
8
- <BODY>
9
- <br/><b>This folder is not web accessible.</b><br/>
10
- </BODY>
11
-
12
- </HTML>
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2
+ <HTML>
3
+
4
+ <HEAD>
5
+ <TITLE>Access Denied</TITLE>
6
+ </HEAD>
7
+
8
+ <BODY>
9
+ <br/><b>This folder is not web accessible.</b><br/>
10
+ </BODY>
11
+
12
+ </HTML>
js/jquery.simplemodal.1.4.5.min.js CHANGED
@@ -1,7 +1,7 @@
1
- /*
2
- * SimpleModal 1.4.5 - jQuery Plugin
3
- * http://simplemodal.com/
4
- * Copyright (c) 2013 Eric Martin
5
- * Licensed under MIT and GPL
6
- */
7
- (function(e){if(typeof define==="function"&&define.amd){define(["jquery"],e)}else{e(jQuery)}})(function(e){var t=[],n=e(document),r=navigator.userAgent.toLowerCase(),i=e(window),s=[];var o={ieQuirks:null,msie:/msie/.test(r)&&!/opera/.test(r),opera:/opera/.test(r)};o.ie6=o.msie&&/msie 6./.test(r)&&typeof window["XMLHttpRequest"]!=="object";o.ie7=o.msie&&/msie 7.0/.test(r);o.boxModel=document.compatMode==="CSS1Compat";e.modal=function(t,n){return e.modal.impl.init(t,n)};e.modal.close=function(){e.modal.impl.close()};e.modal.focus=function(t){e.modal.impl.focus(t)};e.modal.setContainerDimensions=function(){e.modal.impl.setContainerDimensions()};e.modal.setPosition=function(){e.modal.impl.setPosition()};e.modal.update=function(t,n){e.modal.impl.update(t,n)};e.fn.modal=function(t){return e.modal.impl.init(this,t)};e.modal.defaults={appendTo:"body",focus:true,opacity:50,overlayId:"simplemodal-overlay",overlayCss:{},containerId:"simplemodal-container",containerCss:{},dataId:"simplemodal-data",dataCss:{},minHeight:null,minWidth:null,maxHeight:null,maxWidth:null,autoResize:false,autoPosition:true,zIndex:1e3,close:true,closeHTML:'<a class="modalCloseImg" title="Close"></a>',closeClass:"simplemodal-close",escClose:true,overlayClose:false,fixed:true,position:null,persist:false,modal:true,onOpen:null,onShow:null,onClose:null};e.modal.impl={d:{},init:function(t,n){var r=this;if(r.d.data){return false}o.ieQuirks=o.msie&&!o.boxModel;r.o=e.extend({},e.modal.defaults,n);r.zIndex=r.o.zIndex;r.occb=false;if(typeof t==="object"){t=t instanceof e?t:e(t);r.d.placeholder=false;if(t.parent().parent().size()>0){t.before(e("<span></span>").attr("id","simplemodal-placeholder").css({display:"none"}));r.d.placeholder=true;r.display=t.css("display");if(!r.o.persist){r.d.orig=t.clone(true)}}}else if(typeof t==="string"||typeof t==="number"){t=e("<div></div>").html(t)}else{alert("SimpleModal Error: Unsupported data type: "+typeof t);return r}r.create(t);t=null;r.open();if(e.isFunction(r.o.onShow)){r.o.onShow.apply(r,[r.d])}return r},create:function(n){var r=this;r.getDimensions();if(r.o.modal&&o.ie6){r.d.iframe=e('<iframe src="javascript:false;"></iframe>').css(e.extend(r.o.iframeCss,{display:"none",opacity:0,position:"fixed",height:s[0],width:s[1],zIndex:r.o.zIndex,top:0,left:0})).appendTo(r.o.appendTo)}r.d.overlay=e("<div></div>").attr("id",r.o.overlayId).addClass("simplemodal-overlay").css(e.extend(r.o.overlayCss,{display:"none",opacity:r.o.opacity/100,height:r.o.modal?t[0]:0,width:r.o.modal?t[1]:0,position:"fixed",left:0,top:0,zIndex:r.o.zIndex+1})).appendTo(r.o.appendTo);r.d.container=e("<div></div>").attr("id",r.o.containerId).addClass("simplemodal-container").css(e.extend({position:r.o.fixed?"fixed":"absolute"},r.o.containerCss,{display:"none",zIndex:r.o.zIndex+2})).append(r.o.close&&r.o.closeHTML?e(r.o.closeHTML).addClass(r.o.closeClass):"").appendTo(r.o.appendTo);r.d.wrap=e("<div></div>").attr("tabIndex",-1).addClass("simplemodal-wrap").css({height:"100%",outline:0,width:"100%"}).appendTo(r.d.container);r.d.data=n.attr("id",n.attr("id")||r.o.dataId).addClass("simplemodal-data").css(e.extend(r.o.dataCss,{display:"none"})).appendTo("body");n=null;r.setContainerDimensions();r.d.data.appendTo(r.d.wrap);if(o.ie6||o.ieQuirks){r.fixIE()}},bindEvents:function(){var r=this;e("."+r.o.closeClass).bind("click.simplemodal",function(e){e.preventDefault();r.close()});if(r.o.modal&&r.o.close&&r.o.overlayClose){r.d.overlay.bind("click.simplemodal",function(e){e.preventDefault();r.close()})}n.bind("keydown.simplemodal",function(e){if(r.o.modal&&e.keyCode===9){r.watchTab(e)}else if(r.o.close&&r.o.escClose&&e.keyCode===27){e.preventDefault();r.close()}});i.bind("resize.simplemodal orientationchange.simplemodal",function(){r.getDimensions();r.o.autoResize?r.setContainerDimensions():r.o.autoPosition&&r.setPosition();if(o.ie6||o.ieQuirks){r.fixIE()}else if(r.o.modal){r.d.iframe&&r.d.iframe.css({height:s[0],width:s[1]});r.d.overlay.css({height:t[0],width:t[1]})}})},unbindEvents:function(){e("."+this.o.closeClass).unbind("click.simplemodal");n.unbind("keydown.simplemodal");i.unbind(".simplemodal");this.d.overlay.unbind("click.simplemodal")},fixIE:function(){var t=this,n=t.o.position;e.each([t.d.iframe||null,!t.o.modal?null:t.d.overlay,t.d.container.css("position")==="fixed"?t.d.container:null],function(e,t){if(t){var r="document.body.clientHeight",i="document.body.clientWidth",s="document.body.scrollHeight",o="document.body.scrollLeft",u="document.body.scrollTop",a="document.body.scrollWidth",f="document.documentElement.clientHeight",l="document.documentElement.clientWidth",c="document.documentElement.scrollLeft",h="document.documentElement.scrollTop",d=t[0].style;d.position="absolute";if(e<2){d.removeExpression("height");d.removeExpression("width");d.setExpression("height",""+s+" > "+r+" ? "+s+" : "+r+' + "px"');d.setExpression("width",""+a+" > "+i+" ? "+a+" : "+i+' + "px"')}else{var v,m;if(n&&n.constructor===Array){var g=n[0]?typeof n[0]==="number"?n[0].toString():n[0].replace(/px/,""):t.css("top").replace(/px/,"");v=g.indexOf("%")===-1?g+" + (t = "+h+" ? "+h+" : "+u+') + "px"':parseInt(g.replace(/%/,""))+" * (("+f+" || "+r+") / 100) + (t = "+h+" ? "+h+" : "+u+') + "px"';if(n[1]){var y=typeof n[1]==="number"?n[1].toString():n[1].replace(/px/,"");m=y.indexOf("%")===-1?y+" + (t = "+c+" ? "+c+" : "+o+') + "px"':parseInt(y.replace(/%/,""))+" * (("+l+" || "+i+") / 100) + (t = "+c+" ? "+c+" : "+o+') + "px"'}}else{v="("+f+" || "+r+") / 2 - (this.offsetHeight / 2) + (t = "+h+" ? "+h+" : "+u+') + "px"';m="("+l+" || "+i+") / 2 - (this.offsetWidth / 2) + (t = "+c+" ? "+c+" : "+o+') + "px"'}d.removeExpression("top");d.removeExpression("left");d.setExpression("top",v);d.setExpression("left",m)}}})},focus:function(t){var n=this,r=t&&e.inArray(t,["first","last"])!==-1?t:"first";var i=e(":input:enabled:visible:"+r,n.d.wrap);setTimeout(function(){i.length>0?i.focus():n.d.wrap.focus()},10)},getDimensions:function(){var e=this,r=typeof window.innerHeight==="undefined"?i.height():window.innerHeight;t=[n.height(),n.width()];s=[r,i.width()]},getVal:function(e,t){return e?typeof e==="number"?e:e==="auto"?0:e.indexOf("%")>0?parseInt(e.replace(/%/,""))/100*(t==="h"?s[0]:s[1]):parseInt(e.replace(/px/,"")):null},update:function(e,t){var n=this;if(!n.d.data){return false}n.d.origHeight=n.getVal(e,"h");n.d.origWidth=n.getVal(t,"w");n.d.data.hide();e&&n.d.container.css("height",e);t&&n.d.container.css("width",t);n.setContainerDimensions();n.d.data.show();n.o.focus&&n.focus();n.unbindEvents();n.bindEvents()},setContainerDimensions:function(){var e=this,t=o.ie6||o.ie7;var n=e.d.origHeight?e.d.origHeight:o.opera?e.d.container.height():e.getVal(t?e.d.container[0].currentStyle["height"]:e.d.container.css("height"),"h"),r=e.d.origWidth?e.d.origWidth:o.opera?e.d.container.width():e.getVal(t?e.d.container[0].currentStyle["width"]:e.d.container.css("width"),"w"),i=e.d.data.outerHeight(true),u=e.d.data.outerWidth(true);e.d.origHeight=e.d.origHeight||n;e.d.origWidth=e.d.origWidth||r;var a=e.o.maxHeight?e.getVal(e.o.maxHeight,"h"):null,f=e.o.maxWidth?e.getVal(e.o.maxWidth,"w"):null,l=a&&a<s[0]?a:s[0],c=f&&f<s[1]?f:s[1];var h=e.o.minHeight?e.getVal(e.o.minHeight,"h"):"auto";if(!n){if(!i){n=h}else{if(i>l){n=l}else if(e.o.minHeight&&h!=="auto"&&i<h){n=h}else{n=i}}}else{n=e.o.autoResize&&n>l?l:n<h?h:n}var p=e.o.minWidth?e.getVal(e.o.minWidth,"w"):"auto";if(!r){if(!u){r=p}else{if(u>c){r=c}else if(e.o.minWidth&&p!=="auto"&&u<p){r=p}else{r=u}}}else{r=e.o.autoResize&&r>c?c:r<p?p:r}e.d.container.css({height:n,width:r});e.d.wrap.css({overflow:i>n||u>r?"auto":"visible"});e.o.autoPosition&&e.setPosition()},setPosition:function(){var e=this,t,n,r=s[0]/2-e.d.container.outerHeight(true)/2,o=s[1]/2-e.d.container.outerWidth(true)/2,u=e.d.container.css("position")!=="fixed"?i.scrollTop():0;if(e.o.position&&Object.prototype.toString.call(e.o.position)==="[object Array]"){t=u+(e.o.position[0]||r);n=e.o.position[1]||o}else{t=u+r;n=o}e.d.container.css({left:n,top:t})},watchTab:function(t){var n=this;if(e(t.target).parents(".simplemodal-container").length>0){n.inputs=e(":input:enabled:visible:first, :input:enabled:visible:last",n.d.data[0]);if(!t.shiftKey&&t.target===n.inputs[n.inputs.length-1]||t.shiftKey&&t.target===n.inputs[0]||n.inputs.length===0){t.preventDefault();var r=t.shiftKey?"last":"first";n.focus(r)}}else{t.preventDefault();n.focus()}},open:function(){var t=this;t.d.iframe&&t.d.iframe.show();if(e.isFunction(t.o.onOpen)){t.o.onOpen.apply(t,[t.d])}else{t.d.overlay.show();t.d.container.show();t.d.data.show()}t.o.focus&&t.focus();t.bindEvents()},close:function(){var t=this;if(!t.d.data){return false}t.unbindEvents();if(e.isFunction(t.o.onClose)&&!t.occb){t.occb=true;t.o.onClose.apply(t,[t.d])}else{if(t.d.placeholder){var n=e("#simplemodal-placeholder");if(t.o.persist){n.replaceWith(t.d.data.removeClass("simplemodal-data").css("display",t.display))}else{t.d.data.hide().remove();n.replaceWith(t.d.orig)}}else{t.d.data.hide().remove()}t.d.container.hide().remove();t.d.overlay.hide();t.d.iframe&&t.d.iframe.hide().remove();t.d.overlay.remove();t.d={}}}}})
1
+ /*
2
+ * SimpleModal 1.4.5 - jQuery Plugin
3
+ * http://simplemodal.com/
4
+ * Copyright (c) 2013 Eric Martin
5
+ * Licensed under MIT and GPL
6
+ */
7
+ (function(e){if(typeof define==="function"&&define.amd){define(["jquery"],e)}else{e(jQuery)}})(function(e){var t=[],n=e(document),r=navigator.userAgent.toLowerCase(),i=e(window),s=[];var o={ieQuirks:null,msie:/msie/.test(r)&&!/opera/.test(r),opera:/opera/.test(r)};o.ie6=o.msie&&/msie 6./.test(r)&&typeof window["XMLHttpRequest"]!=="object";o.ie7=o.msie&&/msie 7.0/.test(r);o.boxModel=document.compatMode==="CSS1Compat";e.modal=function(t,n){return e.modal.impl.init(t,n)};e.modal.close=function(){e.modal.impl.close()};e.modal.focus=function(t){e.modal.impl.focus(t)};e.modal.setContainerDimensions=function(){e.modal.impl.setContainerDimensions()};e.modal.setPosition=function(){e.modal.impl.setPosition()};e.modal.update=function(t,n){e.modal.impl.update(t,n)};e.fn.modal=function(t){return e.modal.impl.init(this,t)};e.modal.defaults={appendTo:"body",focus:true,opacity:50,overlayId:"simplemodal-overlay",overlayCss:{},containerId:"simplemodal-container",containerCss:{},dataId:"simplemodal-data",dataCss:{},minHeight:null,minWidth:null,maxHeight:null,maxWidth:null,autoResize:false,autoPosition:true,zIndex:1e3,close:true,closeHTML:'<a class="modalCloseImg" title="Close"></a>',closeClass:"simplemodal-close",escClose:true,overlayClose:false,fixed:true,position:null,persist:false,modal:true,onOpen:null,onShow:null,onClose:null};e.modal.impl={d:{},init:function(t,n){var r=this;if(r.d.data){return false}o.ieQuirks=o.msie&&!o.boxModel;r.o=e.extend({},e.modal.defaults,n);r.zIndex=r.o.zIndex;r.occb=false;if(typeof t==="object"){t=t instanceof e?t:e(t);r.d.placeholder=false;if(t.parent().parent().size()>0){t.before(e("<span></span>").attr("id","simplemodal-placeholder").css({display:"none"}));r.d.placeholder=true;r.display=t.css("display");if(!r.o.persist){r.d.orig=t.clone(true)}}}else if(typeof t==="string"||typeof t==="number"){t=e("<div></div>").html(t)}else{alert("SimpleModal Error: Unsupported data type: "+typeof t);return r}r.create(t);t=null;r.open();if(e.isFunction(r.o.onShow)){r.o.onShow.apply(r,[r.d])}return r},create:function(n){var r=this;r.getDimensions();if(r.o.modal&&o.ie6){r.d.iframe=e('<iframe src="javascript:false;"></iframe>').css(e.extend(r.o.iframeCss,{display:"none",opacity:0,position:"fixed",height:s[0],width:s[1],zIndex:r.o.zIndex,top:0,left:0})).appendTo(r.o.appendTo)}r.d.overlay=e("<div></div>").attr("id",r.o.overlayId).addClass("simplemodal-overlay").css(e.extend(r.o.overlayCss,{display:"none",opacity:r.o.opacity/100,height:r.o.modal?t[0]:0,width:r.o.modal?t[1]:0,position:"fixed",left:0,top:0,zIndex:r.o.zIndex+1})).appendTo(r.o.appendTo);r.d.container=e("<div></div>").attr("id",r.o.containerId).addClass("simplemodal-container").css(e.extend({position:r.o.fixed?"fixed":"absolute"},r.o.containerCss,{display:"none",zIndex:r.o.zIndex+2})).append(r.o.close&&r.o.closeHTML?e(r.o.closeHTML).addClass(r.o.closeClass):"").appendTo(r.o.appendTo);r.d.wrap=e("<div></div>").attr("tabIndex",-1).addClass("simplemodal-wrap").css({height:"100%",outline:0,width:"100%"}).appendTo(r.d.container);r.d.data=n.attr("id",n.attr("id")||r.o.dataId).addClass("simplemodal-data").css(e.extend(r.o.dataCss,{display:"none"})).appendTo("body");n=null;r.setContainerDimensions();r.d.data.appendTo(r.d.wrap);if(o.ie6||o.ieQuirks){r.fixIE()}},bindEvents:function(){var r=this;e("."+r.o.closeClass).bind("click.simplemodal",function(e){e.preventDefault();r.close()});if(r.o.modal&&r.o.close&&r.o.overlayClose){r.d.overlay.bind("click.simplemodal",function(e){e.preventDefault();r.close()})}n.bind("keydown.simplemodal",function(e){if(r.o.modal&&e.keyCode===9){r.watchTab(e)}else if(r.o.close&&r.o.escClose&&e.keyCode===27){e.preventDefault();r.close()}});i.bind("resize.simplemodal orientationchange.simplemodal",function(){r.getDimensions();r.o.autoResize?r.setContainerDimensions():r.o.autoPosition&&r.setPosition();if(o.ie6||o.ieQuirks){r.fixIE()}else if(r.o.modal){r.d.iframe&&r.d.iframe.css({height:s[0],width:s[1]});r.d.overlay.css({height:t[0],width:t[1]})}})},unbindEvents:function(){e("."+this.o.closeClass).unbind("click.simplemodal");n.unbind("keydown.simplemodal");i.unbind(".simplemodal");this.d.overlay.unbind("click.simplemodal")},fixIE:function(){var t=this,n=t.o.position;e.each([t.d.iframe||null,!t.o.modal?null:t.d.overlay,t.d.container.css("position")==="fixed"?t.d.container:null],function(e,t){if(t){var r="document.body.clientHeight",i="document.body.clientWidth",s="document.body.scrollHeight",o="document.body.scrollLeft",u="document.body.scrollTop",a="document.body.scrollWidth",f="document.documentElement.clientHeight",l="document.documentElement.clientWidth",c="document.documentElement.scrollLeft",h="document.documentElement.scrollTop",d=t[0].style;d.position="absolute";if(e<2){d.removeExpression("height");d.removeExpression("width");d.setExpression("height",""+s+" > "+r+" ? "+s+" : "+r+' + "px"');d.setExpression("width",""+a+" > "+i+" ? "+a+" : "+i+' + "px"')}else{var v,m;if(n&&n.constructor===Array){var g=n[0]?typeof n[0]==="number"?n[0].toString():n[0].replace(/px/,""):t.css("top").replace(/px/,"");v=g.indexOf("%")===-1?g+" + (t = "+h+" ? "+h+" : "+u+') + "px"':parseInt(g.replace(/%/,""))+" * (("+f+" || "+r+") / 100) + (t = "+h+" ? "+h+" : "+u+') + "px"';if(n[1]){var y=typeof n[1]==="number"?n[1].toString():n[1].replace(/px/,"");m=y.indexOf("%")===-1?y+" + (t = "+c+" ? "+c+" : "+o+') + "px"':parseInt(y.replace(/%/,""))+" * (("+l+" || "+i+") / 100) + (t = "+c+" ? "+c+" : "+o+') + "px"'}}else{v="("+f+" || "+r+") / 2 - (this.offsetHeight / 2) + (t = "+h+" ? "+h+" : "+u+') + "px"';m="("+l+" || "+i+") / 2 - (this.offsetWidth / 2) + (t = "+c+" ? "+c+" : "+o+') + "px"'}d.removeExpression("top");d.removeExpression("left");d.setExpression("top",v);d.setExpression("left",m)}}})},focus:function(t){var n=this,r=t&&e.inArray(t,["first","last"])!==-1?t:"first";var i=e(":input:enabled:visible:"+r,n.d.wrap);setTimeout(function(){i.length>0?i.focus():n.d.wrap.focus()},10)},getDimensions:function(){var e=this,r=typeof window.innerHeight==="undefined"?i.height():window.innerHeight;t=[n.height(),n.width()];s=[r,i.width()]},getVal:function(e,t){return e?typeof e==="number"?e:e==="auto"?0:e.indexOf("%")>0?parseInt(e.replace(/%/,""))/100*(t==="h"?s[0]:s[1]):parseInt(e.replace(/px/,"")):null},update:function(e,t){var n=this;if(!n.d.data){return false}n.d.origHeight=n.getVal(e,"h");n.d.origWidth=n.getVal(t,"w");n.d.data.hide();e&&n.d.container.css("height",e);t&&n.d.container.css("width",t);n.setContainerDimensions();n.d.data.show();n.o.focus&&n.focus();n.unbindEvents();n.bindEvents()},setContainerDimensions:function(){var e=this,t=o.ie6||o.ie7;var n=e.d.origHeight?e.d.origHeight:o.opera?e.d.container.height():e.getVal(t?e.d.container[0].currentStyle["height"]:e.d.container.css("height"),"h"),r=e.d.origWidth?e.d.origWidth:o.opera?e.d.container.width():e.getVal(t?e.d.container[0].currentStyle["width"]:e.d.container.css("width"),"w"),i=e.d.data.outerHeight(true),u=e.d.data.outerWidth(true);e.d.origHeight=e.d.origHeight||n;e.d.origWidth=e.d.origWidth||r;var a=e.o.maxHeight?e.getVal(e.o.maxHeight,"h"):null,f=e.o.maxWidth?e.getVal(e.o.maxWidth,"w"):null,l=a&&a<s[0]?a:s[0],c=f&&f<s[1]?f:s[1];var h=e.o.minHeight?e.getVal(e.o.minHeight,"h"):"auto";if(!n){if(!i){n=h}else{if(i>l){n=l}else if(e.o.minHeight&&h!=="auto"&&i<h){n=h}else{n=i}}}else{n=e.o.autoResize&&n>l?l:n<h?h:n}var p=e.o.minWidth?e.getVal(e.o.minWidth,"w"):"auto";if(!r){if(!u){r=p}else{if(u>c){r=c}else if(e.o.minWidth&&p!=="auto"&&u<p){r=p}else{r=u}}}else{r=e.o.autoResize&&r>c?c:r<p?p:r}e.d.container.css({height:n,width:r});e.d.wrap.css({overflow:i>n||u>r?"auto":"visible"});e.o.autoPosition&&e.setPosition()},setPosition:function(){var e=this,t,n,r=s[0]/2-e.d.container.outerHeight(true)/2,o=s[1]/2-e.d.container.outerWidth(true)/2,u=e.d.container.css("position")!=="fixed"?i.scrollTop():0;if(e.o.position&&Object.prototype.toString.call(e.o.position)==="[object Array]"){t=u+(e.o.position[0]||r);n=e.o.position[1]||o}else{t=u+r;n=o}e.d.container.css({left:n,top:t})},watchTab:function(t){var n=this;if(e(t.target).parents(".simplemodal-container").length>0){n.inputs=e(":input:enabled:visible:first, :input:enabled:visible:last",n.d.data[0]);if(!t.shiftKey&&t.target===n.inputs[n.inputs.length-1]||t.shiftKey&&t.target===n.inputs[0]||n.inputs.length===0){t.preventDefault();var r=t.shiftKey?"last":"first";n.focus(r)}}else{t.preventDefault();n.focus()}},open:function(){var t=this;t.d.iframe&&t.d.iframe.show();if(e.isFunction(t.o.onOpen)){t.o.onOpen.apply(t,[t.d])}else{t.d.overlay.show();t.d.container.show();t.d.data.show()}t.o.focus&&t.focus();t.bindEvents()},close:function(){var t=this;if(!t.d.data){return false}t.unbindEvents();if(e.isFunction(t.o.onClose)&&!t.occb){t.occb=true;t.o.onClose.apply(t,[t.d])}else{if(t.d.placeholder){var n=e("#simplemodal-placeholder");if(t.o.persist){n.replaceWith(t.d.data.removeClass("simplemodal-data").css("display",t.display))}else{t.d.data.hide().remove();n.replaceWith(t.d.orig)}}else{t.d.data.hide().remove()}t.d.container.hide().remove();t.d.overlay.hide();t.d.iframe&&t.d.iframe.hide().remove();t.d.overlay.remove();t.d={}}}}})
js/kgvid_video_embed.js CHANGED
@@ -547,9 +547,10 @@ function kgvid_setup_video(id) {
547
  if ( played == "not played" ) { //only turn on the default captions on first load
548
 
549
  var mejs_player = eval('mejs.players.'+mejs_id);
550
-
551
  jQuery.each(mejs_player.tracks, function(key, item) {
552
- if ( item.srclang == jQuery('#'+mejs_id+' track[default]').attr('srclang').toLowerCase() ) {
 
553
  mejs_player.setTrack(item.trackId);
554
  jQuery('#'+mejs_id+' .mejs-captions-selector input[value="en"]').prop('checked',true);
555
  }
@@ -564,6 +565,7 @@ function kgvid_setup_video(id) {
564
  player.on('loadedmetadata', function() {
565
 
566
  var played = jQuery('#video_'+id+'_div').data("played") || "not played";
 
567
 
568
  if ( video_vars.set_volume != "" ) { player[0].volume = video_vars.set_volume; }
569
  if ( video_vars.mute == "true" ) { player[0].setMuted(true); }
@@ -932,12 +934,14 @@ function kgvid_resize_gallery_play_button(gallery_id) {
932
 
933
  if ( video_vars.player_type == "Video.js" ) {
934
  var button_selector = '.vjs-big-play-button';
935
- var translate_y = 30;
 
936
  }
937
 
938
  if ( video_vars.player_type == "WordPressDefault" ) {
939
  var button_selector = '.mejs-overlay-button';
940
- var translate_y = 5;
 
941
  }
942
 
943
  var play_button_percent = jQuery('#'+gallery_id+' '+button_selector).width()/thumb_width;
@@ -946,7 +950,7 @@ function kgvid_resize_gallery_play_button(gallery_id) {
946
  var scale_value = Math.round(thumb_width * max_percent / unscaled_width * 1000)/1000;
947
 
948
  if ( scale_value < 1 ) {
949
- var css_text = 'scale('+scale_value+') translateY(-'+translate_y+'px)';
950
 
951
  jQuery('#'+gallery_id+' '+button_selector).css({
952
  'transform' : css_text,
547
  if ( played == "not played" ) { //only turn on the default captions on first load
548
 
549
  var mejs_player = eval('mejs.players.'+mejs_id);
550
+
551
  jQuery.each(mejs_player.tracks, function(key, item) {
552
+ if ( jQuery('#'+mejs_id+' track[default]').length > 0
553
+ && item.srclang == jQuery('#'+mejs_id+' track[default]').attr('srclang').toLowerCase() ) {
554
  mejs_player.setTrack(item.trackId);
555
  jQuery('#'+mejs_id+' .mejs-captions-selector input[value="en"]').prop('checked',true);
556
  }
565
  player.on('loadedmetadata', function() {
566
 
567
  var played = jQuery('#video_'+id+'_div').data("played") || "not played";
568
+ var mejs_player = eval('mejs.players.'+mejs_id);
569
 
570
  if ( video_vars.set_volume != "" ) { player[0].volume = video_vars.set_volume; }
571
  if ( video_vars.mute == "true" ) { player[0].setMuted(true); }
934
 
935
  if ( video_vars.player_type == "Video.js" ) {
936
  var button_selector = '.vjs-big-play-button';
937
+ var translate_x = '0';
938
+ var translate_y = '-30px';
939
  }
940
 
941
  if ( video_vars.player_type == "WordPressDefault" ) {
942
  var button_selector = '.mejs-overlay-button';
943
+ var translate_x = '-50%'
944
+ var translate_y = '-55%';
945
  }
946
 
947
  var play_button_percent = jQuery('#'+gallery_id+' '+button_selector).width()/thumb_width;
950
  var scale_value = Math.round(thumb_width * max_percent / unscaled_width * 1000)/1000;
951
 
952
  if ( scale_value < 1 ) {
953
+ var css_text = 'scale('+scale_value+') translate('+translate_x+', '+translate_y+')';
954
 
955
  jQuery('#'+gallery_id+' '+button_selector).css({
956
  'transform' : css_text,
js/mejs-source-chooser.js CHANGED
@@ -1,271 +1,271 @@
1
- /*!
2
- * MediaElement.js
3
- * http://www.mediaelementjs.com/
4
- *
5
- * Wrapper that mimics native HTML5 MediaElement (audio and video)
6
- * using a variety of technologies (pure JavaScript, Flash, iframe)
7
- *
8
- * Copyright 2010-2017, John Dyer (http://j.hn/)
9
- * License: MIT
10
- *
11
- */(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
12
- 'use strict';
13
-
14
- Object.assign(mejs.MepDefaults, {
15
- sourcechooserText: kgvidL10n_frontend.quality
16
- });
17
-
18
- Object.assign(MediaElementPlayer.prototype, {
19
- buildsourcechooser: function buildsourcechooser(player, controls, layers, media) {
20
-
21
- var t = this,
22
- sourceTitle = mejs.Utils.isString(t.options.sourcechooserText) ? t.options.sourcechooserText : mejs.i18n.t('mejs.source-chooser'),
23
- sources = [],
24
- children = t.mediaFiles ? t.mediaFiles : t.node.children;
25
-
26
- var hoverTimeout = void 0;
27
-
28
- for (var i = 0, total = children.length; i < total; i++) {
29
- var s = children[i];
30
-
31
- if (t.mediaFiles) {
32
- sources.push(s);
33
- } else if (s.nodeName === 'SOURCE') {
34
- sources.push(s);
35
- }
36
- }
37
-
38
- if (sources.length <= 1) {
39
- return;
40
- }
41
-
42
- player.sourcechooserButton = document.createElement('div');
43
- player.sourcechooserButton.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'sourcechooser-button';
44
- player.sourcechooserButton.innerHTML = '<button type="button" role="button" aria-haspopup="true" aria-owns="' + t.id + '" title="' + sourceTitle + '" aria-label="' + sourceTitle + '" tabindex="0"></button>' + ('<div class="' + t.options.classPrefix + 'sourcechooser-selector ' + t.options.classPrefix + 'offscreen" role="menu" aria-expanded="false" aria-hidden="true"><ul></ul></div>');
45
-
46
- t.addControlElement(player.sourcechooserButton, 'sourcechooser');
47
-
48
- player.availableRes = new Object();
49
-
50
- for (var _i = 0, _total = sources.length; _i < _total; _i++) {
51
- var src = sources[_i];
52
- if (src.type !== undefined && typeof media.canPlayType === 'function') {
53
- player.addSourceButton(src.src, src.dataset.res, src.type, media.src === src.src);
54
- player.availableRes[src.dataset.res] = src.src;
55
-
56
- if ( src.dataset.res == kgvidL10n_frontend.fullres ) {
57
- media.addEventListener('loadedmetadata', function(){
58
- if ( player.media.originalNode.videoHeight != NaN ) {
59
- jQuery('.mejs-sourcechooser-button label:contains('+kgvidL10n_frontend.fullres+')').html(media.originalNode.videoHeight+'p');
60
- }
61
- });
62
- }
63
-
64
- }
65
- }
66
-
67
- player.sourcechooserButton.addEventListener('mouseover', function () {
68
- clearTimeout(hoverTimeout);
69
- player.showSourcechooserSelector();
70
- });
71
- player.sourcechooserButton.addEventListener('mouseout', function () {
72
- hoverTimeout = setTimeout(function () {
73
- player.hideSourcechooserSelector();
74
- }, 0);
75
- });
76
-
77
- player.sourcechooserButton.addEventListener('keydown', function (e) {
78
-
79
- if (t.options.keyActions.length) {
80
- var keyCode = e.which || e.keyCode || 0;
81
-
82
- switch (keyCode) {
83
- case 32:
84
- if (!mejs.MediaFeatures.isFirefox) {
85
- player.showSourcechooserSelector();
86
- }
87
- player.sourcechooserButton.querySelector('input[type=radio]:checked').focus();
88
- break;
89
- case 13:
90
- player.showSourcechooserSelector();
91
- player.sourcechooserButton.querySelector('input[type=radio]:checked').focus();
92
- break;
93
- case 27:
94
- player.hideSourcechooserSelector();
95
- player.sourcechooserButton.querySelector('button').focus();
96
- break;
97
- default:
98
- return true;
99
- }
100
-
101
- e.preventDefault();
102
- e.stopPropagation();
103
- }
104
- });
105
-
106
- player.sourcechooserButton.addEventListener('focusout', mejs.Utils.debounce(function () {
107
- setTimeout(function () {
108
- var parent = document.activeElement.closest('.' + t.options.classPrefix + 'sourcechooser-selector');
109
- if (!parent) {
110
- player.hideSourcechooserSelector();
111
- }
112
- }, 0);
113
- }, 100));
114
-
115
- var selectorLIs = player.sourcechooserButton.querySelectorAll('li');
116
-
117
- for (var _i2 = 0, _total2 = selectorLIs.length; _i2 < _total2; _i2++) {
118
- selectorLIs[_i2].addEventListener('click', function () {
119
- var radio = this.querySelectorAll('input[type=radio]')[0];
120
- var target_res = radio.value;
121
- if (t.getCurrentRes() !== target_res) {
122
- t.changeRes(target_res);
123
- }
124
- });
125
- }
126
-
127
- player.sourcechooserButton.querySelector('button').addEventListener('click', function () {
128
- if (mejs.Utils.hasClass(mejs.Utils.siblings(this), t.options.classPrefix + 'offscreen')) {
129
- player.showSourcechooserSelector();
130
- player.sourcechooserButton.querySelector('input[type=radio]:checked').focus();
131
- } else {
132
- player.hideSourcechooserSelector();
133
- }
134
- });
135
- },
136
- addSourceButton: function addSourceButton(src, label, type, isCurrent) {
137
- var t = this;
138
- if (label === '' || label === undefined) {
139
- label = src;
140
- }
141
- type = type.split('/')[1];
142
-
143
- t.sourcechooserButton.querySelector('ul').innerHTML += '<li' + (isCurrent ? ' class="sourcechooser-selected"' : '') + '>' + ('<input type="radio" name="' + t.id + '_sourcechooser" id="' + t.id + '_sourcechooser_' + label + '" ') + ('role="menuitemradio" value="' + label + '" ' + (isCurrent ? 'checked="checked"' : '') + ' aria-selected="' + isCurrent + '"/>') + ('<label for="' + t.id + '_sourcechooser_' + label + '" aria-hidden="true">' + label + '</label>') + '</li>';
144
-
145
- },
146
- hideSourcechooserSelector: function hideSourcechooserSelector() {
147
-
148
- var t = this;
149
-
150
- if (t.sourcechooserButton === undefined || !t.sourcechooserButton.querySelector('input[type=radio]')) {
151
- return;
152
- }
153
-
154
- var selector = t.sourcechooserButton.querySelector('.' + t.options.classPrefix + 'sourcechooser-selector'),
155
- radios = selector.querySelectorAll('input[type=radio]');
156
- selector.setAttribute('aria-expanded', 'false');
157
- selector.setAttribute('aria-hidden', 'true');
158
- mejs.Utils.addClass(selector, t.options.classPrefix + 'offscreen');
159
-
160
- for (var i = 0, total = radios.length; i < total; i++) {
161
- radios[i].setAttribute('tabindex', '-1');
162
- }
163
- },
164
- showSourcechooserSelector: function showSourcechooserSelector() {
165
-
166
- var t = this;
167
-
168
- if (t.sourcechooserButton === undefined || !t.sourcechooserButton.querySelector('input[type=radio]')) {
169
- return;
170
- }
171
-
172
- var selector = t.sourcechooserButton.querySelector('.' + t.options.classPrefix + 'sourcechooser-selector'),
173
- radios = selector.querySelectorAll('input[type=radio]');
174
- selector.setAttribute('aria-expanded', 'true');
175
- selector.setAttribute('aria-hidden', 'false');
176
- mejs.Utils.removeClass(selector, t.options.classPrefix + 'offscreen');
177
-
178
- for (var i = 0, total = radios.length; i < total; i++) {
179
- radios[i].setAttribute('tabindex', '0');
180
- }
181
- },
182
- getCurrentRes() {
183
-
184
- if ( typeof this.currentRes !== 'undefined' ) {
185
-
186
- return this.currentRes;
187
-
188
- } else {
189
-
190
- try {
191
-
192
- return this.node.children[0].dataset.res;
193
-
194
- } catch(e) {
195
-
196
- return '';
197
- }
198
- }
199
- },
200
- changeRes(target_res) {
201
-
202
- var currentRes = this.getCurrentRes();
203
-
204
- if ( currentRes == target_res
205
- || ! this.availableRes
206
- || ! this.availableRes[target_res] ) { return; }
207
-
208
- var media = this.media;
209
- var src = this.availableRes[target_res];
210
- var currentTime = media.currentTime;
211
- var paused = media.paused;
212
-
213
- var radio = document.querySelectorAll('#' + this.id + '_sourcechooser_' + target_res)[0];
214
- radio.setAttribute('aria-selected', true);
215
- radio.checked = true;
216
- radio.parentElement.className = 'sourcechooser-selected';
217
-
218
- var otherRadios = radio.parentElement.closest('.' + this.options.classPrefix + 'sourcechooser-selector').querySelectorAll('input[type=radio]');
219
-
220
- for (var j = 0, radioTotal = otherRadios.length; j < radioTotal; j++) {
221
- if (otherRadios[j] !== radio) {
222
- otherRadios[j].setAttribute('aria-selected', 'false');
223
- otherRadios[j].removeAttribute('checked');
224
- otherRadios[j].parentElement.className = '';
225
- }
226
- }
227
-
228
- var canPlayAfterSourceSwitchHandler = function(e) {
229
- media.setCurrentTime(currentTime);
230
- if (!paused) {
231
- media.play();
232
- }
233
- media.removeEventListener('canplay', canPlayAfterSourceSwitchHandler);
234
- }
235
- ;
236
-
237
- media.pause();
238
-
239
- if ( currentTime != 0 ) {
240
- var video = jQuery(media).children('video')[0];
241
- var canvas = document.createElement("canvas");
242
- canvas.className = 'kgvid_temp_thumb';
243
- canvas.width = ( video.videoWidth > video.videoHeight ) ? video.offsetWidth : video.videoWidth/video.videoHeight*video.offsetHeight;
244
- canvas.height = ( video.videoWidth > video.videoHeight ) ? video.videoHeight/video.videoWidth*video.offsetWidth : video.offsetHeight;
245
- var topOffset = Math.round((video.offsetHeight - canvas.height)/2);
246
- if (topOffset > 2) {
247
- canvas.setAttribute('style', 'top:' + topOffset + 'px;');
248
- }
249
- var leftOffset = Math.round((video.offsetWidth - canvas.width)/2);
250
- if (leftOffset > 2) {
251
- canvas.setAttribute('style', 'left:' + leftOffset + 'px;');
252
- }
253
- var context = canvas.getContext('2d');
254
- context.fillRect(0, 0, canvas.width, canvas.height);
255
- context.drawImage(video, 0, 0, canvas.width, canvas.height);
256
- jQuery('#'+media.id).parents('.mejs-mediaelement').append(canvas);
257
-
258
- jQuery(media).one( 'seeked', function() {
259
- jQuery(canvas).remove();
260
- });
261
- }
262
-
263
- media.setSrc(src);
264
- media.load();
265
- this.currentRes = target_res;
266
- media.addEventListener('canplay', canPlayAfterSourceSwitchHandler);
267
-
268
- }
269
- });
270
-
271
- },{}]},{},[1]);
1
+ /*!
2
+ * MediaElement.js
3
+ * http://www.mediaelementjs.com/
4
+ *
5
+ * Wrapper that mimics native HTML5 MediaElement (audio and video)
6
+ * using a variety of technologies (pure JavaScript, Flash, iframe)
7
+ *
8
+ * Copyright 2010-2017, John Dyer (http://j.hn/)
9
+ * License: MIT
10
+ *
11
+ */(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
12
+ 'use strict';
13
+
14
+ Object.assign(mejs.MepDefaults, {
15
+ sourcechooserText: kgvidL10n_frontend.quality
16
+ });
17
+
18
+ Object.assign(MediaElementPlayer.prototype, {
19
+ buildsourcechooser: function buildsourcechooser(player, controls, layers, media) {
20
+
21
+ var t = this,
22
+ sourceTitle = mejs.Utils.isString(t.options.sourcechooserText) ? t.options.sourcechooserText : mejs.i18n.t('mejs.source-chooser'),
23
+ sources = [],
24
+ children = t.mediaFiles ? t.mediaFiles : t.node.children;
25
+
26
+ var hoverTimeout = void 0;
27
+
28
+ for (var i = 0, total = children.length; i < total; i++) {
29
+ var s = children[i];
30
+
31
+ if (t.mediaFiles) {
32
+ sources.push(s);
33
+ } else if (s.nodeName === 'SOURCE') {
34
+ sources.push(s);
35
+ }
36
+ }
37
+
38
+ if (sources.length <= 1) {
39
+ return;
40
+ }
41
+
42
+ player.sourcechooserButton = document.createElement('div');
43
+ player.sourcechooserButton.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'sourcechooser-button';
44
+ player.sourcechooserButton.innerHTML = '<button type="button" role="button" aria-haspopup="true" aria-owns="' + t.id + '" title="' + sourceTitle + '" aria-label="' + sourceTitle + '" tabindex="0"></button>' + ('<div class="' + t.options.classPrefix + 'sourcechooser-selector ' + t.options.classPrefix + 'offscreen" role="menu" aria-expanded="false" aria-hidden="true"><ul></ul></div>');
45
+
46
+ t.addControlElement(player.sourcechooserButton, 'sourcechooser');
47
+
48
+ player.availableRes = new Object();
49
+
50
+ for (var _i = 0, _total = sources.length; _i < _total; _i++) {
51
+ var src = sources[_i];
52
+ if (src.type !== undefined && typeof media.canPlayType === 'function') {
53
+ player.addSourceButton(src.src, src.dataset.res, src.type, media.src === src.src);
54
+ player.availableRes[src.dataset.res] = src.src;
55
+
56
+ if ( src.dataset.res == kgvidL10n_frontend.fullres ) {
57
+ media.addEventListener('loadedmetadata', function(){
58
+ if ( player.media.originalNode.videoHeight != NaN ) {
59
+ jQuery('.mejs-sourcechooser-button label:contains('+kgvidL10n_frontend.fullres+')').html(media.originalNode.videoHeight+'p');
60
+ }
61
+ });
62
+ }
63
+
64
+ }
65
+ }
66
+
67
+ player.sourcechooserButton.addEventListener('mouseover', function () {
68
+ clearTimeout(hoverTimeout);
69
+ player.showSourcechooserSelector();
70
+ });
71
+ player.sourcechooserButton.addEventListener('mouseout', function () {
72
+ hoverTimeout = setTimeout(function () {
73
+ player.hideSourcechooserSelector();
74
+ }, 0);
75
+ });
76
+
77
+ player.sourcechooserButton.addEventListener('keydown', function (e) {
78
+
79
+ if (t.options.keyActions.length) {
80
+ var keyCode = e.which || e.keyCode || 0;
81
+
82
+ switch (keyCode) {
83
+ case 32:
84
+ if (!mejs.MediaFeatures.isFirefox) {
85
+ player.showSourcechooserSelector();
86
+ }
87
+ player.sourcechooserButton.querySelector('input[type=radio]:checked').focus();
88
+ break;
89
+ case 13:
90
+ player.showSourcechooserSelector();
91
+ player.sourcechooserButton.querySelector('input[type=radio]:checked').focus();
92
+ break;
93
+ case 27:
94
+ player.hideSourcechooserSelector();
95
+ player.sourcechooserButton.querySelector('button').focus();
96
+ break;
97
+ default:
98
+ return true;
99
+ }
100
+
101
+ e.preventDefault();
102
+ e.stopPropagation();
103
+ }
104
+ });
105
+
106
+ player.sourcechooserButton.addEventListener('focusout', mejs.Utils.debounce(function () {
107
+ setTimeout(function () {
108
+ var parent = document.activeElement.closest('.' + t.options.classPrefix + 'sourcechooser-selector');
109
+ if (!parent) {
110
+ player.hideSourcechooserSelector();
111
+ }
112
+ }, 0);
113
+ }, 100));
114
+
115
+ var selectorLIs = player.sourcechooserButton.querySelectorAll('li');
116
+
117
+ for (var _i2 = 0, _total2 = selectorLIs.length; _i2 < _total2; _i2++) {
118
+ selectorLIs[_i2].addEventListener('click', function () {
119
+ var radio = this.querySelectorAll('input[type=radio]')[0];
120
+ var target_res = radio.value;
121
+ if (t.getCurrentRes() !== target_res) {
122
+ t.changeRes(target_res);
123
+ }
124
+ });
125
+ }
126
+
127
+ player.sourcechooserButton.querySelector('button').addEventListener('click', function () {
128
+ if (mejs.Utils.hasClass(mejs.Utils.siblings(this), t.options.classPrefix + 'offscreen')) {
129
+ player.showSourcechooserSelector();
130
+ player.sourcechooserButton.querySelector('input[type=radio]:checked').focus();
131
+ } else {
132
+ player.hideSourcechooserSelector();
133
+ }
134
+ });
135
+ },
136
+ addSourceButton: function addSourceButton(src, label, type, isCurrent) {
137
+ var t = this;
138
+ if (label === '' || label === undefined) {
139
+ label = src;
140
+ }
141
+ type = type.split('/')[1];
142
+
143
+ t.sourcechooserButton.querySelector('ul').innerHTML += '<li' + (isCurrent ? ' class="sourcechooser-selected"' : '') + '>' + ('<input type="radio" name="' + t.id + '_sourcechooser" id="' + t.id + '_sourcechooser_' + label + '" ') + ('role="menuitemradio" value="' + label + '" ' + (isCurrent ? 'checked="checked"' : '') + ' aria-selected="' + isCurrent + '"/>') + ('<label for="' + t.id + '_sourcechooser_' + label + '" aria-hidden="true">' + label + '</label>') + '</li>';
144
+
145
+ },
146
+ hideSourcechooserSelector: function hideSourcechooserSelector() {
147
+
148
+ var t = this;
149
+
150
+ if (t.sourcechooserButton === undefined || !t.sourcechooserButton.querySelector('input[type=radio]')) {
151
+ return;
152
+ }
153
+
154
+ var selector = t.sourcechooserButton.querySelector('.' + t.options.classPrefix + 'sourcechooser-selector'),
155
+ radios = selector.querySelectorAll('input[type=radio]');
156
+ selector.setAttribute('aria-expanded', 'false');
157
+ selector.setAttribute('aria-hidden', 'true');
158
+ mejs.Utils.addClass(selector, t.options.classPrefix + 'offscreen');
159
+
160
+ for (var i = 0, total = radios.length; i < total; i++) {
161
+ radios[i].setAttribute('tabindex', '-1');
162
+ }
163
+ },
164
+ showSourcechooserSelector: function showSourcechooserSelector() {
165
+
166
+ var t = this;
167
+
168
+ if (t.sourcechooserButton === undefined || !t.sourcechooserButton.querySelector('input[type=radio]')) {
169
+ return;
170
+ }
171
+
172
+ var selector = t.sourcechooserButton.querySelector('.' + t.options.classPrefix + 'sourcechooser-selector'),
173
+ radios = selector.querySelectorAll('input[type=radio]');
174
+ selector.setAttribute('aria-expanded', 'true');
175
+ selector.setAttribute('aria-hidden', 'false');
176
+ mejs.Utils.removeClass(selector, t.options.classPrefix + 'offscreen');
177
+
178
+ for (var i = 0, total = radios.length; i < total; i++) {
179
+ radios[i].setAttribute('tabindex', '0');
180
+ }
181
+ },
182
+ getCurrentRes() {
183
+
184
+ if ( typeof this.currentRes !== 'undefined' ) {
185
+
186
+ return this.currentRes;
187
+
188
+ } else {
189
+
190
+ try {
191
+
192
+ return this.node.children[0].dataset.res;
193
+
194
+ } catch(e) {
195
+
196
+ return '';
197
+ }
198
+ }
199
+ },
200
+ changeRes(target_res) {
201
+
202
+ var currentRes = this.getCurrentRes();
203
+
204
+ if ( currentRes == target_res
205
+ || ! this.availableRes
206
+ || ! this.availableRes[target_res] ) { return; }
207
+
208
+ var media = this.media;
209
+ var src = this.availableRes[target_res];
210
+ var currentTime = media.currentTime;
211
+ var paused = media.paused;
212
+
213
+ var radio = document.querySelectorAll('#' + this.id + '_sourcechooser_' + target_res)[0];
214
+ radio.setAttribute('aria-selected', true);
215
+ radio.checked = true;
216
+ radio.parentElement.className = 'sourcechooser-selected';
217
+
218
+ var otherRadios = radio.parentElement.closest('.' + this.options.classPrefix + 'sourcechooser-selector').querySelectorAll('input[type=radio]');
219
+
220
+ for (var j = 0, radioTotal = otherRadios.length; j < radioTotal; j++) {
221
+ if (otherRadios[j] !== radio) {
222
+ otherRadios[j].setAttribute('aria-selected', 'false');
223
+ otherRadios[j].removeAttribute('checked');
224
+ otherRadios[j].parentElement.className = '';
225
+ }
226
+ }
227
+
228
+ var canPlayAfterSourceSwitchHandler = function(e) {
229
+ media.setCurrentTime(currentTime);
230
+ if (!paused) {
231
+ media.play();
232
+ }
233
+ media.removeEventListener('canplay', canPlayAfterSourceSwitchHandler);
234
+ }
235
+ ;
236
+
237
+ media.pause();
238
+
239
+ if ( currentTime != 0 ) {
240
+ var video = jQuery(media).children('video')[0];
241
+ var canvas = document.createElement("canvas");
242
+ canvas.className = 'kgvid_temp_thumb';
243
+ canvas.width = ( video.videoWidth > video.videoHeight ) ? video.offsetWidth : video.videoWidth/video.videoHeight*video.offsetHeight;
244
+ canvas.height = ( video.videoWidth > video.videoHeight ) ? video.videoHeight/video.videoWidth*video.offsetWidth : video.offsetHeight;
245
+ var topOffset = Math.round((video.offsetHeight - canvas.height)/2);
246
+ if (topOffset > 2) {
247
+ canvas.setAttribute('style', 'top:' + topOffset + 'px;');
248
+ }
249
+ var leftOffset = Math.round((video.offsetWidth - canvas.width)/2);
250
+ if (leftOffset > 2) {
251
+ canvas.setAttribute('style', 'left:' + leftOffset + 'px;');
252
+ }
253
+ var context = canvas.getContext('2d');
254
+ context.fillRect(0, 0, canvas.width, canvas.height);
255
+ context.drawImage(video, 0, 0, canvas.width, canvas.height);
256
+ jQuery('#'+media.id).parents('.mejs-mediaelement').append(canvas);
257
+
258
+ jQuery(media).one( 'seeked', function() {
259
+ jQuery(canvas).remove();
260
+ });
261
+ }
262
+
263
+ media.setSrc(src);
264
+ media.load();
265
+ this.currentRes = target_res;
266
+ media.addEventListener('canplay', canPlayAfterSourceSwitchHandler);
267
+
268
+ }
269
+ });
270
+
271
+ },{}]},{},[1]);
js/mejs-speed.js CHANGED
@@ -1,174 +1,174 @@
1
- /*!
2
- * MediaElement.js
3
- * http://www.mediaelementjs.com/
4
- *
5
- * Wrapper that mimics native HTML5 MediaElement (audio and video)
6
- * using a variety of technologies (pure JavaScript, Flash, iframe)
7
- *
8
- * Copyright 2010-2017, John Dyer (http://j.hn/)
9
- * License: MIT
10
- *
11
- */(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
12
- 'use strict';
13
-
14
- Object.assign(mejs.MepDefaults, {
15
- speeds: ['2.00', '1.50', '1.25', '1.00', '0.75'],
16
-
17
- defaultSpeed: '1.00',
18
-
19
- speedChar: 'x',
20
-
21
- speedText: null
22
- });
23
-
24
- Object.assign(MediaElementPlayer.prototype, {
25
- buildspeed: function buildspeed(player, controls, layers, media) {
26
- var t = this,
27
- isNative = t.media.rendererName !== null && /(native|html5)/i.test(t.media.rendererName);
28
-
29
- if (!isNative) {
30
- return;
31
- }
32
-
33
- var speeds = [],
34
- speedTitle = mejs.Utils.isString(t.options.speedText) ? t.options.speedText : mejs.i18n.t('mejs.speed-rate'),
35
- getSpeedNameFromValue = function getSpeedNameFromValue(value) {
36
- for (var i = 0, total = speeds.length; i < total; i++) {
37
- if (speeds[i].value === value) {
38
- return speeds[i].name;
39
- }
40
- }
41
- };
42
-
43
- var playbackSpeed = void 0,
44
- defaultInArray = false;
45
-
46
- for (var i = 0, total = t.options.speeds.length; i < total; i++) {
47
- var s = t.options.speeds[i];
48
-
49
- if (typeof s === 'string') {
50
- speeds.push({
51
- name: '' + s + t.options.speedChar,
52
- value: s
53
- });
54
-
55
- if (s === t.options.defaultSpeed) {
56
- defaultInArray = true;
57
- }
58
- } else {
59
- speeds.push(s);
60
- if (s.value === t.options.defaultSpeed) {
61
- defaultInArray = true;
62
- }
63
- }
64
- }
65
-
66
- if (!defaultInArray) {
67
- speeds.push({
68
- name: t.options.defaultSpeed + t.options.speedChar,
69
- value: t.options.defaultSpeed
70
- });
71
- }
72
-
73
- speeds.sort(function (a, b) {
74
- return parseFloat(b.value) - parseFloat(a.value);
75
- });
76
-
77
- t.cleanspeed(player);
78
-
79
- player.speedButton = document.createElement('div');
80
- player.speedButton.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'speed-button';
81
- player.speedButton.innerHTML = '<button type="button" aria-controls="' + t.id + '" title="' + speedTitle + '" ' + ('aria-label="' + speedTitle + '" tabindex="0">' + getSpeedNameFromValue(t.options.defaultSpeed) + '</button>') + ('<div class="' + t.options.classPrefix + 'speed-selector ' + t.options.classPrefix + 'offscreen">') + ('<ul class="' + t.options.classPrefix + 'speed-selector-list"></ul>') + '</div>';
82
-
83
- t.addControlElement(player.speedButton, 'speed');
84
-
85
- for (var _i = 0, _total = speeds.length; _i < _total; _i++) {
86
-
87
- var inputId = t.id + '-speed-' + speeds[_i].value;
88
-
89
- player.speedButton.querySelector('ul').innerHTML += '<li class="' + t.options.classPrefix + 'speed-selector-list-item' + (speeds[_i].value === t.options.defaultSpeed ? ' ' + t.options.classPrefix + 'speed-selected' : '') + '">' + ('<input class="' + t.options.classPrefix + 'speed-selector-input" type="radio" name="' + t.id + '_speed"') + ('disabled="disabled" value="' + speeds[_i].value + '" id="' + inputId + '" ') + ((speeds[_i].value === t.options.defaultSpeed ? ' checked="checked"' : '') + '/>') + ('<label for="' + inputId + '" class="' + t.options.classPrefix + 'speed-selector-label') + ((speeds[_i].value === t.options.defaultSpeed ? ' ' + t.options.classPrefix + 'speed-selected' : '') + '">') + (speeds[_i].name + '</label>') + '</li>';
90
- }
91
-
92
- playbackSpeed = t.options.defaultSpeed;
93
-
94
- player.speedSelector = player.speedButton.querySelector('.' + t.options.classPrefix + 'speed-selector');
95
-
96
- var inEvents = ['mouseenter', 'focusin'],
97
- outEvents = ['mouseleave', 'focusout'],
98
- radios = player.speedButton.querySelectorAll('input[type="radio"]'),
99
- labels = player.speedButton.querySelectorAll('.' + t.options.classPrefix + 'speed-selector-label');
100
-
101
- for (var _i2 = 0, _total2 = inEvents.length; _i2 < _total2; _i2++) {
102
- player.speedButton.addEventListener(inEvents[_i2], function () {
103
- mejs.Utils.removeClass(player.speedSelector, t.options.classPrefix + 'offscreen');
104
- player.speedSelector.style.height = player.speedSelector.querySelector('ul').offsetHeight;
105
- player.speedSelector.style.top = -1 * parseFloat(player.speedSelector.offsetHeight) + 'px';
106
- });
107
- }
108
-
109
- for (var _i3 = 0, _total3 = outEvents.length; _i3 < _total3; _i3++) {
110
- player.speedSelector.addEventListener(outEvents[_i3], function () {
111
- mejs.Utils.addClass(this, t.options.classPrefix + 'offscreen');
112
- });
113
- }
114
-
115
- for (var _i4 = 0, _total4 = radios.length; _i4 < _total4; _i4++) {
116
- var radio = radios[_i4];
117
- radio.disabled = false;
118
- radio.addEventListener('click', function () {
119
- var self = this,
120
- newSpeed = self.value;
121
-
122
- playbackSpeed = newSpeed;
123
- media.playbackRate = parseFloat(newSpeed);
124
- player.speedButton.querySelector('button').innerHTML = getSpeedNameFromValue(newSpeed);
125
- var selected = player.speedButton.querySelectorAll('.' + t.options.classPrefix + 'speed-selected');
126
- for (var _i5 = 0, _total5 = selected.length; _i5 < _total5; _i5++) {
127
- mejs.Utils.removeClass(selected[_i5], t.options.classPrefix + 'speed-selected');
128
- }
129
-
130
- self.checked = true;
131
- var siblings = mejs.Utils.siblings(self, function (el) {
132
- return mejs.Utils.hasClass(el, t.options.classPrefix + 'speed-selector-label');
133
- });
134
- for (var j = 0, _total6 = siblings.length; j < _total6; j++) {
135
- mejs.Utils.addClass(siblings[j], t.options.classPrefix + 'speed-selected');
136
- mejs.Utils.addClass(siblings[j].parentElement, t.options.classPrefix + 'speed-selected');
137
- }
138
-
139
- });
140
- }
141
-
142
- for (var _i6 = 0, _total7 = labels.length; _i6 < _total7; _i6++) {
143
- labels[_i6].addEventListener('click', function () {
144
- var radio = mejs.Utils.siblings(this, function (el) {
145
- return el.tagName === 'INPUT';
146
- })[0],
147
- event = mejs.Utils.createEvent('click', radio);
148
- radio.dispatchEvent(event);
149
- });
150
- }
151
-
152
- player.speedSelector.addEventListener('keydown', function (e) {
153
- e.stopPropagation();
154
- });
155
-
156
- media.addEventListener('loadedmetadata', function () {
157
- if (playbackSpeed) {
158
- media.playbackRate = parseFloat(playbackSpeed);
159
- }
160
- });
161
- },
162
- cleanspeed: function cleanspeed(player) {
163
- if (player) {
164
- if (player.speedButton) {
165
- player.speedButton.parentNode.removeChild(player.speedButton);
166
- }
167
- if (player.speedSelector) {
168
- player.speedSelector.parentNode.removeChild(player.speedSelector);
169
- }
170
- }
171
- }
172
- });
173
-
174
- },{}]},{},[1]);
1
+ /*!
2
+ * MediaElement.js
3
+ * http://www.mediaelementjs.com/
4
+ *
5
+ * Wrapper that mimics native HTML5 MediaElement (audio and video)
6
+ * using a variety of technologies (pure JavaScript, Flash, iframe)
7
+ *
8
+ * Copyright 2010-2017, John Dyer (http://j.hn/)
9
+ * License: MIT
10
+ *
11
+ */(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
12
+ 'use strict';
13
+
14
+ Object.assign(mejs.MepDefaults, {
15
+ speeds: ['2.00', '1.50', '1.25', '1.00', '0.75'],
16
+
17
+ defaultSpeed: '1.00',
18
+
19
+ speedChar: 'x',
20
+
21
+ speedText: null
22
+ });
23
+
24
+ Object.assign(MediaElementPlayer.prototype, {
25
+ buildspeed: function buildspeed(player, controls, layers, media) {
26
+ var t = this,
27
+ isNative = t.media.rendererName !== null && /(native|html5)/i.test(t.media.rendererName);
28
+
29
+ if (!isNative) {
30
+ return;
31
+ }
32
+
33
+ var speeds = [],
34
+ speedTitle = mejs.Utils.isString(t.options.speedText) ? t.options.speedText : mejs.i18n.t('mejs.speed-rate'),
35
+ getSpeedNameFromValue = function getSpeedNameFromValue(value) {
36
+ for (var i = 0, total = speeds.length; i < total; i++) {
37
+ if (speeds[i].value === value) {
38
+ return speeds[i].name;
39
+ }
40
+ }
41
+ };
42
+
43
+ var playbackSpeed = void 0,
44
+ defaultInArray = false;
45
+
46
+ for (var i = 0, total = t.options.speeds.length; i < total; i++) {
47
+ var s = t.options.speeds[i];
48
+
49
+ if (typeof s === 'string') {
50
+ speeds.push({
51
+ name: '' + s + t.options.speedChar,
52
+ value: s
53
+ });
54
+
55
+ if (s === t.options.defaultSpeed) {
56
+ defaultInArray = true;
57
+ }
58
+ } else {
59
+ speeds.push(s);
60
+ if (s.value === t.options.defaultSpeed) {
61
+ defaultInArray = true;
62
+ }
63
+ }
64
+ }
65
+
66
+ if (!defaultInArray) {
67
+ speeds.push({
68
+ name: t.options.defaultSpeed + t.options.speedChar,
69
+ value: t.options.defaultSpeed
70
+ });
71
+ }
72
+
73
+ speeds.sort(function (a, b) {
74
+ return parseFloat(b.value) - parseFloat(a.value);
75
+ });
76
+
77
+ t.cleanspeed(player);
78
+
79
+ player.speedButton = document.createElement('div');
80
+ player.speedButton.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'speed-button';
81
+ player.speedButton.innerHTML = '<button type="button" aria-controls="' + t.id + '" title="' + speedTitle + '" ' + ('aria-label="' + speedTitle + '" tabindex="0">' + getSpeedNameFromValue(t.options.defaultSpeed) + '</button>') + ('<div class="' + t.options.classPrefix + 'speed-selector ' + t.options.classPrefix + 'offscreen">') + ('<ul class="' + t.options.classPrefix + 'speed-selector-list"></ul>') + '</div>';
82
+
83
+ t.addControlElement(player.speedButton, 'speed');
84
+
85
+ for (var _i = 0, _total = speeds.length; _i < _total; _i++) {
86
+
87
+ var inputId = t.id + '-speed-' + speeds[_i].value;
88
+
89
+ player.speedButton.querySelector('ul').innerHTML += '<li class="' + t.options.classPrefix + 'speed-selector-list-item' + (speeds[_i].value === t.options.defaultSpeed ? ' ' + t.options.classPrefix + 'speed-selected' : '') + '">' + ('<input class="' + t.options.classPrefix + 'speed-selector-input" type="radio" name="' + t.id + '_speed"') + ('disabled="disabled" value="' + speeds[_i].value + '" id="' + inputId + '" ') + ((speeds[_i].value === t.options.defaultSpeed ? ' checked="checked"' : '') + '/>') + ('<label for="' + inputId + '" class="' + t.options.classPrefix + 'speed-selector-label') + ((speeds[_i].value === t.options.defaultSpeed ? ' ' + t.options.classPrefix + 'speed-selected' : '') + '">') + (speeds[_i].name + '</label>') + '</li>';
90
+ }
91
+
92
+ playbackSpeed = t.options.defaultSpeed;
93
+
94
+ player.speedSelector = player.speedButton.querySelector('.' + t.options.classPrefix + 'speed-selector');
95
+
96
+ var inEvents = ['mouseenter', 'focusin'],
97
+ outEvents = ['mouseleave', 'focusout'],
98
+ radios = player.speedButton.querySelectorAll('input[type="radio"]'),
99
+ labels = player.speedButton.querySelectorAll('.' + t.options.classPrefix + 'speed-selector-label');
100
+
101
+ for (var _i2 = 0, _total2 = inEvents.length; _i2 < _total2; _i2++) {
102
+ player.speedButton.addEventListener(inEvents[_i2], function () {
103
+ mejs.Utils.removeClass(player.speedSelector, t.options.classPrefix + 'offscreen');
104
+ player.speedSelector.style.height = player.speedSelector.querySelector('ul').offsetHeight;
105
+ player.speedSelector.style.top = -1 * parseFloat(player.speedSelector.offsetHeight) + 'px';
106
+ });
107
+ }
108
+
109
+ for (var _i3 = 0, _total3 = outEvents.length; _i3 < _total3; _i3++) {
110
+ player.speedSelector.addEventListener(outEvents[_i3], function () {
111
+ mejs.Utils.addClass(this, t.options.classPrefix + 'offscreen');
112
+ });
113
+ }
114
+
115
+ for (var _i4 = 0, _total4 = radios.length; _i4 < _total4; _i4++) {
116
+ var radio = radios[_i4];
117
+ radio.disabled = false;
118
+ radio.addEventListener('click', function () {
119
+ var self = this,
120
+ newSpeed = self.value;
121
+
122
+ playbackSpeed = newSpeed;
123
+ media.playbackRate = parseFloat(newSpeed);
124
+ player.speedButton.querySelector('button').innerHTML = getSpeedNameFromValue(newSpeed);
125
+ var selected = player.speedButton.querySelectorAll('.' + t.options.classPrefix + 'speed-selected');
126
+ for (var _i5 = 0, _total5 = selected.length; _i5 < _total5; _i5++) {
127
+ mejs.Utils.removeClass(selected[_i5], t.options.classPrefix + 'speed-selected');
128
+ }
129
+
130
+ self.checked = true;
131
+ var siblings = mejs.Utils.siblings(self, function (el) {
132
+ return mejs.Utils.hasClass(el, t.options.classPrefix + 'speed-selector-label');
133
+ });
134
+ for (var j = 0, _total6 = siblings.length; j < _total6; j++) {
135
+ mejs.Utils.addClass(siblings[j], t.options.classPrefix + 'speed-selected');
136
+ mejs.Utils.addClass(siblings[j].parentElement, t.options.classPrefix + 'speed-selected');
137
+ }
138
+
139
+ });
140
+ }
141
+
142
+ for (var _i6 = 0, _total7 = labels.length; _i6 < _total7; _i6++) {
143
+ labels[_i6].addEventListener('click', function () {
144
+ var radio = mejs.Utils.siblings(this, function (el) {
145
+ return el.tagName === 'INPUT';
146
+ })[0],
147
+ event = mejs.Utils.createEvent('click', radio);
148
+ radio.dispatchEvent(event);
149
+ });
150
+ }
151
+
152
+ player.speedSelector.addEventListener('keydown', function (e) {
153
+ e.stopPropagation();
154
+ });
155
+
156
+ media.addEventListener('loadedmetadata', function () {
157
+ if (playbackSpeed) {
158
+ media.playbackRate = parseFloat(playbackSpeed);
159
+ }
160
+ });
161
+ },
162
+ cleanspeed: function cleanspeed(player) {
163
+ if (player) {
164
+ if (player.speedButton) {
165
+ player.speedButton.parentNode.removeChild(player.speedButton);
166
+ }
167
+ if (player.speedSelector) {
168
+ player.speedSelector.parentNode.removeChild(player.speedSelector);
169
+ }
170
+ }
171
+ }
172
+ });
173
+
174
+ },{}]},{},[1]);
js/mep-feature-sourcechooser.js CHANGED
@@ -1,167 +1,167 @@
1
- // Source Chooser Plugin
2
- (function($) {
3
-
4
- $.extend(mejs.MepDefaults, {
5
- sourcechooserText: 'Source Chooser'
6
- });
7
-
8
- $.extend(MediaElementPlayer.prototype, {
9
- buildsourcechooser: function(player, controls, layers, media) {
10
-
11
- var t = this;
12
- var enable_plugin = false;
13
-
14
- for (var i in this.node.children) {
15
- var src = this.node.children[i];
16
- if (src.nodeName === 'SOURCE' && src.dataset.res != undefined && src.dataset.res !== '' && (media.canPlayType(src.type) == 'probably' || media.canPlayType(src.type) == 'maybe')) {
17
- var enable_plugin = true;
18
- }
19
- }
20
-
21
- if ( enable_plugin == true ) {
22
-
23
- player.sourcechooserButton =
24
- $('<div class="mejs-button mejs-sourcechooser-button">'+
25
- '<button type="button" aria-controls="' + t.id + '" title="' + t.options.sourcechooserText + '" aria-label="' + t.options.sourcechooserText + '"></button>'+
26
- '<div class="mejs-menu-arrow">'+
27
- '<div class="mejs-sourcechooser-selector">'+
28
- '<span>'+kgvidL10n_frontend.quality+'</span>'+
29
- '<ul>'+
30
- '</ul>'+
31
- '</div>'+
32
- '</div>'+
33
- '</div>')
34
- .appendTo(controls)
35
-
36
- // hover
37
- .hover(function() {
38
- $(this).find('.mejs-menu-arrow').show();
39
- }, function() {
40
- $(this).find('.mejs-menu-arrow').hide();
41
- })
42
-
43
- // handle clicks to the source radio buttons
44
- .delegate('li', 'click', function() {
45
-
46
- player.changeRes(this.innerHTML);
47
-
48
- });
49
-
50
- // add to list
51
- player.availableRes = new Object();
52
- sources = new Array();
53
-
54
- for (var i in this.node.children) {
55
-
56
- var src = this.node.children[i];
57
- if (src.nodeName === 'SOURCE' && src.dataset.res != undefined && src.dataset.res !== '' && (media.canPlayType(src.type) == 'probably' || media.canPlayType(src.type) == 'maybe')) {
58
-
59
- sources[parseFloat(src.dataset.res)] = src;
60
-
61
- }
62
-
63
- }
64
- sources.reverse();
65
-
66
- for (var i in sources) {
67
- var src = sources[i];
68
-
69
- player.addSourceButton(src.src, src.dataset.res, src.type, media.src == src.src);
70
- player.availableRes[src.dataset.res] = src.src;
71
-
72
- if ( src.dataset.default_res != undefined ) {
73
- if ( this.currentRes != src.dataset.res ) {
74
- this.changeRes(src.dataset.res);
75
- }
76
- }
77
-
78
- }
79
-
80
- }
81
-
82
- },
83
-
84
- addSourceButton: function(src, label, type, isCurrent) {
85
- var t = this;
86
- if (label === '' || label == undefined) {
87
- label = src;
88
- }
89
- type = type.split('/')[1];
90
-
91
- t.sourcechooserButton.find('ul').append(
92
- $('<li' + (isCurrent ? ' class="mejs-sourcechooser-selected"' : '') + ' name="' + t.id + '_sourcechooser" id="' + t.id + '_sourcechooser_' + label + type + '" >'+
93
- label+
94
- '</li>')
95
- );
96
-
97
- },
98
-
99
- getCurrentRes: function() {
100
-
101
- if ( typeof this.currentRes !== 'undefined' ) {
102
-
103
- return this.currentRes;
104
-
105
- } else {
106
-
107
- try {
108
-
109
- return res = this.node.children[0].dataset.res;
110
-
111
- } catch(e) {
112
-
113
- return '';
114
- }
115
- }
116
- },
117
-
118
- changeRes: function(target_res) {
119
-
120
- var media = this.media;
121
- var src = this.availableRes[target_res];
122
-
123
- if (media.currentSrc != src) {
124
- var currentTime = media.currentTime;
125
- var paused = media.paused;
126
- media.pause();
127
- if ( currentTime != 0 ) {
128
- var canvas = document.createElement("canvas");
129
- canvas.className = 'kgvid_temp_thumb';
130
- canvas.width = this.width;
131
- canvas.height = this.height;
132
- var context = canvas.getContext('2d');
133
- context.fillRect(0, 0, this.width, this.height);
134
- context.drawImage(media, 0, 0, this.width, this.height);
135
- jQuery('#'+this.id+' .mejs-layers').append(canvas);
136
-
137
- jQuery(media).one( 'seeked', function() {
138
- jQuery(canvas).remove();
139
- });
140
- }
141
- media.preload = "metadata";
142
- setTimeout(function(){ media.setSrc(src); }, 0);
143
- this.currentRes = target_res;
144
- jQuery(this.sourcechooserButton).find('li').removeClass('mejs-sourcechooser-selected');
145
- jQuery(this.sourcechooserButton).find('li:contains('+target_res+')').addClass('mejs-sourcechooser-selected');
146
-
147
- media.addEventListener('loadedmetadata', function(e) {
148
- media.currentTime = currentTime;
149
- }, true);
150
-
151
- var canPlayAfterSourceSwitchHandler = function(e) {
152
- if (!paused) {
153
- media.play();
154
- }
155
-
156
- media.removeEventListener('canplay', canPlayAfterSourceSwitchHandler, true);
157
- };
158
- media.addEventListener('canplay', canPlayAfterSourceSwitchHandler, true);
159
- media.load();
160
-
161
- }
162
-
163
- }
164
-
165
- });
166
-
167
- })(mejs.$);
1
+ // Source Chooser Plugin
2
+ (function($) {
3
+
4
+ $.extend(mejs.MepDefaults, {
5
+ sourcechooserText: 'Source Chooser'
6
+ });
7
+
8
+ $.extend(MediaElementPlayer.prototype, {
9
+ buildsourcechooser: function(player, controls, layers, media) {
10
+
11
+ var t = this;
12
+ var enable_plugin = false;
13
+
14
+ for (var i in this.node.children) {
15
+ var src = this.node.children[i];
16
+ if (src.nodeName === 'SOURCE' && src.dataset.res != undefined && src.dataset.res !== '' && (media.canPlayType(src.type) == 'probably' || media.canPlayType(src.type) == 'maybe')) {
17
+ var enable_plugin = true;
18
+ }
19
+ }
20
+
21
+ if ( enable_plugin == true ) {
22
+
23
+ player.sourcechooserButton =
24
+ $('<div class="mejs-button mejs-sourcechooser-button">'+
25
+ '<button type="button" aria-controls="' + t.id + '" title="' + t.options.sourcechooserText + '" aria-label="' + t.options.sourcechooserText + '"></button>'+
26
+ '<div class="mejs-menu-arrow">'+
27
+ '<div class="mejs-sourcechooser-selector">'+
28
+ '<span>'+kgvidL10n_frontend.quality+'</span>'+
29
+ '<ul>'+
30
+ '</ul>'+
31
+ '</div>'+
32
+ '</div>'+
33
+ '</div>')
34
+ .appendTo(controls)
35
+
36
+ // hover
37
+ .hover(function() {
38
+ $(this).find('.mejs-menu-arrow').show();
39
+ }, function() {
40
+ $(this).find('.mejs-menu-arrow').hide();
41
+ })
42
+
43
+ // handle clicks to the source radio buttons
44
+ .delegate('li', 'click', function() {
45
+
46
+ player.changeRes(this.innerHTML);
47
+
48
+ });
49
+
50
+ // add to list
51
+ player.availableRes = new Object();
52
+ sources = new Array();
53
+
54
+ for (var i in this.node.children) {
55
+
56
+ var src = this.node.children[i];
57
+ if (src.nodeName === 'SOURCE' && src.dataset.res != undefined && src.dataset.res !== '' && (media.canPlayType(src.type) == 'probably' || media.canPlayType(src.type) == 'maybe')) {
58
+
59
+ sources[parseFloat(src.dataset.res)] = src;
60
+
61
+ }
62
+
63
+ }
64
+ sources.reverse();
65
+
66
+ for (var i in sources) {
67
+ var src = sources[i];
68
+
69
+ player.addSourceButton(src.src, src.dataset.res, src.type, media.src == src.src);
70
+ player.availableRes[src.dataset.res] = src.src;
71
+
72
+ if ( src.dataset.default_res != undefined ) {
73
+ if ( this.currentRes != src.dataset.res ) {
74
+ this.changeRes(src.dataset.res);
75
+ }
76
+ }
77
+
78
+ }
79
+
80
+ }
81
+
82
+ },
83
+
84
+ addSourceButton: function(src, label, type, isCurrent) {
85
+ var t = this;
86
+ if (label === '' || label == undefined) {
87
+ label = src;
88
+ }
89
+ type = type.split('/')[1];
90
+
91
+ t.sourcechooserButton.find('ul').append(
92
+ $('<li' + (isCurrent ? ' class="mejs-sourcechooser-selected"' : '') + ' name="' + t.id + '_sourcechooser" id="' + t.id + '_sourcechooser_' + label + type + '" >'+
93
+ label+
94
+ '</li>')
95
+ );
96
+
97
+ },
98
+
99
+ getCurrentRes: function() {
100
+
101
+ if ( typeof this.currentRes !== 'undefined' ) {
102
+
103
+ return this.currentRes;
104
+
105
+ } else {
106
+
107
+ try {
108
+
109
+ return res = this.node.children[0].dataset.res;
110
+
111
+ } catch(e) {
112
+
113
+ return '';
114
+ }
115
+ }
116
+ },
117
+
118
+ changeRes: function(target_res) {
119
+
120
+ var media = this.media;
121
+ var src = this.availableRes[target_res];
122
+
123
+ if (media.currentSrc != src) {
124
+ var currentTime = media.currentTime;
125
+ var paused = media.paused;
126
+ media.pause();
127
+ if ( currentTime != 0 ) {
128
+ var canvas = document.createElement("canvas");
129
+ canvas.className = 'kgvid_temp_thumb';
130
+ canvas.width = this.width;
131
+ canvas.height = this.height;
132
+ var context = canvas.getContext('2d');
133
+ context.fillRect(0, 0, this.width, this.height);
134
+ context.drawImage(media, 0, 0, this.width, this.height);
135
+ jQuery('#'+this.id+' .mejs-layers').append(canvas);
136
+
137
+ jQuery(media).one( 'seeked', function() {
138
+ jQuery(canvas).remove();
139
+ });
140
+ }
141
+ media.preload = "metadata";
142
+ setTimeout(function(){ media.setSrc(src); }, 0);
143
+ this.currentRes = target_res;
144
+ jQuery(this.sourcechooserButton).find('li').removeClass('mejs-sourcechooser-selected');
145
+ jQuery(this.sourcechooserButton).find('li:contains('+target_res+')').addClass('mejs-sourcechooser-selected');
146
+
147
+ media.addEventListener('loadedmetadata', function(e) {
148
+ media.currentTime = currentTime;
149
+ }, true);
150
+
151
+ var canPlayAfterSourceSwitchHandler = function(e) {
152
+ if (!paused) {
153
+ media.play();
154
+ }
155
+
156
+ media.removeEventListener('canplay', canPlayAfterSourceSwitchHandler, true);
157
+ };
158
+ media.addEventListener('canplay', canPlayAfterSourceSwitchHandler, true);
159
+ media.load();
160
+
161
+ }
162
+
163
+ }
164
+
165
+ });
166
+
167
+ })(mejs.$);
js/mep-speed.js CHANGED
@@ -1,170 +1,170 @@
1
- (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
2
- 'use strict';
3
-
4
- /**
5
- * Speed button
6
- *
7
- * This feature creates a button to speed media in different levels.
8
- */
9
-
10
- // Translations (English required)
11
- mejs.i18n.en["mejs.speed"] = "Speed Rate";
12
-
13
-
14
- // Feature configuration
15
- Object.assign(mejs.MepDefaults, {
16
- /**
17
- * The speeds media can be accelerated
18
- *
19
- * Supports an array of float values or objects with format
20
- * [{name: 'Slow', value: '0.75'}, {name: 'Normal', value: '1.00'}, ...]
21
- * @type {{String[]|Object[]}}
22
- */
23
- speeds: ['2.00', '1.50', '1.25', '1.00', '0.75'],
24
- /**
25
- * @type {String}
26
- */
27
- defaultSpeed: '1.00',
28
- /**
29
- * @type {String}
30
- */
31
- speedChar: 'x',
32
- /**
33
- * @type {?String}
34
- */
35
- speedText: ''
36
- });
37
-
38
- Object.assign(MediaElementPlayer.prototype, {
39
-
40
- /**
41
- * Feature constructor.
42
- *
43
- * Always has to be prefixed with `build` and the name that will be used in MepDefaults.features list
44
- * @param {MediaElementPlayer} player
45
- * @param {$} controls
46
- * @param {$} layers
47
- * @param {HTMLElement} media
48
- */
49
- buildspeed: function buildspeed(player, controls, layers, media) {
50
- var t = this,
51
- isNative = t.media.rendererName !== null && t.media.rendererName.match(/(native|html5)/) !== null;
52
-
53
- if (!isNative) {
54
- return;
55
- }
56
-
57
- var playbackSpeed = void 0,
58
- inputId = void 0,
59
- speedTitle = mejs.Utils.isString(t.options.speedText) ? t.options.speedText : 'mejs.i18n.t(mejs.speed)',
60
- speeds = [],
61
- defaultInArray = false,
62
- getSpeedNameFromValue = function getSpeedNameFromValue(value) {
63
- for (var i = 0, len = speeds.length; i < len; i++) {
64
- if (speeds[i].value === value) {
65
- return speeds[i].name;
66
- }
67
- }
68
- };
69
-
70
- for (var i = 0, len = t.options.speeds.length; i < len; i++) {
71
- var s = t.options.speeds[i];
72
-
73
- if (typeof s === 'string') {
74
- speeds.push({
75
- name: "" + s + t.options.speedChar,
76
- value: s
77
- });
78
- if (s === t.options.defaultSpeed) {
79
- defaultInArray = true;
80
- }
81
- } else {
82
- speeds.push(s);
83
- if (s.value === t.options.defaultSpeed) {
84
- defaultInArray = true;
85
- }
86
- }
87
- }
88
-
89
- if (!defaultInArray) {
90
- speeds.push({
91
- name: t.options.defaultSpeed + t.options.speedChar,
92
- value: t.options.defaultSpeed
93
- });
94
- }
95
-
96
- speeds.sort(function (a, b) {
97
- return parseFloat(b.value) - parseFloat(a.value);
98
- });
99
-
100
- t.clearspeed(player);
101
-
102
- player.speedButton = $("<div class=\"" + t.options.classPrefix + "button " + t.options.classPrefix + "speed-button\">" + ("<button type=\"button\" aria-controls=\"" + t.id + "\" title=\"" + speedTitle + "\" ") + ("aria-label=\"" + speedTitle + "\" tabindex=\"0\">" + getSpeedNameFromValue(t.options.defaultSpeed) + "</button>") + ("<div class=\"" + t.options.classPrefix + "speed-selector " + t.options.classPrefix + "offscreen\">") + ("<ul class=\"" + t.options.classPrefix + "speed-selector-list\"></ul>") + "</div>" + "</div>");
103
-
104
- t.addControlElement(player.speedButton, 'speed');
105
-
106
- for (var _i = 0, il = speeds.length; _i < il; _i++) {
107
-
108
- inputId = t.id + "-speed-" + speeds[_i].value;
109
-
110
- player.speedButton.find('ul').append($("<li class=\"" + t.options.classPrefix + "speed-selector-list-item\">" + ("<input class=\"" + t.options.classPrefix + "speed-selector-input\" type=\"radio\" name=\"" + t.id + "_speed\"") + ("disabled=\"disabled\" value=\"" + speeds[_i].value + "\" id=\"" + inputId + "\" ") + ((speeds[_i].value === t.options.defaultSpeed ? ' checked="checked"' : '') + "/>") + ("<label class=\"" + t.options.classPrefix + "speed-selector-label") + ((speeds[_i].value === t.options.defaultSpeed ? " " + t.options.classPrefix + "speed-selected" : '') + "\">") + (speeds[_i].name + "</label>") + "</li>"));
111
- }
112
-
113
- playbackSpeed = t.options.defaultSpeed;
114
-
115
- // Enable inputs after they have been appended to controls to avoid tab and up/down arrow focus issues
116
- $.each(player.speedButton.find('input[type="radio"]'), function () {
117
- $(this).prop('disabled', false);
118
- });
119
-
120
- player.speedSelector = player.speedButton.find("." + t.options.classPrefix + "speed-selector");
121
-
122
- // hover or keyboard focus
123
- player.speedButton.on('mouseenter focusin', function () {
124
- player.speedSelector.removeClass(t.options.classPrefix + "offscreen").height(player.speedSelector.find('ul').outerHeight(true)).css('top', -1 * player.speedSelector.height() + 'px');
125
- }).on('mouseleave focusout', function () {
126
- player.speedSelector.addClass(t.options.classPrefix + "offscreen");
127
- })
128
- // handle clicks to the language radio buttons
129
- .on('click', 'input[type=radio]', function () {
130
- var self = $(this),
131
- newSpeed = self.val();
132
-
133
- playbackSpeed = newSpeed;
134
- media.playbackRate = parseFloat(newSpeed);
135
- player.speedButton.find('button').html(getSpeedNameFromValue(newSpeed)).end().find("." + t.options.classPrefix + "speed-selected").removeClass(t.options.classPrefix + "speed-selected").end().find('input[type="radio"]');
136
-
137
- self.prop('checked', true).siblings("." + t.options.classPrefix + "speed-selector-label").addClass(t.options.classPrefix + "speed-selected");
138
- }).on('click', "." + t.options.classPrefix + "speed-selector-label", function () {
139
- $(this).siblings('input[type="radio"]').trigger('click');
140
- })
141
- //Allow up/down arrow to change the selected radio without changing the volume.
142
- .on('keydown', function (e) {
143
- e.stopPropagation();
144
- });
145
-
146
- media.addEventListener('loadedmetadata', function () {
147
- if (playbackSpeed) {
148
- media.playbackRate = parseFloat(playbackSpeed);
149
- }
150
- }, true);
151
- },
152
- /**
153
- * Feature destructor.
154
- *
155
- * Always has to be prefixed with `clean` and the name that was used in MepDefaults.features list
156
- * @param {MediaElementPlayer} player
157
- */
158
- clearspeed: function clearspeed(player) {
159
- if (player) {
160
- if (player.speedButton) {
161
- player.speedButton.remove();
162
- }
163
- if (player.speedSelector) {
164
- player.speedSelector.remove();
165
- }
166
- }
167
- }
168
- });
169
-
170
- },{}]},{},[1]);
1
+ (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
2
+ 'use strict';
3
+
4
+ /**
5
+ * Speed button
6
+ *
7
+ * This feature creates a button to speed media in different levels.
8
+ */
9
+
10
+ // Translations (English required)
11
+ mejs.i18n.en["mejs.speed"] = "Speed Rate";
12
+
13
+
14
+ // Feature configuration
15
+ Object.assign(mejs.MepDefaults, {
16
+ /**
17
+ * The speeds media can be accelerated
18
+ *
19
+ * Supports an array of float values or objects with format
20
+ * [{name: 'Slow', value: '0.75'}, {name: 'Normal', value: '1.00'}, ...]
21
+ * @type {{String[]|Object[]}}
22
+ */
23
+ speeds: ['2.00', '1.50', '1.25', '1.00', '0.75'],
24
+ /**
25
+ * @type {String}
26
+ */
27
+ defaultSpeed: '1.00',
28
+ /**
29
+ * @type {String}
30
+ */
31
+ speedChar: 'x',
32
+ /**
33
+ * @type {?String}
34
+ */
35
+ speedText: ''
36
+ });
37
+
38
+ Object.assign(MediaElementPlayer.prototype, {
39
+
40
+ /**
41
+ * Feature constructor.
42
+ *
43
+ * Always has to be prefixed with `build` and the name that will be used in MepDefaults.features list
44
+ * @param {MediaElementPlayer} player
45
+ * @param {$} controls
46
+ * @param {$} layers
47
+ * @param {HTMLElement} media
48
+ */
49
+ buildspeed: function buildspeed(player, controls, layers, media) {
50
+ var t = this,
51
+ isNative = t.media.rendererName !== null && t.media.rendererName.match(/(native|html5)/) !== null;
52
+
53
+ if (!isNative) {
54
+ return;
55
+ }
56
+
57
+ var playbackSpeed = void 0,
58
+ inputId = void 0,
59
+ speedTitle = mejs.Utils.isString(t.options.speedText) ? t.options.speedText : 'mejs.i18n.t(mejs.speed)',
60
+ speeds = [],
61
+ defaultInArray = false,
62
+ getSpeedNameFromValue = function getSpeedNameFromValue(value) {
63
+ for (var i = 0, len = speeds.length; i < len; i++) {
64
+ if (speeds[i].value === value) {
65
+ return speeds[i].name;
66
+ }
67
+ }
68
+ };
69
+
70
+ for (var i = 0, len = t.options.speeds.length; i < len; i++) {
71
+ var s = t.options.speeds[i];
72
+
73
+ if (typeof s === 'string') {
74
+ speeds.push({
75
+ name: "" + s + t.options.speedChar,
76
+ value: s
77
+ });
78
+ if (s === t.options.defaultSpeed) {
79
+ defaultInArray = true;
80
+ }
81
+ } else {
82
+ speeds.push(s);
83
+ if (s.value === t.options.defaultSpeed) {
84
+ defaultInArray = true;
85
+ }
86
+ }
87
+ }
88
+
89
+ if (!defaultInArray) {
90
+ speeds.push({
91
+ name: t.options.defaultSpeed + t.options.speedChar,
92
+ value: t.options.defaultSpeed
93
+ });
94
+ }
95
+
96
+ speeds.sort(function (a, b) {
97
+ return parseFloat(b.value) - parseFloat(a.value);
98
+ });
99
+
100
+ t.clearspeed(player);
101
+
102
+ player.speedButton = $("<div class=\"" + t.options.classPrefix + "button " + t.options.classPrefix + "speed-button\">" + ("<button type=\"button\" aria-controls=\"" + t.id + "\" title=\"" + speedTitle + "\" ") + ("aria-label=\"" + speedTitle + "\" tabindex=\"0\">" + getSpeedNameFromValue(t.options.defaultSpeed) + "</button>") + ("<div class=\"" + t.options.classPrefix + "speed-selector " + t.options.classPrefix + "offscreen\">") + ("<ul class=\"" + t.options.classPrefix + "speed-selector-list\"></ul>") + "</div>" + "</div>");
103
+
104
+ t.addControlElement(player.speedButton, 'speed');
105
+
106
+ for (var _i = 0, il = speeds.length; _i < il; _i++) {
107
+
108
+ inputId = t.id + "-speed-" + speeds[_i].value;
109
+
110
+ player.speedButton.find('ul').append($("<li class=\"" + t.options.classPrefix + "speed-selector-list-item\">" + ("<input class=\"" + t.options.classPrefix + "speed-selector-input\" type=\"radio\" name=\"" + t.id + "_speed\"") + ("disabled=\"disabled\" value=\"" + speeds[_i].value + "\" id=\"" + inputId + "\" ") + ((speeds[_i].value === t.options.defaultSpeed ? ' checked="checked"' : '') + "/>") + ("<label class=\"" + t.options.classPrefix + "speed-selector-label") + ((speeds[_i].value === t.options.defaultSpeed ? " " + t.options.classPrefix + "speed-selected" : '') + "\">") + (speeds[_i].name + "</label>") + "</li>"));
111
+ }
112
+
113
+ playbackSpeed = t.options.defaultSpeed;
114
+
115
+ // Enable inputs after they have been appended to controls to avoid tab and up/down arrow focus issues
116
+ $.each(player.speedButton.find('input[type="radio"]'), function () {
117
+ $(this).prop('disabled', false);
118
+ });
119
+
120
+ player.speedSelector = player.speedButton.find("." + t.options.classPrefix + "speed-selector");
121
+
122
+ // hover or keyboard focus
123
+ player.speedButton.on('mouseenter focusin', function () {
124
+ player.speedSelector.removeClass(t.options.classPrefix + "offscreen").height(player.speedSelector.find('ul').outerHeight(true)).css('top', -1 * player.speedSelector.height() + 'px');
125
+ }).on('mouseleave focusout', function () {
126
+ player.speedSelector.addClass(t.options.classPrefix + "offscreen");
127
+ })
128
+ // handle clicks to the language radio buttons
129
+ .on('click', 'input[type=radio]', function () {
130
+ var self = $(this),
131
+ newSpeed = self.val();
132
+
133
+ playbackSpeed = newSpeed;
134
+ media.playbackRate = parseFloat(newSpeed);
135
+ player.speedButton.find('button').html(getSpeedNameFromValue(newSpeed)).end().find("." + t.options.classPrefix + "speed-selected").removeClass(t.options.classPrefix + "speed-selected").end().find('input[type="radio"]');
136
+
137
+ self.prop('checked', true).siblings("." + t.options.classPrefix + "speed-selector-label").addClass(t.options.classPrefix + "speed-selected");
138
+ }).on('click', "." + t.options.classPrefix + "speed-selector-label", function () {
139
+ $(this).siblings('input[type="radio"]').trigger('click');
140
+ })
141
+ //Allow up/down arrow to change the selected radio without changing the volume.
142
+ .on('keydown', function (e) {
143
+ e.stopPropagation();
144
+ });
145
+
146
+ media.addEventListener('loadedmetadata', function () {
147
+ if (playbackSpeed) {
148
+ media.playbackRate = parseFloat(playbackSpeed);
149
+ }
150
+ }, true);
151
+ },
152
+ /**
153
+ * Feature destructor.
154
+ *
155
+ * Always has to be prefixed with `clean` and the name that was used in MepDefaults.features list
156
+ * @param {MediaElementPlayer} player
157
+ */
158
+ clearspeed: function clearspeed(player) {
159
+ if (player) {
160
+ if (player.speedButton) {
161
+ player.speedButton.remove();
162
+ }
163
+ if (player.speedSelector) {
164
+ player.speedSelector.remove();
165
+ }
166
+ }
167
+ }
168
+ });
169
+
170
+ },{}]},{},[1]);
languages/video-embed-thumbnail-generator-bg_BG.po CHANGED
@@ -1,2355 +1,2355 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Video Embed & Thumbnail Generator v4.3.1\n"
4
- "Report-Msgid-Bugs-To: http://wordpress.org/tag/video-embed-thumbnail-"
5
- "generator\n"
6
- "POT-Creation-Date: 2014-04-26 18:19:46+00:00\n"
7
- "PO-Revision-Date: 2014-10-31 21:29+0200\n"
8
- "Last-Translator: Emil Georgiev <svinqvmraka@gmail.com>\n"
9
- "Language-Team: \n"
10
- "Language: bg_BG\n"
11
- "MIME-Version: 1.0\n"
12
- "Content-Type: text/plain; charset=UTF-8\n"
13
- "Content-Transfer-Encoding: 8bit\n"
14
- "Plural-Forms: nplurals=2; plural=n != 1;\n"
15
- "X-Generator: Poedit 1.6.9\n"
16
- "X-Poedit-SourceCharset: utf-8\n"
17
- "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
18
- "_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
19
- "X-Textdomain-Support: yes\n"
20
- "X-Poedit-SearchPath-0: .\n"
21
-
22
- # @ video-embed-thumbnail-generator
23
- #: video-embed-thumbnail-generator.php:205
24
- msgid "Replace original with H.264"
25
- msgstr "Заместете оригинала с H.264"
26
-
27
- # @ video-embed-thumbnail-generator
28
- #: video-embed-thumbnail-generator.php:351
29
- msgid "Settings"
30
- msgstr "Настройки"
31
-
32
- # @ video-embed-thumbnail-generator
33
- #: video-embed-thumbnail-generator.php:359
34
- msgid "Network Settings"
35
- msgstr "Настройки на мрежата"
36
-
37
- # @ video-embed-thumbnail-generator
38
- #: video-embed-thumbnail-generator.php:1125
39
- msgctxt "please wait"
40
- msgid "Wait"
41
- msgstr "Момент"
42
-
43
- # @ video-embed-thumbnail-generator
44
- #: video-embed-thumbnail-generator.php:1126
45
- msgid "Hide video..."
46
- msgstr "Скрийте видеото..."
47
-
48
- # @ video-embed-thumbnail-generator
49
- #: video-embed-thumbnail-generator.php:1127
50
- msgid "Choose from video..."
51
- msgstr "Изберете от видеото..."
52
-
53
- # @ video-embed-thumbnail-generator
54
- #: video-embed-thumbnail-generator.php:1128
55
- msgid "Can't load video"
56
- msgstr "Видеото не може да се зареди"
57
-
58
- # @ video-embed-thumbnail-generator
59
- #: video-embed-thumbnail-generator.php:1129
60
- msgid "Choose Thumbnail:"
61
- msgstr "Изберете картинка:"
62
-
63
- # @ video-embed-thumbnail-generator
64
- #: video-embed-thumbnail-generator.php:1130
65
- msgid "Save All Thumbnails"
66
- msgstr "Запазете всички картинки"
67
-
68
- # @ video-embed-thumbnail-generator
69
- #: video-embed-thumbnail-generator.php:1131
70
- msgid "Saving..."
71
- msgstr "Запазване..."
72
-
73
- # @ video-embed-thumbnail-generator
74
- #: video-embed-thumbnail-generator.php:1132
75
- msgid "Loading..."
76
- msgstr "Зареждане..."
77
-
78
- # @ video-embed-thumbnail-generator
79
- #: video-embed-thumbnail-generator.php:1133
80
- #: video-embed-thumbnail-generator.php:4294
81
- msgid "Generate"
82
- msgstr "Генериране"
83
-
84
- # @ video-embed-thumbnail-generator
85
- #: video-embed-thumbnail-generator.php:1134
86
- #: video-embed-thumbnail-generator.php:4295
87
- msgid "Randomize"
88
- msgstr "Разбъркване"
89
-
90
- # @ video-embed-thumbnail-generator
91
- #: video-embed-thumbnail-generator.php:1135
92
- msgid "%s not found"
93
- msgstr "%s не е намерено"
94
-
95
- # @ video-embed-thumbnail-generator
96
- #: video-embed-thumbnail-generator.php:1136
97
- msgid ""
98
- "Please enter a URL that points to a valid video file. Video sharing sites "
99
- "are not supported by this plugin.\n"
100
- "To embed from YouTube, Vimeo, etc, just paste the link directly into the "
101
- "post window and WordPress will handle the rest."
102
- msgstr ""
103
- "Въведете URL адрес, водещ към валиден видео файл. Сайтове за видеосподеляне "
104
- "не се поддържат.\n"
105
- "За да вградите видео от YouTube, Vimeo и тн., поставете връзката директно в "
106
- "публикацията и WordPress ще се погрижи за останалото."
107
-
108
- # @ video-embed-thumbnail-generator
109
- #: video-embed-thumbnail-generator.php:1137
110
- #: video-embed-thumbnail-generator.php:1849
111
- #: video-embed-thumbnail-generator.php:4294
112
- #: video-embed-thumbnail-generator.php:4295
113
- #: video-embed-thumbnail-generator.php:4326
114
- msgid "Please enter a valid video URL"
115
- msgstr "Въведете валиден адрес на видео"
116
-
117
- # @ video-embed-thumbnail-generator
118
- #: video-embed-thumbnail-generator.php:1138
119
- msgid ""
120
- "You are about to permanently delete the encoded video.\n"
121
- " 'Cancel' to stop, 'OK' to delete."
122
- msgstr ""
123
- "Това действие ще изтрие перманентно кодираното видео.\n"
124
- "'Отказ' за прекратяване, 'ОК' за изтриване."
125
-
126
- # @ video-embed-thumbnail-generator
127
- #: video-embed-thumbnail-generator.php:1139
128
- msgid "Saved."
129
- msgstr "Записано."
130
-
131
- # @ video-embed-thumbnail-generator
132
- #: video-embed-thumbnail-generator.php:1140
133
- msgid "Running test..."
134
- msgstr "Тестване..."
135
-
136
- # @ video-embed-thumbnail-generator
137
- #: video-embed-thumbnail-generator.php:1141
138
- msgid "FFMPEG or LIBAV required for these functions."
139
- msgstr "FFMPEG или LIBAV са необходими за тези функции."
140
-
141
- # @ video-embed-thumbnail-generator
142
- #: video-embed-thumbnail-generator.php:1142
143
- msgid ""
144
- "You are about to set all existing video thumbnails previously generated by "
145
- "this plugin as the featured images for their posts. There is no 'undo' "
146
- "button, so proceed at your own risk."
147
- msgstr ""
148
- "Това действие ще зададе всички съществуващи видео-картинки, генерирани "
149
- "досега, като картинки на публикациите, в които се намират. Няма бутон за "
150
- "връщане, затова продължавате на собствен риск."
151
-
152
- # @ video-embed-thumbnail-generator
153
- #: video-embed-thumbnail-generator.php:1143
154
- msgid "'Cancel' to stop, 'OK' to proceed."
155
- msgstr "'Отказ' за прекратяване, 'ОК' за продължаване."
156
-
157
- # @ video-embed-thumbnail-generator
158
- #: video-embed-thumbnail-generator.php:1144
159
- msgid "Processing..."
160
- msgstr "Обработване..."
161
-
162
- # @ video-embed-thumbnail-generator
163
- #: video-embed-thumbnail-generator.php:1145
164
- msgid ""
165
- "You are about to set all existing video thumbnails previously generated by "
166
- "this plugin as attachments of their posts rather than their associated "
167
- "videos. Proceed at your own risk."
168
- msgstr ""
169
- "Това действие ще зададе всички съществуващи видео-картинки, генерирани от "
170
- "това разширение, като приложения на публикациите им, вместо директно на "
171
- "видеата. Продължете на собствен риск."
172
-
173
- # @ video-embed-thumbnail-generator
174
- #: video-embed-thumbnail-generator.php:1146
175
- msgid ""
176
- "You are about to set all existing video thumbnails previously generated by "
177
- "this plugin as attachments of their videos rather than their associated "
178
- "posts. Proceed at your own risk."
179
- msgstr ""
180
- "Това действие ще зададе всички съществуващи видео-картинки, генерирани от "
181
- "това разширение, като приложения към видеата, вместо към публикациите им. "
182
- "Продължете на собствен риск."
183
-
184
- # @ video-embed-thumbnail-generator
185
- #: video-embed-thumbnail-generator.php:1147
186
- msgid "Complete"
187
- msgstr "Готово"
188
-
189
- # @ video-embed-thumbnail-generator
190
- #: video-embed-thumbnail-generator.php:1148
191
- #: video-embed-thumbnail-generator.php:3733
192
- msgid "Track type:"
193
- msgstr "Тип на пътечката:"
194
-
195
- # @ video-embed-thumbnail-generator
196
- #: video-embed-thumbnail-generator.php:1149
197
- #: video-embed-thumbnail-generator.php:3724
198
- msgid "subtitles"
199
- msgstr "субтитри"
200
-
201
- # @ video-embed-thumbnail-generator
202
- #: video-embed-thumbnail-generator.php:1150
203
- #: video-embed-thumbnail-generator.php:3724
204
- msgid "captions"
205
- msgstr "надписи"
206
-
207
- # @ video-embed-thumbnail-generator
208
- #: video-embed-thumbnail-generator.php:1151
209
- #: video-embed-thumbnail-generator.php:3724
210
- msgid "chapters"
211
- msgstr "части"
212
-
213
- # @ video-embed-thumbnail-generator
214
- #: video-embed-thumbnail-generator.php:1152
215
- #: video-embed-thumbnail-generator.php:3734
216
- msgid "Choose a Text File"
217
- msgstr "Изберете текстов файл"
218
-
219
- # @ video-embed-thumbnail-generator
220
- #: video-embed-thumbnail-generator.php:1153
221
- #: video-embed-thumbnail-generator.php:3734
222
- msgid "Set as track source"
223
- msgstr "Задайте като източник на пътечката"
224
-
225
- # @ video-embed-thumbnail-generator
226
- #: video-embed-thumbnail-generator.php:1154
227
- #: video-embed-thumbnail-generator.php:2528
228
- #: video-embed-thumbnail-generator.php:2534
229
- #: video-embed-thumbnail-generator.php:2540
230
- #: video-embed-thumbnail-generator.php:2868
231
- #: video-embed-thumbnail-generator.php:3689
232
- #: video-embed-thumbnail-generator.php:3734
233
- msgid "Choose from Library"
234
- msgstr "Изберете от библиотеката"
235
-
236
- # @ video-embed-thumbnail-generator
237
- #: video-embed-thumbnail-generator.php:1155
238
- msgid "Language code:"
239
- msgstr "Езиков код:"
240
-
241
- # @ video-embed-thumbnail-generator
242
- #: video-embed-thumbnail-generator.php:1156
243
- msgctxt "noun"
244
- msgid "Label:"
245
- msgstr "Етикет:"
246
-
247
- # @ video-embed-thumbnail-generator
248
- #: video-embed-thumbnail-generator.php:1187
249
- msgctxt "noun for Google Analytics event"
250
- msgid "Play Start"
251
- msgstr "Стартиране на възпроизвеждане"
252
-
253
- # @ video-embed-thumbnail-generator
254
- #: video-embed-thumbnail-generator.php:1188
255
- msgctxt "noun for Google Analytics event"
256
- msgid "Complete View"
257
- msgstr "Пълно гледане"
258
-
259
- # @ video-embed-thumbnail-generator
260
- #: video-embed-thumbnail-generator.php:1189
261
- msgctxt "button text to play next video"
262
- msgid "Next"
263
- msgstr "Следващо"
264
-
265
- # @ video-embed-thumbnail-generator
266
- #: video-embed-thumbnail-generator.php:1190
267
- msgctxt "button text to play previous video"
268
- msgid "Previous"
269
- msgstr "Предишно"
270
-
271
- #: video-embed-thumbnail-generator.php:1616
272
- msgid "%s view"
273
- msgid_plural "%s views"
274
- msgstr[0] "%s гледане"
275
- msgstr[1] "%s гледания"
276
-
277
- # @ video-embed-thumbnail-generator
278
- #: video-embed-thumbnail-generator.php:1621
279
- msgid "Right-click or ctrl-click on this link to download"
280
- msgstr ""
281
- "Натиснете десен бутон или CTRL–ляв бутон, върху тази връзка, за сваляне."
282
-
283
- # @ video-embed-thumbnail-generator
284
- #: video-embed-thumbnail-generator.php:1637
285
- msgctxt "precedes code for embedding video"
286
- msgid "Embed:"
287
- msgstr "Вграждане:"
288
-
289
- # @ video-embed-thumbnail-generator
290
- #: video-embed-thumbnail-generator.php:1854
291
- msgctxt "ex: FFMPEG not found at /usr/local/bin"
292
- msgid "%1$s not found at %2$s"
293
- msgstr "%1$s не е намерен във %2$s"
294
-
295
- # @ video-embed-thumbnail-generator
296
- #: video-embed-thumbnail-generator.php:1917
297
- msgid "Delete Permanently"
298
- msgstr "Перманентно изтриване"
299
-
300
- # @ video-embed-thumbnail-generator
301
- #: video-embed-thumbnail-generator.php:1929
302
- msgid "Currently encoding"
303
- msgstr "Кодира се"
304
-
305
- # @ video-embed-thumbnail-generator
306
- #: video-embed-thumbnail-generator.php:1936
307
- msgid "Format already exists"
308
- msgstr "Форматът вече съществува"
309
-
310
- # @ video-embed-thumbnail-generator
311
- #: video-embed-thumbnail-generator.php:1943
312
- msgid "You don't have permission to encode videos"
313
- msgstr "Нямате разрешение да кодирате видеа"
314
-
315
- # @ video-embed-thumbnail-generator
316
- #: video-embed-thumbnail-generator.php:1951
317
- msgid "Nothing to encode"
318
- msgstr "Няма нищо за кодиране"
319
-
320
- # @ video-embed-thumbnail-generator
321
- #: video-embed-thumbnail-generator.php:1955
322
- msgctxt "Button text"
323
- msgid "Update"
324
- msgstr "Обновяване"
325
-
326
- # @ video-embed-thumbnail-generator
327
- #: video-embed-thumbnail-generator.php:1958
328
- msgctxt "Button text"
329
- msgid "Encode"
330
- msgstr "Кодиране"
331
-
332
- # @ video-embed-thumbnail-generator
333
- #: video-embed-thumbnail-generator.php:1964
334
- msgid ""
335
- "Generates additional video formats compatible with most mobile & HTML5-"
336
- "compatible browsers"
337
- msgstr ""
338
- "Генерира допълнителни видео формати, съвместими с повечето мобилни и html5-"
339
- "поддържащи браузъри"
340
-
341
- # @ video-embed-thumbnail-generator
342
- #: video-embed-thumbnail-generator.php:1989
343
- msgctxt "noun, column header"
344
- msgid "Order"
345
- msgstr "Подреждане"
346
-
347
- # @ video-embed-thumbnail-generator
348
- #: video-embed-thumbnail-generator.php:1990
349
- msgctxt "username, column header"
350
- msgid "User"
351
- msgstr "Потребител"
352
-
353
- # @ video-embed-thumbnail-generator
354
- #: video-embed-thumbnail-generator.php:1991
355
- msgctxt "noun, column header"
356
- msgid "Thumbnail"
357
- msgstr "Картинка"
358
-
359
- # @ video-embed-thumbnail-generator
360
- #: video-embed-thumbnail-generator.php:1992
361
- msgctxt "noun, column header"
362
- msgid "File"
363
- msgstr "Файл"
364
-
365
- # @ video-embed-thumbnail-generator
366
- #: video-embed-thumbnail-generator.php:1993
367
- msgctxt "noun, column header"
368
- msgid "Formats"
369
- msgstr "Формати"
370
-
371
- # @ video-embed-thumbnail-generator
372
- #: video-embed-thumbnail-generator.php:1994
373
- msgctxt "noun, column header"
374
- msgid "Actions"
375
- msgstr "Действия"
376
-
377
- # @ video-embed-thumbnail-generator
378
- #: video-embed-thumbnail-generator.php:1998
379
- msgctxt "multisite site name, column header"
380
- msgid "Site"
381
- msgstr "Сайт"
382
-
383
- # @ video-embed-thumbnail-generator
384
- #: video-embed-thumbnail-generator.php:2114
385
- msgid "Other user's video"
386
- msgstr "Видео на друг потребител"
387
-
388
- # @ video-embed-thumbnail-generator
389
- #: video-embed-thumbnail-generator.php:2118
390
- msgid "Queue is empty"
391
- msgstr "Опашката е празна"
392
-
393
- # @ video-embed-thumbnail-generator
394
- #: video-embed-thumbnail-generator.php:2127
395
- #: video-embed-thumbnail-generator.php:2134
396
- msgctxt "Tools page title"
397
- msgid "Video Embed & Thumbnail Generator Encoding Queue"
398
- msgstr "Video Embed & Thumbnail Generator Опашка за кодиране"
399
-
400
- # @ video-embed-thumbnail-generator
401
- #: video-embed-thumbnail-generator.php:2127
402
- msgctxt "Title in admin sidebar"
403
- msgid "Video Encode Queue"
404
- msgstr "Опашка за кодиране на видео"
405
-
406
- # @ video-embed-thumbnail-generator
407
- #: video-embed-thumbnail-generator.php:2134
408
- msgctxt "Title in network admin sidebar"
409
- msgid "Network Video Encode Queue"
410
- msgstr "Опашка за кодиране на видео в мрежата"
411
-
412
- # @ video-embed-thumbnail-generator
413
- #: video-embed-thumbnail-generator.php:2144
414
- msgid "Video Embed & Thumbnail Generator Encoding Queue"
415
- msgstr "Video Embed & Thumbnail Generator опашка за кодиране"
416
-
417
- # @ video-embed-thumbnail-generator
418
- #: video-embed-thumbnail-generator.php:2161
419
- msgid "Clear All Completed"
420
- msgstr "Изчистване на всички готови"
421
-
422
- # @ video-embed-thumbnail-generator
423
- #: video-embed-thumbnail-generator.php:2169
424
- #: video-embed-thumbnail-generator.php:2283
425
- msgctxt "Settings page title"
426
- msgid "Video Embed & Thumbnail Generator"
427
- msgstr "Video Embed & Thumbnail Generator"
428
-
429
- # @ Settings page title in admin sidebar
430
- #. Plugin Name of the plugin/theme
431
- #: video-embed-thumbnail-generator.php:2169
432
- #: video-embed-thumbnail-generator.php:2283
433
- msgid "Video Embed & Thumbnail Generator"
434
- msgstr "Video Embed & Thumbnail Generator"
435
-
436
- # @ video-embed-thumbnail-generator
437
- #: video-embed-thumbnail-generator.php:2205
438
- msgid ""
439
- "Video Embed & Thumbnail Generator network settings reset to default values."
440
- msgstr ""
441
- "Мрежовите настройки на Video Embed & Thumbnail Generator бяха възстановени "
442
- "по подразбиране."
443
-
444
- # @ video-embed-thumbnail-generator
445
- #: video-embed-thumbnail-generator.php:2227
446
- msgid "Path to applications on the server:"
447
- msgstr "Път до приложенията на сървъра:"
448
-
449
- # @ video-embed-thumbnail-generator
450
- #: video-embed-thumbnail-generator.php:2230
451
- #: video-embed-thumbnail-generator.php:2438
452
- msgid "Application for thumbnails & encoding:"
453
- msgstr "Приложения за картинки и кодиране:"
454
-
455
- # @ video-embed-thumbnail-generator
456
- #: video-embed-thumbnail-generator.php:2234
457
- #: video-embed-thumbnail-generator.php:2447
458
- msgid "Method to fix encoded H.264 headers for streaming:"
459
- msgstr "Метод за поправяне на H.264 хедъри за стрийминг:"
460
-
461
- # @ video-embed-thumbnail-generator
462
- #: video-embed-thumbnail-generator.php:2238
463
- #: video-embed-thumbnail-generator.php:2456
464
- msgid "FFMPEG legacy options:"
465
- msgstr "FFMPEG наследени опции:"
466
-
467
- # @ video-embed-thumbnail-generator
468
- #: video-embed-thumbnail-generator.php:2242
469
- msgid "Execution:"
470
- msgstr "Изпълнение:"
471
-
472
- # @ video-embed-thumbnail-generator
473
- #: video-embed-thumbnail-generator.php:2246
474
- msgid "User capabilties for new sites:"
475
- msgstr "Потребителски привилегии за нови сайтове:"
476
-
477
- # @ video-embed-thumbnail-generator
478
- #: video-embed-thumbnail-generator.php:2252
479
- #: video-embed-thumbnail-generator.php:2309
480
- msgid "Save Changes"
481
- msgstr "Запазване на промените"
482
-
483
- # @ video-embed-thumbnail-generator
484
- #: video-embed-thumbnail-generator.php:2253
485
- #: video-embed-thumbnail-generator.php:2310
486
- msgid "Reset Options"
487
- msgstr "Възстановяване на настройките по подразбиране"
488
-
489
- # @ video-embed-thumbnail-generator
490
- #: video-embed-thumbnail-generator.php:2257
491
- #: video-embed-thumbnail-generator.php:2314
492
- msgid ""
493
- "If you're getting some use out of this plugin, please consider donating a "
494
- "few dollars to support its future development."
495
- msgstr ""
496
- "Ако разширението ви върши работа, помислете за дарение, за продължаване на "
497
- "разработката му."
498
-
499
- # @ video-embed-thumbnail-generator
500
- #: video-embed-thumbnail-generator.php:2300
501
- msgctxt "Adjective, tab title"
502
- msgid "General"
503
- msgstr "Общи"
504
-
505
- # @ video-embed-thumbnail-generator
506
- #: video-embed-thumbnail-generator.php:2301
507
- msgctxt "FFMPEG Settings, tab title"
508
- msgid "%s Settings"
509
- msgstr "%s настройки"
510
-
511
- # @ video-embed-thumbnail-generator
512
- #: video-embed-thumbnail-generator.php:2399
513
- msgid "Default Video Playback Settings"
514
- msgstr "Настойки за изпълняване на видео по подразбиране"
515
-
516
- # @ video-embed-thumbnail-generator
517
- #: video-embed-thumbnail-generator.php:2400
518
- msgid "The following options will only affect Flash playback"
519
- msgstr "Настройките по-долу се отнасят само за Flash"
520
-
521
- # @ video-embed-thumbnail-generator
522
- #: video-embed-thumbnail-generator.php:2401
523
- msgid "Plugin Settings"
524
- msgstr "Настройки на разширението"
525
-
526
- # @ video-embed-thumbnail-generator
527
- #: video-embed-thumbnail-generator.php:2402
528
- msgid "Video Encoding Settings"
529
- msgstr "Настройки за кодирането на видео"
530
-
531
- # @ video-embed-thumbnail-generator
532
- #: video-embed-thumbnail-generator.php:2404
533
- msgid "Default thumbnail:"
534
- msgstr "Картинка по подразбиране:"
535
-
536
- # @ video-embed-thumbnail-generator
537
- #: video-embed-thumbnail-generator.php:2405
538
- msgid "End of video image:"
539
- msgstr "Картинка в края на видеото:"
540
-
541
- # @ video-embed-thumbnail-generator
542
- #: video-embed-thumbnail-generator.php:2406
543
- msgid "Watermark overlay:"
544
- msgstr "Воден знак:"
545
-
546
- # @ video-embed-thumbnail-generator
547
- #: video-embed-thumbnail-generator.php:2407
548
- msgid "Video alignment:"
549
- msgstr "Подравняване на видеото:"
550
-
551
- # @ video-embed-thumbnail-generator
552
- #: video-embed-thumbnail-generator.php:2408
553
- msgid "Automatically resize videos:"
554
- msgstr "Автоматично преоразмеряване на видеата:"
555
-
556
- # @ video-embed-thumbnail-generator
557
- #: video-embed-thumbnail-generator.php:2409
558
- msgid "Inline videos:"
559
- msgstr "Видеа в текста:"
560
-
561
- # @ video-embed-thumbnail-generator
562
- #: video-embed-thumbnail-generator.php:2410
563
- msgid "Max embedded video dimensions:"
564
- msgstr "Максимални размери за вградени видеа:"
565
-
566
- # @ video-embed-thumbnail-generator
567
- #: video-embed-thumbnail-generator.php:2411
568
- msgid "Max gallery video dimensions:"
569
- msgstr "Максимални размери за видеа в галерия:"
570
-
571
- # @ video-embed-thumbnail-generator
572
- #: video-embed-thumbnail-generator.php:2412
573
- msgid "Gallery thumbnail width:"
574
- msgstr "Ширина на картинките в галерия:"
575
-
576
- # @ video-embed-thumbnail-generator
577
- #: video-embed-thumbnail-generator.php:2413
578
- msgid "Video controls:"
579
- msgstr "Контролни бутони на видеата:"
580
-
581
- # @ video-embed-thumbnail-generator
582
- #: video-embed-thumbnail-generator.php:2414
583
- msgid "Autoplay:"
584
- msgstr "Автоматично изпълняване:"
585
-
586
- # @ video-embed-thumbnail-generator
587
- #: video-embed-thumbnail-generator.php:2415
588
- msgctxt "verb"
589
- msgid "Loop:"
590
- msgstr "Повтаряне:"
591
-
592
- # @ video-embed-thumbnail-generator
593
- #: video-embed-thumbnail-generator.php:2416
594
- msgid "Preload:"
595
- msgstr "Предварително зареждане:"
596
-
597
- # @ video-embed-thumbnail-generator
598
- #: video-embed-thumbnail-generator.php:2417
599
- msgctxt "CSS class for video skin"
600
- msgid "Skin class:"
601
- msgstr "CSS клас на кожата:"
602
-
603
- # @ video-embed-thumbnail-generator
604
- #: video-embed-thumbnail-generator.php:2419
605
- msgid "Background color:"
606
- msgstr "Цвят на фона:"
607
-
608
- # @ video-embed-thumbnail-generator
609
- #: video-embed-thumbnail-generator.php:2420
610
- msgid "XML configuration file:"
611
- msgstr "XML конфигурационен файл:"
612
-
613
- # @ video-embed-thumbnail-generator
614
- #: video-embed-thumbnail-generator.php:2421
615
- msgid "Video skin file:"
616
- msgstr "Файл с кожа за видеото:"
617
-
618
- # @ video-embed-thumbnail-generator
619
- #: video-embed-thumbnail-generator.php:2422
620
- msgid "Video stream type:"
621
- msgstr "Тип на видео потока:"
622
-
623
- # @ video-embed-thumbnail-generator
624
- #: video-embed-thumbnail-generator.php:2423
625
- msgid "Video scale mode:"
626
- msgstr "Тип на оразмеряването на видеото:"
627
-
628
- # @ video-embed-thumbnail-generator
629
- #: video-embed-thumbnail-generator.php:2424
630
- msgid "Autohide:"
631
- msgstr "Автоматично скриване:"
632
-
633
- # @ video-embed-thumbnail-generator
634
- #: video-embed-thumbnail-generator.php:2425
635
- msgid "Play button overlay:"
636
- msgstr "Подложка на бутона за изпълнение:"
637
-
638
- # @ video-embed-thumbnail-generator
639
- #: video-embed-thumbnail-generator.php:2427
640
- msgid "Default number of thumbnails to generate:"
641
- msgstr "Брой по подразбиране на генерираните картинки:"
642
-
643
- # @ video-embed-thumbnail-generator
644
- #: video-embed-thumbnail-generator.php:2428
645
- msgid "User capabilities:"
646
- msgstr "Потребителски права:"
647
-
648
- # @ video-embed-thumbnail-generator
649
- #: video-embed-thumbnail-generator.php:2429
650
- msgid "Video security:"
651
- msgstr "Сигурност на видеото:"
652
-
653
- # @ video-embed-thumbnail-generator
654
- #: video-embed-thumbnail-generator.php:2430
655
- msgid "Featured image:"
656
- msgstr "Картинка на публикацията:"
657
-
658
- # @ video-embed-thumbnail-generator
659
- #: video-embed-thumbnail-generator.php:2431
660
- msgid "Attach thumbnails to:"
661
- msgstr "Прикачване на картинките към:"
662
-
663
- # @ video-embed-thumbnail-generator
664
- #: video-embed-thumbnail-generator.php:2432
665
- msgid "Delete associated attachments:"
666
- msgstr "Изтриване на свързаните прикачени файлове:"
667
-
668
- # @ video-embed-thumbnail-generator
669
- #: video-embed-thumbnail-generator.php:2433
670
- msgid "Video title text HTML formatting:"
671
- msgstr "HTML форматиране на заглавия на видеата:"
672
-
673
- # @ video-embed-thumbnail-generator
674
- #: video-embed-thumbnail-generator.php:2434
675
- #, fuzzy
676
- msgid "Attachment template display:"
677
- msgstr "Дизайн на страницата за прикачен файл:"
678
-
679
- # @ video-embed-thumbnail-generator
680
- #: video-embed-thumbnail-generator.php:2437
681
- msgid "Path to applications folder on server:"
682
- msgstr "Път към директорията на приложението на сървъра:"
683
-
684
- # @ video-embed-thumbnail-generator
685
- #: video-embed-thumbnail-generator.php:2441
686
- msgid "Enable in-browser thumbnails:"
687
- msgstr "Включи картинките в браузъра:"
688
-
689
- # @ video-embed-thumbnail-generator
690
- #: video-embed-thumbnail-generator.php:2442
691
- msgid "Default video encode formats:"
692
- msgstr "Формати по подразбиране за видео кодиране:"
693
-
694
- # @ video-embed-thumbnail-generator
695
- #: video-embed-thumbnail-generator.php:2443
696
- msgid "Do automatically on upload:"
697
- msgstr "Изпълнявай автоматично след качване:"
698
-
699
- # @ video-embed-thumbnail-generator
700
- #: video-embed-thumbnail-generator.php:2444
701
- msgid "htaccess login:"
702
- msgstr "htaccess login:"
703
-
704
- # @ video-embed-thumbnail-generator
705
- #: video-embed-thumbnail-generator.php:2445
706
- msgid "Add watermark to encoded files:"
707
- msgstr "Добавяй воден знак към кодираните файлове:"
708
-
709
- # @ video-embed-thumbnail-generator
710
- #: video-embed-thumbnail-generator.php:2449
711
- msgid "Encode quality control method:"
712
- msgstr "Метод за контрол на качеството на кодиране:"
713
-
714
- # @ video-embed-thumbnail-generator
715
- #: video-embed-thumbnail-generator.php:2450
716
- msgid "Constant Rate Factors (CRF):"
717
- msgstr "Constant Rate Factors (CRF):"
718
-
719
- # @ video-embed-thumbnail-generator
720
- #: video-embed-thumbnail-generator.php:2451
721
- msgid "Average Bit Rate:"
722
- msgstr "Среден Битрейт:"
723
-
724
- # @ video-embed-thumbnail-generator
725
- #: video-embed-thumbnail-generator.php:2452
726
- msgid "H.264 profile:"
727
- msgstr "H.264 профил:"
728
-
729
- # @ video-embed-thumbnail-generator
730
- #: video-embed-thumbnail-generator.php:2453
731
- msgid "Audio bit rate:"
732
- msgstr "Аудио битрейт:"
733
-
734
- # @ video-embed-thumbnail-generator
735
- #: video-embed-thumbnail-generator.php:2457
736
- msgctxt "program execution options"
737
- msgid "Execution:"
738
- msgstr "Изпълнение:"
739
-
740
- # @ video-embed-thumbnail-generator
741
- #: video-embed-thumbnail-generator.php:2460
742
- msgid "Test FFMPEG:"
743
- msgstr "Тестване на FFMPEG:"
744
-
745
- # @ video-embed-thumbnail-generator
746
- #: video-embed-thumbnail-generator.php:2482
747
- #: video-embed-thumbnail-generator.php:3754
748
- msgid "WordPress Default"
749
- msgstr "WordPress по подразбиране"
750
-
751
- # @ video-embed-thumbnail-generator
752
- #: video-embed-thumbnail-generator.php:2504
753
- msgid "(deprecated)"
754
- msgstr "(вече не се разработва)"
755
-
756
- # @ video-embed-thumbnail-generator
757
- #: video-embed-thumbnail-generator.php:2506
758
- msgid "Video player:"
759
- msgstr "Видео плеър:"
760
-
761
- # @ video-embed-thumbnail-generator
762
- #: video-embed-thumbnail-generator.php:2511
763
- msgid ""
764
- "Video.js is the default player. Users running WordPress 3.6 or higher can "
765
- "choose the WordPress Default Mediaelement.js player which may already be "
766
- "skinned to match your theme. If the JW Player WordPress plugin is active it "
767
- "should be available as a video player. In the past this plugin used Adobe's "
768
- "Strobe Media Playback Flash player, which hasn't been updated since 2011 and "
769
- "is not recommended. It should still work, but new plugin functions are not "
770
- "guaranteed to be compatible."
771
- msgstr ""
772
- "Video.js е видео плеърът по подразбиране. Потребители, използващи версия 3.6 "
773
- "или по-нова могат да използват плеърът по подразбиране в WordPress - "
774
- "Mediaelement.js , който може би вече е стилизиран да съответства на темата, "
775
- "която използвате. Ако разширението на JW player е активно, ще бъде достъпно "
776
- "за избор. Можете да използвате Strobe media player на Adobe, но той не е "
777
- "обновяван от 2011 година и не се препоръчва. Вероятно ще работи, но не "
778
- "можем да гарантираме съвместимост с нови функционалности."
779
-
780
- # @ video-embed-thumbnail-generator
781
- #: video-embed-thumbnail-generator.php:2515
782
- msgid "Overlay video title"
783
- msgstr "Заглавие върху видеото"
784
-
785
- # @ video-embed-thumbnail-generator
786
- #: video-embed-thumbnail-generator.php:2516
787
- msgid "Overlay embed code"
788
- msgstr "Код за вграждане върху видеото"
789
-
790
- # @ video-embed-thumbnail-generator
791
- #: video-embed-thumbnail-generator.php:2519
792
- msgid "Show download link"
793
- msgstr "Показване на линк за сваляне"
794
-
795
- # @ video-embed-thumbnail-generator
796
- #: video-embed-thumbnail-generator.php:2520
797
- msgid "Show view count"
798
- msgstr "Показване на брой гледания"
799
-
800
- # @ video-embed-thumbnail-generator
801
- #: video-embed-thumbnail-generator.php:2528
802
- #: video-embed-thumbnail-generator.php:3689
803
- msgid "Choose a Thumbnail"
804
- msgstr "Изберете картинка"
805
-
806
- # @ video-embed-thumbnail-generator
807
- #: video-embed-thumbnail-generator.php:2528
808
- #: video-embed-thumbnail-generator.php:3689
809
- msgid "Set as video thumbnail"
810
- msgstr "Задайте като картинка на видеото"
811
-
812
- # @ video-embed-thumbnail-generator
813
- #: video-embed-thumbnail-generator.php:2533
814
- msgid "Display thumbnail image again when video ends."
815
- msgstr "Покажете картинката на видеото отново, когато клипът свърши"
816
-
817
- # @ video-embed-thumbnail-generator
818
- #: video-embed-thumbnail-generator.php:2534
819
- msgid "Choose End of Video Image"
820
- msgstr "Изберете картинка за край на видеото"
821
-
822
- # @ video-embed-thumbnail-generator
823
- #: video-embed-thumbnail-generator.php:2534
824
- msgid "Set as end of video image"
825
- msgstr "Задайте като картинка за край на видеото"
826
-
827
- # @ video-embed-thumbnail-generator
828
- #: video-embed-thumbnail-generator.php:2535
829
- msgid "Display alternate image when video ends."
830
- msgstr "Показване на алтернативна картинка след края на видеото"
831
-
832
- # @ video-embed-thumbnail-generator
833
- #: video-embed-thumbnail-generator.php:2540
834
- #: video-embed-thumbnail-generator.php:2868
835
- msgid "Choose a Watermark"
836
- msgstr "Изберете воден знак"
837
-
838
- # @ video-embed-thumbnail-generator
839
- #: video-embed-thumbnail-generator.php:2540
840
- #: video-embed-thumbnail-generator.php:2868
841
- msgid "Set as watermark"
842
- msgstr "Задайте като воден знак"
843
-
844
- # @ video-embed-thumbnail-generator
845
- #: video-embed-thumbnail-generator.php:2545
846
- #: video-embed-thumbnail-generator.php:2870
847
- msgid "left"
848
- msgstr "ляво"
849
-
850
- # @ video-embed-thumbnail-generator
851
- #: video-embed-thumbnail-generator.php:2545
852
- msgid "center"
853
- msgstr "център"
854
-
855
- # @ video-embed-thumbnail-generator
856
- #: video-embed-thumbnail-generator.php:2545
857
- #: video-embed-thumbnail-generator.php:2870
858
- msgid "right"
859
- msgstr "дясно"
860
-
861
- # @ video-embed-thumbnail-generator
862
- #: video-embed-thumbnail-generator.php:2556
863
- msgid "Make video player responsive."
864
- msgstr "Направете видео плеърът адаптивен"
865
-
866
- # @ video-embed-thumbnail-generator
867
- #: video-embed-thumbnail-generator.php:2561
868
- msgid "Allow other content on the same line as the video."
869
- msgstr "Позволяване на друго съдържание(пр. текст) на същия ред като видеото"
870
-
871
- # @ video-embed-thumbnail-generator
872
- #: video-embed-thumbnail-generator.php:2566
873
- #: video-embed-thumbnail-generator.php:2572
874
- #: video-embed-thumbnail-generator.php:3702
875
- #: video-embed-thumbnail-generator.php:4310
876
- msgid "Width:"
877
- msgstr "Ширина:"
878
-
879
- # @ video-embed-thumbnail-generator
880
- #: video-embed-thumbnail-generator.php:2566
881
- #: video-embed-thumbnail-generator.php:2572
882
- #: video-embed-thumbnail-generator.php:3702
883
- #: video-embed-thumbnail-generator.php:4310
884
- msgid "Height:"
885
- msgstr "Височина:"
886
-
887
- # @ video-embed-thumbnail-generator
888
- #: video-embed-thumbnail-generator.php:2567
889
- msgid "Enlarge lower resolution videos to max width."
890
- msgstr "Уголемяване на видеа с по-ниска резолюция до максималната ширина."
891
-
892
- # @ video-embed-thumbnail-generator
893
- #: video-embed-thumbnail-generator.php:2567
894
- msgid ""
895
- "Usually if a video's resolution is less than the max width, the video player "
896
- "is set to the actual width of the video. Enabling this will always set the "
897
- "same width regardless of the quality of the video. When necessary you can "
898
- "override by setting the dimensions manually."
899
- msgstr ""
900
- "Обикновено, когато разделителната способност(резолюция) на видеото е по-"
901
- "малка от максималната ширина, видео плеърът е с реалните размери на видеото. "
902
- "Включването на тази опция, ще направи видеата с еднакъв размер, независимо "
903
- "от качеството на конкретния клип. Когато е нужно, можете да зададете "
904
- "различен размер ръчно за отделно видео."
905
-
906
- # @ video-embed-thumbnail-generator
907
- #: video-embed-thumbnail-generator.php:2583
908
- msgid "docked"
909
- msgstr "закачено"
910
-
911
- # @ video-embed-thumbnail-generator
912
- #: video-embed-thumbnail-generator.php:2584
913
- msgid "floating"
914
- msgstr "\"плаващо\""
915
-
916
- # @ video-embed-thumbnail-generator
917
- #: video-embed-thumbnail-generator.php:2585
918
- #: video-embed-thumbnail-generator.php:2609
919
- #: video-embed-thumbnail-generator.php:2657
920
- #: video-embed-thumbnail-generator.php:2746
921
- #: video-embed-thumbnail-generator.php:2898
922
- msgid "none"
923
- msgstr "без"
924
-
925
- # @ video-embed-thumbnail-generator
926
- #: video-embed-thumbnail-generator.php:2596
927
- msgid "Play automatically when page loads."
928
- msgstr "Автоматично възпроизвеждане, след зареждане на страницата."
929
-
930
- # @ video-embed-thumbnail-generator
931
- #: video-embed-thumbnail-generator.php:2601
932
- msgid "Loop to beginning when video ends."
933
- msgstr "Повторно възпроизвеждане отначало, след като клипът свърши."
934
-
935
- # @ video-embed-thumbnail-generator
936
- #: video-embed-thumbnail-generator.php:2607
937
- msgid "metadata"
938
- msgstr "метаданни"
939
-
940
- # @ video-embed-thumbnail-generator
941
- #: video-embed-thumbnail-generator.php:2608
942
- msgid "auto"
943
- msgstr "автоматично"
944
-
945
- # @ video-embed-thumbnail-generator
946
- #: video-embed-thumbnail-generator.php:2615
947
- msgctxt "Suggest not translating the words in quotation marks"
948
- msgid ""
949
- "Controls how much of a video to load before the user starts playback. Mobile "
950
- "browsers never preload any video information. Selecting \"metadata\" will "
951
- "load the height and width and format information along with a few seconds of "
952
- "the video in some desktop browsers. \"Auto\" will preload nearly a minute of "
953
- "video in most desktop browsers. \"None\" will prevent all data from "
954
- "preloading."
955
- msgstr ""
956
- "Каква част от видеото да се зареди, преди клипът да бъде пуснат. Мобилните "
957
- "браузъри зареждат нищо предварително. \"метаданни\" ще заредят предварително "
958
- "размера на клипа и няколко секунди от началото му в някои браузъри. "
959
- "\"автоматично\" ще зареди предварително около минута от видеото в повечето "
960
- "браузъри. \"без\" ще спре предварителното зареждане изцяло."
961
-
962
- # @ video-embed-thumbnail-generator
963
- #: video-embed-thumbnail-generator.php:2620
964
- msgid ""
965
- "Use %s for a nice, circular play button. Leave blank for the default square "
966
- "play button."
967
- msgstr ""
968
- "Използвайте %s за хубав, кръгъл бутон за възпроизвеждане. Оставете празно за "
969
- "обикновен, квадратен бутон."
970
-
971
- # @ video-embed-thumbnail-generator
972
- #: video-embed-thumbnail-generator.php:2620
973
- msgid "Or build your own CSS skin."
974
- msgstr "Или използвайте собствена CSS кожа."
975
-
976
- # @ video-embed-thumbnail-generator
977
- #: video-embed-thumbnail-generator.php:2635
978
- msgid "Use %s for a modern, circular play button."
979
- msgstr "Използвайте %s за хубав, кръгъл бутон за възпроизвеждане."
980
-
981
- # @ video-embed-thumbnail-generator
982
- #: video-embed-thumbnail-generator.php:2635
983
- msgid "Leave blank for the off-center square play button."
984
- msgstr "Оставете празно за обикновен, квадратен бутон за възпроизвеждане."
985
-
986
- # @ video-embed-thumbnail-generator
987
- #: video-embed-thumbnail-generator.php:2641
988
- msgid "liveOrRecorded"
989
- msgstr "на живо или запис"
990
-
991
- # @ video-embed-thumbnail-generator
992
- #: video-embed-thumbnail-generator.php:2642
993
- msgid "live"
994
- msgstr "на живо"
995
-
996
- # @ video-embed-thumbnail-generator
997
- #: video-embed-thumbnail-generator.php:2643
998
- msgid "recorded"
999
- msgstr "запис"
1000
-
1001
- # @ video-embed-thumbnail-generator
1002
- #: video-embed-thumbnail-generator.php:2644
1003
- msgid "dvr"
1004
- msgstr "dvr"
1005
-
1006
- # @ video-embed-thumbnail-generator
1007
- #: video-embed-thumbnail-generator.php:2656
1008
- msgid "letterbox"
1009
- msgstr "по ширина"
1010
-
1011
- # @ video-embed-thumbnail-generator
1012
- #: video-embed-thumbnail-generator.php:2658
1013
- msgid "stretch"
1014
- msgstr "разтягане"
1015
-
1016
- # @ video-embed-thumbnail-generator
1017
- #: video-embed-thumbnail-generator.php:2659
1018
- msgid "zoom"
1019
- msgstr "увеличаване"
1020
-
1021
- # @ video-embed-thumbnail-generator
1022
- #: video-embed-thumbnail-generator.php:2671
1023
- msgid "Autohide controlbar."
1024
- msgstr "Автоматично скриване на контролната лента."
1025
-
1026
- # @ video-embed-thumbnail-generator
1027
- #: video-embed-thumbnail-generator.php:2676
1028
- msgid "Overlay play button on poster frame."
1029
- msgstr "Бутон за възпроизвеждане върху картинката"
1030
-
1031
- # @ video-embed-thumbnail-generator
1032
- #: video-embed-thumbnail-generator.php:2688
1033
- msgid "Can make thumbnails"
1034
- msgstr "Може да задава картинки"
1035
-
1036
- # @ video-embed-thumbnail-generator
1037
- #: video-embed-thumbnail-generator.php:2688
1038
- msgid "Can encode videos"
1039
- msgstr "Може да кодира видеа"
1040
-
1041
- # @ video-embed-thumbnail-generator
1042
- #: video-embed-thumbnail-generator.php:2688
1043
- msgid "Can view & modify other users encode queue"
1044
- msgstr ""
1045
- "Може да преглежда и модифицира опашката за кодиране на други потребители"
1046
-
1047
- # @ video-embed-thumbnail-generator
1048
- #: video-embed-thumbnail-generator.php:2722
1049
- msgid "Allow users to embed your videos on other sites."
1050
- msgstr "Позволете на потребителите да вграждат Вашите видеа в други сайтове."
1051
-
1052
- # @ video-embed-thumbnail-generator
1053
- #: video-embed-thumbnail-generator.php:2723
1054
- msgctxt "\"Open Graph\" is a proper noun and might not need translation"
1055
- msgid "Enable Open Graph video tags"
1056
- msgstr "Включете OpenGraph видео етикети"
1057
-
1058
- # @ video-embed-thumbnail-generator
1059
- #: video-embed-thumbnail-generator.php:2723
1060
- msgid ""
1061
- "Facebook and some other social media sites will use these tags to embed the "
1062
- "first video in your post. For the majority of Facebook users who have "
1063
- "enabled secure browsing, your video must be served via https in order to be "
1064
- "embedded directly on the page."
1065
- msgstr ""
1066
- "Facebook и някои други социални мрежи ще използват тези тагове, за да "
1067
- "вграждат първото видео в публикацията Ви. За повечето facebook потребители, "
1068
- "които са включили 'secure browsing', вашето видео трябва да бъде показвано "
1069
- "чрез https, за да бъде вграждано директно на страницата."
1070
-
1071
- # @ video-embed-thumbnail-generator
1072
- #: video-embed-thumbnail-generator.php:2724
1073
- msgid "Allow right-clicking on videos."
1074
- msgstr "Позволете десен бутон върху видеата."
1075
-
1076
- # @ video-embed-thumbnail-generator
1077
- #: video-embed-thumbnail-generator.php:2724
1078
- msgid ""
1079
- "We can't prevent a user from simply saving the downloaded video file from "
1080
- "the browser's cache, but disabling right-clicking will make it more "
1081
- "difficult for casual users to save your videos."
1082
- msgstr ""
1083
- "Няма да спре потребителите от записване на видеото от кеша на браузъра, но "
1084
- "изключването на десния бутон върху клиповете ще направи свалянето им от "
1085
- "обикновени потребители значително по-трудно."
1086
-
1087
- # @ video-embed-thumbnail-generator
1088
- #: video-embed-thumbnail-generator.php:2729
1089
- msgid "Set generated video thumbnails as featured images."
1090
- msgstr "Задаване на генерираните картинки, като картинки на публикациите."
1091
-
1092
- # @ video-embed-thumbnail-generator
1093
- #: video-embed-thumbnail-generator.php:2729
1094
- msgid ""
1095
- "If your theme uses the featured image meta tag, this will automatically set "
1096
- "a video's parent post's featured image to the most recently saved thumbnail "
1097
- "image."
1098
- msgstr ""
1099
- "Ако шаблонът, който използвате поддържа картинки на публикациите, тази опция "
1100
- "ще зададе картинката на видеото, като картинка на публикацията, в която се "
1101
- "намира."
1102
-
1103
- # @ video-embed-thumbnail-generator
1104
- #: video-embed-thumbnail-generator.php:2729
1105
- msgctxt "implied \"Set all thumbnails as featured\""
1106
- msgid "Set all as featured"
1107
- msgstr "Задайте всички като картинки на публикации"
1108
-
1109
- # @ video-embed-thumbnail-generator
1110
- #: video-embed-thumbnail-generator.php:2729
1111
- msgid ""
1112
- "If you've generated thumbnails before enabling this option, this will set "
1113
- "all existing thumbnails as featured images. Be careful!"
1114
- msgstr ""
1115
- "Ако сте генерирали картинки преди, включването на тази опция ще ги зададе "
1116
- "като картинки на публикации."
1117
-
1118
- # @ video-embed-thumbnail-generator
1119
- #: video-embed-thumbnail-generator.php:2740
1120
- msgid ""
1121
- "This depends on your theme. Thumbnails generated by the plugin can be saved "
1122
- "as children of the video attachment or the post. Some themes use an image "
1123
- "attached to a post instead of the built-in featured image meta tag. Version "
1124
- "3.x of this plugin saved all thumbnails as children of the video."
1125
- msgstr ""
1126
- "Това зависи от темата, която ползвате. Картинките, генерирани от това "
1127
- "разширение могат да бъдат задавани като деца на видеото или на публикацията. "
1128
- "Някои теми използват изображение, прикачено към публикацията, вместо "
1129
- "обикновенните картинки на публикация. Версия 3.х на това разширение "
1130
- "записваше всички картинки, като деца на видеото."
1131
-
1132
- # @ video-embed-thumbnail-generator
1133
- #: video-embed-thumbnail-generator.php:2740
1134
- msgid "Set all parents"
1135
- msgstr "Задай всички родители"
1136
-
1137
- # @ video-embed-thumbnail-generator
1138
- #: video-embed-thumbnail-generator.php:2740
1139
- msgid ""
1140
- "If you've generated thumbnails before changing this option, this will set "
1141
- "all existing thumbnails as children of your currently selected option."
1142
- msgstr ""
1143
- "Ако сте генерирали картинки преди да промените тази настройка, това ще "
1144
- "зададе всички съществуващи картинки като деца на избраната опция."
1145
-
1146
- # @ video-embed-thumbnail-generator
1147
- #: video-embed-thumbnail-generator.php:2747
1148
- msgid "all"
1149
- msgstr "всички"
1150
-
1151
- # @ video-embed-thumbnail-generator
1152
- #: video-embed-thumbnail-generator.php:2748
1153
- msgid "encoded videos only"
1154
- msgstr "само кодирани видеа"
1155
-
1156
- # @ video-embed-thumbnail-generator
1157
- #: video-embed-thumbnail-generator.php:2754
1158
- msgid ""
1159
- "If you delete the original video you can choose to delete all associated "
1160
- "attachments (thumbnails & videos) or keep the thumbnail."
1161
- msgstr ""
1162
- "Ако изтриете оригиналното видео, може да изберете дали да изтриете всички "
1163
- "асоциирани с него приложения(картинки и видеа) или да запазите картинката."
1164
-
1165
- # @ video-embed-thumbnail-generator
1166
- #: video-embed-thumbnail-generator.php:2759
1167
- msgid ""
1168
- "HTML tag applied to titles inserted above the video. Examples: %s. "
1169
- "Corresponding closing tags will be applied to the end of the title "
1170
- "automatically."
1171
- msgstr ""
1172
- "HTML таг, прилагащ се към заглавията на видеата. Пример: %s. Затварящите "
1173
- "тагове ще бъдат добавени в края на заглавието автоматично."
1174
-
1175
- #: video-embed-thumbnail-generator.php:2764
1176
- msgid "Video title (WP default)"
1177
- msgstr "Заглавие на видеото (стандартно за WP)"
1178
-
1179
- #: video-embed-thumbnail-generator.php:2764
1180
- msgid "Video in existing template"
1181
- msgstr "Видео в съществуващ шаблон"
1182
-
1183
- # @ video-embed-thumbnail-generator
1184
- #: video-embed-thumbnail-generator.php:2764
1185
- msgid "Video only (deprecated)"
1186
- msgstr "Само видео (не се препоръчва)"
1187
-
1188
- # @ video-embed-thumbnail-generator
1189
- #: video-embed-thumbnail-generator.php:2770
1190
- msgid ""
1191
- "By default WordPress only displays a video's title on the attachment page. "
1192
- "This plugin can filter your attachment page to display the video, or "
1193
- "completely replace your attachment template to show only the video. If you "
1194
- "were one of the few people using iframe embed codes before version 4.0 of "
1195
- "this plugin then you should continue to use \"Video only\" but otherwise "
1196
- "it's not recommended."
1197
- msgstr ""
1198
- "По подразбиране, WordPress показва само заглавие на видеото в страницата му "
1199
- "на прикачен файл. Това разширение може да промени това, показвайки и "
1200
- "заглавие, и видео, или пък само видео. Ако бяхте от малцината, които "
1201
- "използваха iframe кодове за вграждане преди версия 4.0 на това разширение, "
1202
- "продължете да използвате \"Само видео\", в останалите случаи не се "
1203
- "препоръчва."
1204
-
1205
- # @ video-embed-thumbnail-generator
1206
- #: video-embed-thumbnail-generator.php:2784
1207
- msgid ""
1208
- "This should be the folder where applications are installed on your server, "
1209
- "not a direct path to an application, so it doesn't usually end with %1$s. "
1210
- "Example: %2$s."
1211
- msgstr ""
1212
- "Това трябва да е директорията, в която приложенията са инсталирани на вашия "
1213
- "сървър, не директен път до приложение, така че обикновено не завършва с "
1214
- "%1$s. Пример: %2$s."
1215
-
1216
- # @ video-embed-thumbnail-generator
1217
- #: video-embed-thumbnail-generator.php:2796
1218
- msgid ""
1219
- "FFMPEG split into two separate branches in 2011. The new branch is called "
1220
- "LIBAV and executes using \"avconv\" instead of \"ffmpeg.\" Both are still "
1221
- "actively developed and FFMPEG frequently incorporates LIBAV features. Debian "
1222
- "& Ubuntu users probably have LIBAV installed."
1223
- msgstr ""
1224
- "FFMPEG се раздели на няколко различни клона през 2011. Новият клон се казва "
1225
- "LIBAV и се изпълнява, използвайки \"avconv\", вместо \"ffmpeg\". И двата все "
1226
- "още активно се разработват и FFMPEG често използва фукнции от LIBAV. Debian "
1227
- "и Ubuntu потребители, ней-вероятно имат инсталиран LIBAV."
1228
-
1229
- # @ video-embed-thumbnail-generator
1230
- #: video-embed-thumbnail-generator.php:2802
1231
- msgid ""
1232
- "When possible, use the browser's built-in video capabilities to make "
1233
- "thumbnails instead of %s."
1234
- msgstr ""
1235
- "Когато може, използване видео възможностите на браузъра, за генериране на "
1236
- "картинки, вместо %s."
1237
-
1238
- # @ video-embed-thumbnail-generator
1239
- #: video-embed-thumbnail-generator.php:2809
1240
- msgid "Replace original with same resolution H.264"
1241
- msgstr "Заместване на оригиналът със H.264 със същата разд. способност"
1242
-
1243
- # @ video-embed-thumbnail-generator
1244
- #: video-embed-thumbnail-generator.php:2809
1245
- msgid ""
1246
- "If you have FFMPEG/LIBAV and the proper libraries installed, you can choose "
1247
- "to replace your uploaded video with an H.264 video, and also transcode into "
1248
- "as many as five additional formats depending on the resolution of your "
1249
- "original source. Different browsers have different playback capabilities. "
1250
- "Most desktop browsers can play H.264, and all modern mobile devices can play "
1251
- "at least 480p H.264. If you create multiple H.264 resolutions, the highest "
1252
- "resolution supported by the device will be served up automatically. The "
1253
- "plugin will not upconvert your video, so if you upload a 720p video, it will "
1254
- "not waste your time creating a 1080p version. There was a time when it "
1255
- "seemed like a good idea to provide OGV or WEBM for some desktop browsers, "
1256
- "but even Firefox allows H.264 playback on Windows now. I no longer recommend "
1257
- "encoding OGV or WEBM unless you expect a large number of no-Flash sticklers "
1258
- "visiting your site."
1259
- msgstr ""
1260
- "Ако имате инсталирани FFMPEG/LIBAV и подходящите библиотеки, можете да "
1261
- "заместите каченото видео с H.264 видео и да ко конвертирате в най-много пет "
1262
- "други формата, в зависимост от резолюцията на оригиналния източник. "
1263
- "Различните браузъри имат различни възможности за възпроизвеждане. Повечето "
1264
- "настолни браузъри могат да изпълнят H.264 и всички модерни мобилни у-ва "
1265
- "могат да изпълнят поне 480p H.264. Ако създадете няколко H.264 резолюции, "
1266
- "най-високата поддържана резолюция за даденото устройство ще бъде заредена "
1267
- "автоматично. Разширението няма да опита да зъздаде по-висока резолюция от "
1268
- "оригинала - ако източника е 720p, няма да губим времето Ви, създавайки 1080p "
1269
- "версия. Преди време беше добра идея да се предоставят OGV и WEBM версии за "
1270
- "някои браузъри, но вече дори Firefox поддържа H.264. Вече не препоръчваме "
1271
- "OGV и WEBM кодиране, освен ако не очаквате масивни посещения от противници "
1272
- "на Flash."
1273
-
1274
- # @ video-embed-thumbnail-generator
1275
- #: video-embed-thumbnail-generator.php:2810
1276
- msgid ""
1277
- "(iPhone 4s+, iPad 2+, modern Android, Windows Phone 8, Chrome, Safari, IE "
1278
- "9+, Firefox Windows)"
1279
- msgstr ""
1280
- "(iPhone 4s+, iPad 2+, модерни у-ва с Android, Windows Phone 8, Chrome, "
1281
- "Safari, IE 9+, Firefox Windows)"
1282
-
1283
- # @ video-embed-thumbnail-generator
1284
- #: video-embed-thumbnail-generator.php:2811
1285
- msgid "(iPhone 4+, iPad, most Android, Chrome, Safari, IE 9+, Firefox Windows)"
1286
- msgstr ""
1287
- "(iPhone 4+, iPad, повечето у-ва с Android, Chrome, Safari, IE 9+, Firefox "
1288
- "Windows)"
1289
-
1290
- # @ video-embed-thumbnail-generator
1291
- #: video-embed-thumbnail-generator.php:2832
1292
- msgid "Generate %1$s thumbnail from %2$s%% of the way through the video."
1293
- msgid_plural "Generate %1$s thumbnails and set #%2$s as the main image."
1294
- msgstr[0] "Генериране на %1$s картинка от %2$s%% от видеото."
1295
- msgstr[1] ""
1296
- "Генериране на %1$s картинки и задаване на #%2$s като основна картинка."
1297
-
1298
- # @ video-embed-thumbnail-generator
1299
- #: video-embed-thumbnail-generator.php:2840
1300
- msgid "Encode formats selected above."
1301
- msgstr "Кодиране на избраните по-горе формати."
1302
-
1303
- # @ video-embed-thumbnail-generator
1304
- #: video-embed-thumbnail-generator.php:2860
1305
- msgid "Username:"
1306
- msgstr "Потребителско име:"
1307
-
1308
- # @ video-embed-thumbnail-generator
1309
- #: video-embed-thumbnail-generator.php:2861
1310
- msgid "Password:"
1311
- msgstr "Парола:"
1312
-
1313
- # @ video-embed-thumbnail-generator
1314
- #: video-embed-thumbnail-generator.php:2861
1315
- msgid ""
1316
- "If your videos are htaccess protected, %s will access them using these "
1317
- "credentials."
1318
- msgstr ""
1319
- "Ако видеата Ви са защитени с .htaccess, %s ще ги достъпва с тези данни за "
1320
- "достъп."
1321
-
1322
- # @ video-embed-thumbnail-generator
1323
- #: video-embed-thumbnail-generator.php:2869
1324
- msgid "Scale: %s%% of video covered by the watermark."
1325
- msgstr "Преоразмеряване: %s%% от видеото е покрито с водния знак."
1326
-
1327
- # @ video-embed-thumbnail-generator
1328
- #: video-embed-thumbnail-generator.php:2870
1329
- msgctxt "horizontal center"
1330
- msgid "center"
1331
- msgstr "център"
1332
-
1333
- # @ video-embed-thumbnail-generator
1334
- #: video-embed-thumbnail-generator.php:2871
1335
- msgid "Horizontal align:"
1336
- msgstr "Хоризонтално подравняване:"
1337
-
1338
- # @ video-embed-thumbnail-generator
1339
- #: video-embed-thumbnail-generator.php:2878
1340
- #: video-embed-thumbnail-generator.php:2888
1341
- msgid "offset"
1342
- msgstr "изместване"
1343
-
1344
- # @ video-embed-thumbnail-generator
1345
- #: video-embed-thumbnail-generator.php:2880
1346
- msgid "Vertical align:"
1347
- msgstr "Вертикално подравняване:"
1348
-
1349
- # @ video-embed-thumbnail-generator
1350
- #: video-embed-thumbnail-generator.php:2882
1351
- msgid "top"
1352
- msgstr "горе"
1353
-
1354
- # @ video-embed-thumbnail-generator
1355
- #: video-embed-thumbnail-generator.php:2882
1356
- msgctxt "vertical center"
1357
- msgid "center"
1358
- msgstr "център"
1359
-
1360
- # @ video-embed-thumbnail-generator
1361
- #: video-embed-thumbnail-generator.php:2882
1362
- msgid "bottom"
1363
- msgstr "долу"
1364
-
1365
- # @ video-embed-thumbnail-generator
1366
- #: video-embed-thumbnail-generator.php:2904
1367
- msgid ""
1368
- "By default %1$s places moov atoms at the end of H.264 encoded files, which "
1369
- "forces the entire file to download before playback can start and can prevent "
1370
- "Flash players from playing them at all. Since approximately October 2012 "
1371
- "%1$s can fix the problem at the end of the encoding process by using the "
1372
- "option `movflags faststart`. This is the easiest and fastest way to correct "
1373
- "the problem, but older versions of %1$s will not work if you select the "
1374
- "movflags option. If you can't update to a new version of %1$s, select qt-"
1375
- "faststart or MP4Box which will run after encoding is finished if they are "
1376
- "installed on your server."
1377
- msgstr ""
1378
- "По подразбиране, %1$s слага 'moov атоми' в края на H.264 кодирани файлове, "
1379
- "което прави наложително целият файл да бъде свален, преди възпроизвеждането "
1380
- "да започне, и е възможно да спре Flash плеъри от изпълняване. От Октомври "
1381
- "2012, %1$s може да поправи проблема в края на процеса на кодиране, "
1382
- "използвайки опцията 'movflags faststart'. Това е най-лесният и бърз начин, "
1383
- "проблемът да бъде оправен, но по-старите версии на %1$s няма да работят ако "
1384
- "изберете movflags опцията. Ако не можете да обновите до по-нова версия на "
1385
- "%1$s, изберете qt-faststart или MP4Box, които ще се изпълняват след като "
1386
- "кодирането е приключило, ако са инсталирани на сървъра Ви."
1387
-
1388
- # @ video-embed-thumbnail-generator
1389
- #: video-embed-thumbnail-generator.php:2917
1390
- msgid ""
1391
- "Constant Rate Factor (CRF) attempts to maintain a particular quality output "
1392
- "for the entire video and only uses bits the encoder determines are "
1393
- "necessary. Average Bit Rate is similar to the method used in older versions "
1394
- "of this plugin. If CRF is selected, WEBM encoding will also use the ABR "
1395
- "setting to set a max bit rate 25% higher than the ABR. Without a max bit "
1396
- "rate setting WEBM files are terrible quality."
1397
- msgstr ""
1398
- "Фактор за постоянен поток (Constant Rate Factor - CRF) опитва да поддържа "
1399
- "определено качество на видеото през цялата му продължителност и използвайки "
1400
- "само битове, които енкодера сметне за необходими. Средният битрейт е подобен "
1401
- "на метода, използван в старите версии на това разширение. ако CRF е избран, "
1402
- "WEBM кодирането ще използва и ABR опцията, за да зададе битрейт 25% по-висок "
1403
- "от ABR-ът. Без зададен максимален битрейт, WEBM файловете са с много лошо "
1404
- "качество."
1405
-
1406
- # @ video-embed-thumbnail-generator
1407
- #: video-embed-thumbnail-generator.php:2929
1408
- msgid ""
1409
- "Lower values are higher quality. 18 is considered visually lossless. Default "
1410
- "is 23."
1411
- msgstr ""
1412
- "По-ниските стойности са за по-високо качество. 18 се счита за 'lossles'(без "
1413
- "загуби). Стойността по подразбиране е 23."
1414
-
1415
- # @ video-embed-thumbnail-generator
1416
- #: video-embed-thumbnail-generator.php:2936
1417
- msgid "Lower values are higher quality. Default is 10."
1418
- msgstr ""
1419
- "По-ниските стойности са за по-високо качество. Стойност по подразбиране - 10."
1420
-
1421
- # @ video-embed-thumbnail-generator
1422
- #: video-embed-thumbnail-generator.php:2943
1423
- msgid "Higher values are higher quality. Default is 6."
1424
- msgstr ""
1425
- "По-високите стойности за за по-високо качество. Стойност по подразбиране - 6."
1426
-
1427
- # @ video-embed-thumbnail-generator
1428
- #: video-embed-thumbnail-generator.php:2955
1429
- msgid "bits per pixel."
1430
- msgstr "бита за пиксел."
1431
-
1432
- # @ video-embed-thumbnail-generator
1433
- #: video-embed-thumbnail-generator.php:2955
1434
- msgid "Default is 0.1"
1435
- msgstr "По подразбиране - 0.1"
1436
-
1437
- # @ video-embed-thumbnail-generator
1438
- #: video-embed-thumbnail-generator.php:2971
1439
- msgctxt "H.264 profile. Might not need translation"
1440
- msgid "profile"
1441
- msgstr "профил"
1442
-
1443
- # @ video-embed-thumbnail-generator
1444
- #: video-embed-thumbnail-generator.php:2971
1445
- msgid ""
1446
- "Lower profiles will slightly increase file sizes. This mostly depends on "
1447
- "your need for compatability with Android devices. Main profile seems to work "
1448
- "on recent phones, although officially Android only supports baseline. High "
1449
- "profile is not recommended for mobile or Flash compatibility, and anything "
1450
- "above high is designed for professional video and probably incompatible with "
1451
- "consumer devices. Older versions of FFMPEG might ignore this setting "
1452
- "altogether."
1453
- msgstr ""
1454
- "По-ниските профили ще увеличат малко размера на файла. Това зависи предимно "
1455
- "от нуждата ви за съвместимост с Android устройства. Главните профили "
1456
- "работят с по-новите у-ва, въпреки че официално, Android, поддържа само "
1457
- "'baseline'. Високият профил не се препоръчва за съвместимост с мобилни у-ва "
1458
- "или Flash, а всичко над него е за професионално видео и вероятно "
1459
- "несъвместимо с обикновени потребителски у-ва. По-старите версии на FFMPEG е "
1460
- "възможно да игрнорират тази настройка изяло."
1461
-
1462
- # @ video-embed-thumbnail-generator
1463
- #: video-embed-thumbnail-generator.php:2978
1464
- msgctxt "H.264 level. Might not need translation"
1465
- msgid "level"
1466
- msgstr "ниво"
1467
-
1468
- # @ video-embed-thumbnail-generator
1469
- #: video-embed-thumbnail-generator.php:2978
1470
- msgid ""
1471
- "3.0 is default. Lower levels will lower maximum bit rates and decoding "
1472
- "complexity. This mostly depends on your need for compatability with mobile "
1473
- "devices. Older versions of FFMPEG might ignore this setting altogether."
1474
- msgstr ""
1475
- "3.0 по подразбиране. По-ниските нива ще намалят максималните битрейти и "
1476
- "сложността на кодирането. Това зависи предимно от нуждата Ви за съвместимост "
1477
- "с мобилни устройства. По-старите версии на FFMPEG може да игнорират тази "
1478
- "настройка изяло."
1479
-
1480
- # @ video-embed-thumbnail-generator
1481
- #: video-embed-thumbnail-generator.php:2998
1482
- msgid "Enable legacy FFMPEG \"-b\" and \"-ba\" bitrate flags."
1483
- msgstr "Включи наследените FFMPEG \"-b\" и \"-ba\" флагове."
1484
-
1485
- # @ video-embed-thumbnail-generator
1486
- #: video-embed-thumbnail-generator.php:2998
1487
- msgid ""
1488
- "Enable if your installed version of FFMPEG is old enough that you can't use "
1489
- "the newer -b:v flags (Dreamhost users must turn this on). It may cause newer "
1490
- "versions of FFMPEG to fail."
1491
- msgstr ""
1492
- "Включете това, ако инсталираната версия на FFMPEG е достатъчно стара, че да "
1493
- "не поддържа новите -b:v флагове(Потребители на Dreamhost ТРЯБВА да включат "
1494
- "тази настройка). Може да предизвика проблеми в новите версии на FFMPEG."
1495
-
1496
- # @ video-embed-thumbnail-generator
1497
- #: video-embed-thumbnail-generator.php:2999
1498
- msgid "Enable legacy FFMPEG parameters."
1499
- msgstr "Включете наследените(стари) параметри на FFMPEG."
1500
-
1501
- # @ video-embed-thumbnail-generator
1502
- #: video-embed-thumbnail-generator.php:2999
1503
- msgid ""
1504
- "Enable if your installed version of FFMPEG is old enough that libx264 "
1505
- "requires additional configuration to operate (Dreamhost users must turn this "
1506
- "on). This should help if you can encode WEBM or OGV files but H264/Mobile "
1507
- "files fail. It could cause newer versions of FFMPEG to fail."
1508
- msgstr ""
1509
- "Включете, ако инсталираната версия на FFMPEG е стара и libx264 изисква "
1510
- "допълнителна кофигураия за да се изпълнява (Потребители на Dreamhost ТРЯБВА "
1511
- "да включат тази настройка). Това би трябвало да помогне, ако можете да "
1512
- "кодирате WEBM или OGV файлове, но H264/мобилни файлове се провалят. Може да "
1513
- "предизвика проблеми при по-нови версии на FFMPEG."
1514
-
1515
- # @ video-embed-thumbnail-generator
1516
- #: video-embed-thumbnail-generator.php:3012
1517
- msgid "Simultaneous encodes."
1518
- msgstr "едновременни кодирания."
1519
-
1520
- # @ video-embed-thumbnail-generator
1521
- #: video-embed-thumbnail-generator.php:3012
1522
- msgid ""
1523
- "Increasing the number will allow %1$s to encode more than one file at a "
1524
- "time, but may lead to %1$s monopolizing system resources."
1525
- msgstr ""
1526
- "Увеличаване на стойността ще позволи на %1$s да кодира повече от един файл "
1527
- "едновременно, но може да доведе до монополизиране на системни ресурси от "
1528
- "%1$s."
1529
-
1530
- # @ video-embed-thumbnail-generator
1531
- #: video-embed-thumbnail-generator.php:3019
1532
- msgctxt "CPU threads. Might not need translating"
1533
- msgid "threads"
1534
- msgstr "нишки"
1535
-
1536
- # @ video-embed-thumbnail-generator
1537
- #: video-embed-thumbnail-generator.php:3019
1538
- msgid ""
1539
- "Default is 1, which limits encoding speed but prevents encoding from using "
1540
- "too many system resources. Selecting 0 will allow %1$s to optimize the "
1541
- "number of threads or you can set the number manually. This may lead to %1$s "
1542
- "monopolizing system resources."
1543
- msgstr ""
1544
- "По подразбиране е 1, което ограничава скоростта на кодиране, но възпира "
1545
- "кодирането от използване на прекалено много системни ресурси. Избиране на 0 "
1546
- "ще позволи на %1$s да оптимизира броя нишки или можете да зададете броя "
1547
- "ръчно. Това може да доведе до монополизиране на системните ресурси от %1$s."
1548
-
1549
- # @ video-embed-thumbnail-generator
1550
- #: video-embed-thumbnail-generator.php:3021
1551
- msgctxt "execute program"
1552
- msgid "Run"
1553
- msgstr "Изпълняване"
1554
-
1555
- # @ video-embed-thumbnail-generator
1556
- #: video-embed-thumbnail-generator.php:3021
1557
- msgid ""
1558
- "Tells %1$s to run at a lower priority to avoid monopolizing system resources."
1559
- msgstr ""
1560
- "Казва на %1$s да се изпълни с по-нисък приоритет, за да избегне "
1561
- "монополизиране на системните ресурси."
1562
-
1563
- # @ video-embed-thumbnail-generator
1564
- #: video-embed-thumbnail-generator.php:3055
1565
- msgid "%1$s sample %2$s encode command"
1566
- msgstr "%1$s мостра %2$s кодираща команда"
1567
-
1568
- # @ video-embed-thumbnail-generator
1569
- #: video-embed-thumbnail-generator.php:3056
1570
- msgid "%s test output:"
1571
- msgstr "Тестов резултат от %s :"
1572
-
1573
- # @ video-embed-thumbnail-generator
1574
- #: video-embed-thumbnail-generator.php:3056
1575
- msgid "For help interpreting this output, %s try our Wiki page on Github"
1576
- msgstr ""
1577
- "За помощ с интерпретирането на този резултат, %s опитайте нашата Wiki "
1578
- "страниа в Github"
1579
-
1580
- # @ video-embed-thumbnail-generator
1581
- #: video-embed-thumbnail-generator.php:3239
1582
- msgid ""
1583
- "%1$s is disabled in PHP settings. You can embed existing videos and make "
1584
- "thumbnails with compatible browsers, but video encoding will not work. "
1585
- "Contact your System Administrator to find out if you can enable %1$s."
1586
- msgstr ""
1587
- "%1$s е изключен в PHP настройките. Можете да вграждате съществуващи видеа и "
1588
- "да създавате картинки със съвместими браузъри, но видео кодирането няма да "
1589
- "работи. Свържете се със системния си администратор, за да разберете как да "
1590
- "включите %1$s."
1591
-
1592
- # @ video-embed-thumbnail-generator
1593
- #: video-embed-thumbnail-generator.php:3243
1594
- msgid ""
1595
- "%1$s not found at %2$s. You can embed existing videos and make thumbnails "
1596
- "with compatible browsers, but video encoding is not possible without %1$s."
1597
- msgstr ""
1598
- "%1$s не е намерен в %2$s. Можете да вграждате съществуващи клипове и да "
1599
- "създавате картинки на видеа със съвместими браузъри, но видео кодирането не "
1600
- "е възможно без %1$s."
1601
-
1602
- # @ video-embed-thumbnail-generator
1603
- #: video-embed-thumbnail-generator.php:3258
1604
- msgid "Video Embed & Thumbnail Generator settings reset to default values."
1605
- msgstr ""
1606
- "Настройките на Video Embed & Thumbnail Generator бяха възстановени до "
1607
- "стойностите по подразбиране."
1608
-
1609
- # @ video-embed-thumbnail-generator
1610
- #: video-embed-thumbnail-generator.php:3269
1611
- msgid "You must enter a value for the maximum video width."
1612
- msgstr "Трябва да въведете стойност за максимална ширина на видеата."
1613
-
1614
- # @ video-embed-thumbnail-generator
1615
- #: video-embed-thumbnail-generator.php:3273
1616
- msgid "You must enter a value for the maximum video height."
1617
- msgstr "Трябва да въведете стойност за максимална височина на видеото."
1618
-
1619
- # @ video-embed-thumbnail-generator
1620
- #: video-embed-thumbnail-generator.php:3277
1621
- msgid "You must enter a value for the maximum gallery video width."
1622
- msgstr "Трябва да въведете стойност за максималната ширина на видео галериите."
1623
-
1624
- # @ video-embed-thumbnail-generator
1625
- #: video-embed-thumbnail-generator.php:3281
1626
- msgid "You must enter a value for the maximum gallery video height."
1627
- msgstr "Трябва да въведете стойност за максимална височина на видео галериите."
1628
-
1629
- # @ video-embed-thumbnail-generator
1630
- #: video-embed-thumbnail-generator.php:3571
1631
- msgid "Video Stats"
1632
- msgstr "Статистики за видеото"
1633
-
1634
- # @ video-embed-thumbnail-generator
1635
- #: video-embed-thumbnail-generator.php:3573
1636
- msgid "%1$s Starts, %2$s Complete Views"
1637
- msgstr "%1$s пускания, %2$s пълни гледания"
1638
-
1639
- # @ video-embed-thumbnail-generator
1640
- #: video-embed-thumbnail-generator.php:3599
1641
- msgid ""
1642
- "%1$s not found at %2$s and unable to load video in browser for thumbnail "
1643
- "generation."
1644
- msgstr ""
1645
- "%1$s не беше намерен във %2$s. Неуспешно зареждане на видеото в браузъра, за "
1646
- "да се генерира картинка на видеото."
1647
-
1648
- # @ video-embed-thumbnail-generator
1649
- #: video-embed-thumbnail-generator.php:3674
1650
- msgctxt "Button text. Implied \"Generate thumbnails\""
1651
- msgid "Generate"
1652
- msgstr "Генериране"
1653
-
1654
- # @ video-embed-thumbnail-generator
1655
- #: video-embed-thumbnail-generator.php:3675
1656
- msgctxt "Button text. Implied \"Randomize thumbnail generation\""
1657
- msgid "Randomize"
1658
- msgstr "Разбъркване"
1659
-
1660
- # @ video-embed-thumbnail-generator
1661
- #: video-embed-thumbnail-generator.php:3676
1662
- msgid "Force 1st frame thumbnail"
1663
- msgstr "Налагане на картинка от първия кадър."
1664
-
1665
- # @ video-embed-thumbnail-generator
1666
- #: video-embed-thumbnail-generator.php:3678
1667
- #: video-embed-thumbnail-generator.php:4298
1668
- msgid "Thumbnail timecode:"
1669
- msgstr "Код на времето за картинка:"
1670
-
1671
- # @ video-embed-thumbnail-generator
1672
- #: video-embed-thumbnail-generator.php:3682
1673
- msgctxt "Header for thumbnail section"
1674
- msgid "Thumbnails"
1675
- msgstr "Картинки"
1676
-
1677
- # @ video-embed-thumbnail-generator
1678
- #: video-embed-thumbnail-generator.php:3690
1679
- #: video-embed-thumbnail-generator.php:4299
1680
- msgid "Set thumbnail as featured image"
1681
- msgstr "Задай картинката като картинка на публикацията"
1682
-
1683
- # @ video-embed-thumbnail-generator
1684
- #: video-embed-thumbnail-generator.php:3692
1685
- #: video-embed-thumbnail-generator.php:4304
1686
- msgid "Thumbnail URL"
1687
- msgstr "URL адрес на картинката"
1688
-
1689
- # @ video-embed-thumbnail-generator
1690
- #: video-embed-thumbnail-generator.php:3694
1691
- #: video-embed-thumbnail-generator.php:4306
1692
- msgid "Leave blank to use %sdefault thumbnail"
1693
- msgstr "Оставете празно, за да използвате %s картинката по подразбиране"
1694
-
1695
- # @ video-embed-thumbnail-generator
1696
- #: video-embed-thumbnail-generator.php:3700
1697
- msgid "Video Embed Dimensions"
1698
- msgstr "Размер на вграденото видео"
1699
-
1700
- # @ video-embed-thumbnail-generator
1701
- #: video-embed-thumbnail-generator.php:3705
1702
- msgid "Lock to aspect ratio"
1703
- msgstr "Заключване на съотношението на страните"
1704
-
1705
- # @ video-embed-thumbnail-generator
1706
- #: video-embed-thumbnail-generator.php:3706
1707
- #: video-embed-thumbnail-generator.php:4311
1708
- msgid "Leave blank to use %sdefault dimensions"
1709
- msgstr "Оставете празно за %s размери по подразбиране"
1710
-
1711
- # @ video-embed-thumbnail-generator
1712
- #: video-embed-thumbnail-generator.php:3711
1713
- #: video-embed-thumbnail-generator.php:4315
1714
- msgid "Additional Formats"
1715
- msgstr "Допълнителни формати"
1716
-
1717
- # @ video-embed-thumbnail-generator
1718
- #: video-embed-thumbnail-generator.php:3732
1719
- msgctxt "captions track"
1720
- msgid "Track"
1721
- msgstr "Пътечка"
1722
-
1723
- # @ video-embed-thumbnail-generator
1724
- #: video-embed-thumbnail-generator.php:3736
1725
- msgctxt "two-letter code indicating track's language"
1726
- msgid "Language code:"
1727
- msgstr "Код на езика:"
1728
-
1729
- # @ video-embed-thumbnail-generator
1730
- #: video-embed-thumbnail-generator.php:3737
1731
- msgid "Label:"
1732
- msgstr "Етикет:"
1733
-
1734
- # @ video-embed-thumbnail-generator
1735
- #: video-embed-thumbnail-generator.php:3741
1736
- msgid "Subtitles & Captions"
1737
- msgstr "Субтитри и надписи"
1738
-
1739
- # @ video-embed-thumbnail-generator
1740
- #: video-embed-thumbnail-generator.php:3743
1741
- msgid "Add track"
1742
- msgstr "Добавяне на ппътечка"
1743
-
1744
- # @ video-embed-thumbnail-generator
1745
- #: video-embed-thumbnail-generator.php:3754
1746
- msgid "Single Video"
1747
- msgstr "Самостоятелно видео"
1748
-
1749
- # @ video-embed-thumbnail-generator
1750
- #: video-embed-thumbnail-generator.php:3754
1751
- msgid "Video Gallery"
1752
- msgstr "Видео галерия"
1753
-
1754
- # @ video-embed-thumbnail-generator
1755
- #: video-embed-thumbnail-generator.php:3762
1756
- msgid "Video Embed Options"
1757
- msgstr "Настройки за вграждането на видео"
1758
-
1759
- # @ video-embed-thumbnail-generator
1760
- #: video-embed-thumbnail-generator.php:3765
1761
- msgid "Insert title above video"
1762
- msgstr "Заглавие над видеото"
1763
-
1764
- # @ video-embed-thumbnail-generator
1765
- #: video-embed-thumbnail-generator.php:3767
1766
- msgid "Insert download link below video"
1767
- msgstr "Връзка за сваляне под видеото"
1768
-
1769
- # @ video-embed-thumbnail-generator
1770
- #: video-embed-thumbnail-generator.php:3767
1771
- msgid "Makes it easier for users to download file."
1772
- msgstr "Улеснява свалянето на файлове от потребителите."
1773
-
1774
- # @ video-embed-thumbnail-generator
1775
- #: video-embed-thumbnail-generator.php:3768
1776
- msgctxt "verb"
1777
- msgid "Insert"
1778
- msgstr "Добавяне"
1779
-
1780
- # @ video-embed-thumbnail-generator
1781
- #: video-embed-thumbnail-generator.php:3801
1782
- msgid "Gallery Settings (all optional)"
1783
- msgstr "Настройки на галериите (незадължителни)"
1784
-
1785
- # @ video-embed-thumbnail-generator
1786
- #: video-embed-thumbnail-generator.php:3803
1787
- msgid "Thumbnail Width"
1788
- msgstr "Ширина на картинките"
1789
-
1790
- # @ video-embed-thumbnail-generator
1791
- #: video-embed-thumbnail-generator.php:3804
1792
- msgid "Order By"
1793
- msgstr "Подреждане по"
1794
-
1795
- # @ video-embed-thumbnail-generator
1796
- #: video-embed-thumbnail-generator.php:3805
1797
- msgid "Sort Order"
1798
- msgstr "Начин на подреждане"
1799
-
1800
- # @ video-embed-thumbnail-generator
1801
- #: video-embed-thumbnail-generator.php:3806
1802
- msgid "Exclude"
1803
- msgstr "Премахване"
1804
-
1805
- # @ video-embed-thumbnail-generator
1806
- #: video-embed-thumbnail-generator.php:3807
1807
- msgid "Include"
1808
- msgstr "Добавяне"
1809
-
1810
- # @ video-embed-thumbnail-generator
1811
- #: video-embed-thumbnail-generator.php:3808
1812
- msgid "Post ID"
1813
- msgstr "ID на публикацията"
1814
-
1815
- # @ video-embed-thumbnail-generator
1816
- #: video-embed-thumbnail-generator.php:3986
1817
- msgctxt "text appended to newly created thumbnail titles"
1818
- msgid "thumbnail"
1819
- msgstr "картинка"
1820
-
1821
- # @ video-embed-thumbnail-generator
1822
- #: video-embed-thumbnail-generator.php:4251
1823
- msgctxt "Title in \"Add Media\" popup sidebar"
1824
- msgid "Embed Video from URL"
1825
- msgstr "Вграждане на видео от URL адрес"
1826
-
1827
- # @ video-embed-thumbnail-generator
1828
- #: video-embed-thumbnail-generator.php:4280
1829
- msgid "Video Title"
1830
- msgstr "Заглавие на видеото"
1831
-
1832
- # @ video-embed-thumbnail-generator
1833
- #: video-embed-thumbnail-generator.php:4282
1834
- msgid "Add an optional header above the video."
1835
- msgstr "Добавяне на допълнително заглавие над видеото."
1836
-
1837
- # @ video-embed-thumbnail-generator
1838
- #: video-embed-thumbnail-generator.php:4287
1839
- msgid "Specify the URL of the video file."
1840
- msgstr "Задайте точния URL адрес на видео файла."
1841
-
1842
- # @ video-embed-thumbnail-generator
1843
- #: video-embed-thumbnail-generator.php:4291
1844
- msgid "Thumbnails"
1845
- msgstr "Картинки"
1846
-
1847
- # @ video-embed-thumbnail-generator
1848
- #: video-embed-thumbnail-generator.php:4293
1849
- msgid "Number of Thumbnails"
1850
- msgstr "Брой картинки"
1851
-
1852
- # @ video-embed-thumbnail-generator
1853
- #: video-embed-thumbnail-generator.php:4296
1854
- msgid "Force 1st Frame Thumbnail"
1855
- msgstr "Налагане на картинка от първия кадър"
1856
-
1857
- # @ video-embed-thumbnail-generator
1858
- #: video-embed-thumbnail-generator.php:4309
1859
- msgid "Dimensions"
1860
- msgstr "Размери"
1861
-
1862
- # @ video-embed-thumbnail-generator
1863
- #: video-embed-thumbnail-generator.php:4310
1864
- msgid "Lock to Aspect Ratio"
1865
- msgstr "Заключване на съотношението на страните"
1866
-
1867
- # @ video-embed-thumbnail-generator
1868
- #: video-embed-thumbnail-generator.php:4321
1869
- msgid "Generate Download Link Below Video"
1870
- msgstr "Генериране на линк за сваляне под видеото"
1871
-
1872
- # @ video-embed-thumbnail-generator
1873
- #: video-embed-thumbnail-generator.php:4321
1874
- msgid "Makes it easier for users to download video file"
1875
- msgstr "Улеснява свалянето на видео файлове за потребителите"
1876
-
1877
- # @ video-embed-thumbnail-generator
1878
- #: video-embed-thumbnail-generator.php:4326
1879
- msgid "Insert into Post"
1880
- msgstr "Вкарване в публикацията"
1881
-
1882
- # @ video-embed-thumbnail-generator
1883
- #: video-embed-thumbnail-generator.php:4380
1884
- msgctxt "example video"
1885
- msgid "Sample Video"
1886
- msgstr "Примерно видео"
1887
-
1888
- # @ video-embed-thumbnail-generator
1889
- #: video-embed-thumbnail-generator.php:4381
1890
- msgid "Sample Embed Code"
1891
- msgstr "Примерен код за вграждане"
1892
-
1893
- # @ video-embed-thumbnail-generator
1894
- #: video-embed-thumbnail-generator.php:4382
1895
- msgid ""
1896
- "If text is entered in the attachment's caption field it is displayed here "
1897
- "automatically."
1898
- msgstr ""
1899
- "Ако в полето за надпис към приложения файл е въведен текст, той се показва "
1900
- "тук автоматично."
1901
-
1902
- # @ video-embed-thumbnail-generator
1903
- #: video-embed-thumbnail-generator.php:4608
1904
- #: video-embed-thumbnail-generator.php:4746
1905
- msgid "Can't open movie file."
1906
- msgstr "Видео файлът не може да бъде отворен."
1907
-
1908
- # @ video-embed-thumbnail-generator
1909
- #: video-embed-thumbnail-generator.php:4724
1910
- msgid "%1$s updated in existing queue entry in position %2$s."
1911
- msgstr "%1$s беше обновен в съществуващата опашка на позиция %2$s."
1912
-
1913
- # @ video-embed-thumbnail-generator
1914
- #: video-embed-thumbnail-generator.php:4725
1915
- msgid "Video is already queued in position %s."
1916
- msgstr "Видеото вече е в опашката на позиция %s."
1917
-
1918
- # @ video-embed-thumbnail-generator
1919
- #: video-embed-thumbnail-generator.php:4732
1920
- msgid "Starting"
1921
- msgstr "Стартиране"
1922
-
1923
- # @ video-embed-thumbnail-generator
1924
- #: video-embed-thumbnail-generator.php:4733
1925
- msgid "%1$s added to queue in position %2$s."
1926
- msgstr "%1$s беше добавен в опашката на позиция %2$s."
1927
-
1928
- # @ video-embed-thumbnail-generator
1929
- #: video-embed-thumbnail-generator.php:4737
1930
- msgid "Nothing to encode."
1931
- msgstr "Няма нищо за кодиране."
1932
-
1933
- # @ video-embed-thumbnail-generator
1934
- #: video-embed-thumbnail-generator.php:4799
1935
- msgid ""
1936
- "Error: %1$s not found. Verify that %1$s is installed at %2$s and check the "
1937
- "%3$sapplication path plugin setting"
1938
- msgstr ""
1939
- "Грешка: %1$s не бе намерен. Проверете отново дали %1$s е инсталиран във %2$s "
1940
- "и проверете настройката за път до приложението в %3$s."
1941
-
1942
- # @ video-embed-thumbnail-generator
1943
- #: video-embed-thumbnail-generator.php:4902
1944
- msgid "%s already encoded"
1945
- msgstr "%s е вече кодиран"
1946
-
1947
- # @ video-embed-thumbnail-generator
1948
- #: video-embed-thumbnail-generator.php:4906
1949
- msgid "%s missing library libx264 required for H.264 encoding"
1950
- msgstr "%s няма libx264 библиотека, която е нужда на H.264 кодиране"
1951
-
1952
- # @ video-embed-thumbnail-generator
1953
- #: video-embed-thumbnail-generator.php:4911
1954
- msgid "or"
1955
- msgstr "или"
1956
-
1957
- # @ video-embed-thumbnail-generator
1958
- #: video-embed-thumbnail-generator.php:4912
1959
- msgid ""
1960
- "and missing an AAC encoding library. Please install and enable libx264 and %s"
1961
- msgstr ""
1962
- "и липсва AAC библиотека за кодиране. Инсталирайте и включете libx264 и %s"
1963
-
1964
- # @ video-embed-thumbnail-generator
1965
- #: video-embed-thumbnail-generator.php:4916
1966
- #: video-embed-thumbnail-generator.php:4934
1967
- msgid "Missing libraries"
1968
- msgstr "Липсващи библиотеки"
1969
-
1970
- # @ video-embed-thumbnail-generator
1971
- #: video-embed-thumbnail-generator.php:4925
1972
- msgid "Encoding %s"
1973
- msgstr "Кодиране на %s"
1974
-
1975
- # @ video-embed-thumbnail-generator
1976
- #: video-embed-thumbnail-generator.php:4931
1977
- msgid "%1$s missing library %2$s required for %3$s encoding."
1978
- msgstr "%1$s липсваща библиотека %2$s, нужна за кодирането на %3$s."
1979
-
1980
- # @ video-embed-thumbnail-generator
1981
- #: video-embed-thumbnail-generator.php:4937
1982
- msgid "%s already encoded."
1983
- msgstr "%s е вече кодирано."
1984
-
1985
- # @ video-embed-thumbnail-generator
1986
- #: video-embed-thumbnail-generator.php:4950
1987
- msgid "Error: Command 'escapeshellcmd' is disabled on your server."
1988
- msgstr "Грешка: Командата 'escapeshellcmd' е изключена на сървъра Ви."
1989
-
1990
- # @ video-embed-thumbnail-generator
1991
- #: video-embed-thumbnail-generator.php:5135
1992
- #: video-embed-thumbnail-generator.php:5145
1993
- msgid "Encoding"
1994
- msgstr "Кодиране"
1995
-
1996
- # @ video-embed-thumbnail-generator
1997
- #: video-embed-thumbnail-generator.php:5138
1998
- msgid "Cancel"
1999
- msgstr "Отказ"
2000
-
2001
- # @ video-embed-thumbnail-generator
2002
- #: video-embed-thumbnail-generator.php:5141
2003
- msgid "Elapsed:"
2004
- msgstr "Изминало време:"
2005
-
2006
- # @ video-embed-thumbnail-generator
2007
- #: video-embed-thumbnail-generator.php:5141
2008
- msgid "Remaining:"
2009
- msgstr "Оставащо време:"
2010
-
2011
- # @ video-embed-thumbnail-generator
2012
- #: video-embed-thumbnail-generator.php:5141
2013
- msgctxt "Frames per second"
2014
- msgid "FPS:"
2015
- msgstr "FPS:"
2016
-
2017
- # @ video-embed-thumbnail-generator
2018
- #: video-embed-thumbnail-generator.php:5218
2019
- #: video-embed-thumbnail-generator.php:5247
2020
- msgid "Encoding Complete"
2021
- msgstr "Кодирането е завършено"
2022
-
2023
- # @ video-embed-thumbnail-generator
2024
- #: video-embed-thumbnail-generator.php:5257
2025
- msgid "Encoding was canceled."
2026
- msgstr "Кодиранет беше прекъснато."
2027
-
2028
- # @ video-embed-thumbnail-generator
2029
- #: video-embed-thumbnail-generator.php:5268
2030
- msgid "No log file"
2031
- msgstr "Няма лог файл"
2032
-
2033
- # @ video-embed-thumbnail-generator
2034
- #: video-embed-thumbnail-generator.php:5275
2035
- msgid "Error:"
2036
- msgstr "Грешка:"
2037
-
2038
- # @ video-embed-thumbnail-generator
2039
- #: video-embed-thumbnail-generator.php:5287
2040
- msgid "Waiting..."
2041
- msgstr "Изчакване..."
2042
-
2043
- # @ video-embed-thumbnail-generator
2044
- #: video-embed-thumbnail-generator.php:5450
2045
- msgid "Fixing moov atom for streaming"
2046
- msgstr "Поправяне на 'moov атоми' за стройминг"
2047
-
2048
- # @ video-embed-thumbnail-generator
2049
- #: video-embed-thumbnail-generator.php:5942
2050
- msgid "Video Embed & Thumbnail Generator Shortcode Reference"
2051
- msgstr "Video Embed & Thumbnail Generator Shortcode Reference"
2052
-
2053
- # @ video-embed-thumbnail-generator
2054
- #: video-embed-thumbnail-generator.php:5943
2055
- msgid "Use these optional attributes in the [KGVID] shortcode:"
2056
- msgstr "Използвайте тези допълнителни атрибути към [KGVID] шорткода:"
2057
-
2058
- # @ video-embed-thumbnail-generator
2059
- #: video-embed-thumbnail-generator.php:5944
2060
- msgid "video attachment ID (instead of using a URL)."
2061
- msgstr "ID на видео прикачения файл (вместо URL адрес)."
2062
-
2063
- # @ video-embed-thumbnail-generator
2064
- #: video-embed-thumbnail-generator.php:5945
2065
- msgid "number of attached videos to display if no URL or ID is given."
2066
- msgstr ""
2067
- "брой на прикачени видеа, които да се покажат, ако не е въведен URL адрес или "
2068
- "ID."
2069
-
2070
- # @ video-embed-thumbnail-generator
2071
- #: video-embed-thumbnail-generator.php:5946
2072
- msgid "criteria for sorting attached videos if no URL or ID is given."
2073
- msgstr ""
2074
- "критерии за подреждане на прикачените видеа, ако не е въведен URL адрес или "
2075
- "ID."
2076
-
2077
- # @ video-embed-thumbnail-generator
2078
- #: video-embed-thumbnail-generator.php:5947
2079
- msgid "sort order."
2080
- msgstr "начин на подреждане."
2081
-
2082
- # @ video-embed-thumbnail-generator
2083
- #: video-embed-thumbnail-generator.php:5948
2084
- msgid "sets the thumbnail."
2085
- msgstr "задава картинката."
2086
-
2087
- # @ video-embed-thumbnail-generator
2088
- #: video-embed-thumbnail-generator.php:5949
2089
- msgid "sets the image shown when the video ends."
2090
- msgstr "задава изображението, показващо се след края на видеото."
2091
-
2092
- # @ video-embed-thumbnail-generator
2093
- #: video-embed-thumbnail-generator.php:5953
2094
- msgid "allow other content on the same line as the video"
2095
- msgstr "разрешаване на друго съдържание(напр. текст) на същия ред с видеото"
2096
-
2097
- # @ video-embed-thumbnail-generator
2098
- #: video-embed-thumbnail-generator.php:5954
2099
- msgid "pre-sets the volume for unusually loud videos. Value between 0 and 1."
2100
- msgstr ""
2101
- "предефинира силата на звука за необичайно шумни клипове. Стойността е между "
2102
- "0 и 1."
2103
-
2104
- # @ video-embed-thumbnail-generator
2105
- #: video-embed-thumbnail-generator.php:5955
2106
- msgid ""
2107
- "sets the controlbar position. \"Floating\" option only works with Strobe "
2108
- "Media Playback."
2109
- msgstr ""
2110
- "задава позицията на контролната лента. \"Плаващо\" работи само в 'Strobe' "
2111
- "медия плеърът."
2112
-
2113
- # @ video-embed-thumbnail-generator
2114
- #: video-embed-thumbnail-generator.php:5958
2115
- #: video-embed-thumbnail-generator.php:5959
2116
- msgid "or %s to disable."
2117
- msgstr "или %s за изключване."
2118
-
2119
- # @ video-embed-thumbnail-generator
2120
- #: video-embed-thumbnail-generator.php:5960
2121
- msgid ""
2122
- "changes text displayed in the embed code overlay in order to provide a "
2123
- "custom method for embedding a video or %s to disable."
2124
- msgstr ""
2125
- "променя текста в полето за код за вграждане, давайки възможност за "
2126
- "персонализиран метод за вграждане на видеа или %s за изключване."
2127
-
2128
- # @ video-embed-thumbnail-generator
2129
- #: video-embed-thumbnail-generator.php:5961
2130
- msgid "turns the view count on or off."
2131
- msgstr "Включва/Изключва показването на брояча на гледания."
2132
-
2133
- # @ video-embed-thumbnail-generator
2134
- #: video-embed-thumbnail-generator.php:5962
2135
- msgid ""
2136
- "text that is displayed below the video (not subtitles or closed captioning)"
2137
- msgstr "текст, показващ се под видеото (не субтитри/надписи)."
2138
-
2139
- # @ video-embed-thumbnail-generator
2140
- #: video-embed-thumbnail-generator.php:5963
2141
- msgid "Used for metadata only."
2142
- msgstr "Използва се единствено за метаданни."
2143
-
2144
- # @ video-embed-thumbnail-generator
2145
- #: video-embed-thumbnail-generator.php:5964
2146
- msgid ""
2147
- "generates a link below the video to make it easier for users to save the "
2148
- "video file to their computers."
2149
- msgstr ""
2150
- "генерира връзка под видето, улесняваща свалянето на клипове от потребителите."
2151
-
2152
- # @ video-embed-thumbnail-generator
2153
- #: video-embed-thumbnail-generator.php:5965
2154
- msgid "allow or disable right-clicking on the video player."
2155
- msgstr "позволяване или забраняване на кликане с десен бутон върху видеото."
2156
-
2157
- # @ video-embed-thumbnail-generator
2158
- #: video-embed-thumbnail-generator.php:5966
2159
- msgid "allow or disable responsive resizing."
2160
- msgstr "позволяване или забраняване на адаптивно променяне на размера."
2161
-
2162
- # @ video-embed-thumbnail-generator
2163
- #: video-embed-thumbnail-generator.php:5968
2164
- msgid "These options will add a subtitle/caption track."
2165
- msgstr "Тези настройки ще добавят субтитри/надписи."
2166
-
2167
- # @ video-embed-thumbnail-generator
2168
- #: video-embed-thumbnail-generator.php:5969
2169
- msgid "URL of the WebVTT file."
2170
- msgstr "URL адрес на WebVTT файла."
2171
-
2172
- # @ video-embed-thumbnail-generator
2173
- #: video-embed-thumbnail-generator.php:5971
2174
- msgid "the track's two-character language code (en, fr, es, etc)"
2175
- msgstr "езиковият код на пътечката(два символа, пр. en, fr, es и тн.)"
2176
-
2177
- # @ video-embed-thumbnail-generator
2178
- #: video-embed-thumbnail-generator.php:5972
2179
- msgid "text that will be shown to the user when selecting the track."
2180
- msgstr "текстът, който ще се показва на потребителите, когато избират пътечка."
2181
-
2182
- # @ video-embed-thumbnail-generator
2183
- #: video-embed-thumbnail-generator.php:5974
2184
- msgid "These options will only affect Video.js playback"
2185
- msgstr "Тези настройки се отнасят само за възпроизвеждане чрез Video.js"
2186
-
2187
- # @ video-embed-thumbnail-generator
2188
- #: video-embed-thumbnail-generator.php:5975
2189
- #: video-embed-thumbnail-generator.php:5984
2190
- msgid "Completely change the look of the video player. %sInstructions here."
2191
- msgstr "Променете напълно вида на видео плеърът. %sИнструкции."
2192
-
2193
- # @ video-embed-thumbnail-generator
2194
- #: video-embed-thumbnail-generator.php:5977
2195
- msgid ""
2196
- "These options will only affect Flash playback in Strobe Media Playback video "
2197
- "elements. They will have no effect on other players."
2198
- msgstr ""
2199
- "Тези настройки се отнасят само за изпълняване на Flash съдържание във Strobe "
2200
- "Media playback видео плеър. Няма да има ефект върху други плеъри."
2201
-
2202
- # @ video-embed-thumbnail-generator
2203
- #: video-embed-thumbnail-generator.php:5978
2204
- msgid "specify whether to autohide the control bar after a few seconds."
2205
- msgstr ""
2206
- "изберете дали контролната лента да се скрива автоматично след няколко "
2207
- "секунди."
2208
-
2209
- # @ video-embed-thumbnail-generator
2210
- #: video-embed-thumbnail-generator.php:5979
2211
- msgid "turns the big play button overlay in the middle of the video on or off."
2212
- msgstr "Включва/изключва големият бутон за пускане в средата на видеото."
2213
-
2214
- # @ video-embed-thumbnail-generator
2215
- #: video-embed-thumbnail-generator.php:5980
2216
- msgid "I honestly don't know what this is for."
2217
- msgstr "Честно казано, нямам идея за какво е това."
2218
-
2219
- # @ video-embed-thumbnail-generator
2220
- #: video-embed-thumbnail-generator.php:5981
2221
- msgid ""
2222
- "If the video display size isn't the same as the video file, this determines "
2223
- "how the video will be scaled."
2224
- msgstr ""
2225
- "Как да бъде преоразмерено видеото, ако размера на плеъра не е същия като "
2226
- "размера на оригиналния видео файл."
2227
-
2228
- # @ video-embed-thumbnail-generator
2229
- #: video-embed-thumbnail-generator.php:5982
2230
- msgid "#rrggbb"
2231
- msgstr "#RRGGBB"
2232
-
2233
- # @ video-embed-thumbnail-generator
2234
- #: video-embed-thumbnail-generator.php:5982
2235
- msgid "set the background color to whatever hex code you want."
2236
- msgstr "сменете цвета на фона"
2237
-
2238
- # @ video-embed-thumbnail-generator
2239
- #: video-embed-thumbnail-generator.php:5983
2240
- msgid "Lets you specify all these flashvars in an XML file."
2241
- msgstr "Позволява Ви да зададете всички тези променливи в XML файл."
2242
-
2243
- # @ video-embed-thumbnail-generator
2244
- #: video-embed-thumbnail-generator.php:5986
2245
- msgid ""
2246
- "These options are available for video galleries (options work the same as "
2247
- "standard WordPress image galleries)"
2248
- msgstr ""
2249
- "Тези настройки са налични за видео галериите (работят по същия начин както "
2250
- "обикновените WordPress галерии)"
2251
-
2252
- # @ video-embed-thumbnail-generator
2253
- #: video-embed-thumbnail-generator.php:5987
2254
- msgid "turns on the gallery"
2255
- msgstr "включва галерията"
2256
-
2257
- # @ video-embed-thumbnail-generator
2258
- #: video-embed-thumbnail-generator.php:5988
2259
- msgid "width in pixels to display gallery thumbnails"
2260
- msgstr "ширина в пиксели на картинките в галериите"
2261
-
2262
- # @ video-embed-thumbnail-generator
2263
- #: video-embed-thumbnail-generator.php:5989
2264
- msgid ""
2265
- "comma separated video attachment IDs. Excludes the videos from the gallery."
2266
- msgstr ""
2267
- "ID-та на видео файлове, разделени със запетая. Изключва зададените видеа от "
2268
- "галерията."
2269
-
2270
- # @ video-embed-thumbnail-generator
2271
- #: video-embed-thumbnail-generator.php:5990
2272
- msgid ""
2273
- "comma separated video attachment IDs. Includes only these videos in the "
2274
- "gallery. Please note that include and exclude cannot be used together."
2275
- msgstr ""
2276
- "ID-та на видео файлове, разделени със запетая. Включва само избраните видеа "
2277
- "в галерията. Имайте предвид че 'включване' и 'изключване' не могат да бъдат "
2278
- "използвани заедно."
2279
-
2280
- # @ video-embed-thumbnail-generator
2281
- #: video-embed-thumbnail-generator.php:5991
2282
- msgid "criteria for sorting the gallery"
2283
- msgstr "критерий за сортиране на галерията"
2284
-
2285
- # @ video-embed-thumbnail-generator
2286
- #: video-embed-thumbnail-generator.php:5992
2287
- msgid "sort order"
2288
- msgstr "начин на подреждане"
2289
-
2290
- # @ video-embed-thumbnail-generator
2291
- #: video-embed-thumbnail-generator.php:5993
2292
- msgid ""
2293
- "post ID to display a gallery made up of videos associated with a different "
2294
- "post."
2295
- msgstr ""
2296
- "ID на публикация, която да съдържа галерия, изградена от видеа, асоцирани с "
2297
- "различна публикация. "
2298
-
2299
- # @ video-embed-thumbnail-generator
2300
- #: video-embed-thumbnail-generator.php:5994
2301
- msgid ""
2302
- "either close the pop-up or start playing the next video when the current "
2303
- "video finishes playing."
2304
- msgstr ""
2305
- "Затворете изскачащия прозорец или изпълнете следващото видео след като "
2306
- "възпроизвеждането завърши."
2307
-
2308
- #. Plugin URI of the plugin/theme
2309
- msgid ""
2310
- "http://www.kylegilman.net/2011/01/18/video-embed-thumbnail-generator-"
2311
- "wordpress-plugin/"
2312
- msgstr ""
2313
- "http://www.kylegilman.net/2011/01/18/video-embed-thumbnail-generator-"
2314
- "wordpress-plugin/"
2315
-
2316
- #. Description of the plugin/theme
2317
- msgid ""
2318
- "Generates thumbnails, HTML5-compliant videos, and embed codes for locally "
2319
- "hosted videos. Requires FFMPEG or LIBAV for encoding."
2320
- msgstr ""
2321
- "Генерира картинки, HTML5-съвместими видеа и кодове за вграждане за локални "
2322
- "клипове. Нуждае се от FFMPEG или LIBAV за кодиране."
2323
-
2324
- #. Author of the plugin/theme
2325
- msgid "Kyle Gilman"
2326
- msgstr "Kyle Gilman"
2327
-
2328
- #. Author URI of the plugin/theme
2329
- msgid "http://www.kylegilman.net/"
2330
- msgstr "http://www.kylegilman.net/"
2331
-
2332
- # @ Settings page title in admin sidebar
2333
- #~ msgctxt "Settings page title in admin sidebar"
2334
- #~ msgid "Video Embed & Thumbnail Generator"
2335
- #~ msgstr "Video Embed & Thumbnail Generator"
2336
-
2337
- #~ msgid "Super Admins only:"
2338
- #~ msgstr "Само за супер администратори:"
2339
-
2340
- # @ video-embed-thumbnail-generator
2341
- #~ msgctxt "FFMPEG settings tab"
2342
- #~ msgid "%s settings tab."
2343
- #~ msgstr "Раздел с настройки за %s."
2344
-
2345
- # @ video-embed-thumbnail-generator
2346
- #~ msgid "Match plugin settings"
2347
- #~ msgstr "Копирай настройките на разширението"
2348
-
2349
- # @ video-embed-thumbnail-generator
2350
- #~ msgid "WordPress default"
2351
- #~ msgstr "По подразбиране на WordPress"
2352
-
2353
- # @ video-embed-thumbnail-generator
2354
- #~ msgid "Error message:"
2355
- #~ msgstr "Съобщение за грешка:"
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Video Embed & Thumbnail Generator v4.3.1\n"
4
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/video-embed-thumbnail-"
5
+ "generator\n"
6
+ "POT-Creation-Date: 2014-04-26 18:19:46+00:00\n"
7
+ "PO-Revision-Date: 2014-10-31 21:29+0200\n"
8
+ "Last-Translator: Emil Georgiev <svinqvmraka@gmail.com>\n"
9
+ "Language-Team: \n"
10
+ "Language: bg_BG\n"
11
+ "MIME-Version: 1.0\n"
12
+ "Content-Type: text/plain; charset=UTF-8\n"
13
+ "Content-Transfer-Encoding: 8bit\n"
14
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
15
+ "X-Generator: Poedit 1.6.9\n"
16
+ "X-Poedit-SourceCharset: utf-8\n"
17
+ "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
18
+ "_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
19
+ "X-Textdomain-Support: yes\n"
20
+ "X-Poedit-SearchPath-0: .\n"
21
+
22
+ # @ video-embed-thumbnail-generator
23
+ #: video-embed-thumbnail-generator.php:205
24
+ msgid "Replace original with H.264"
25
+ msgstr "Заместете оригинала с H.264"
26
+
27
+ # @ video-embed-thumbnail-generator
28
+ #: video-embed-thumbnail-generator.php:351
29
+ msgid "Settings"
30
+ msgstr "Настройки"
31
+
32
+ # @ video-embed-thumbnail-generator
33
+ #: video-embed-thumbnail-generator.php:359
34
+ msgid "Network Settings"
35
+ msgstr "Настройки на мрежата"
36
+
37
+ # @ video-embed-thumbnail-generator
38
+ #: video-embed-thumbnail-generator.php:1125
39
+ msgctxt "please wait"
40
+ msgid "Wait"
41
+ msgstr "Момент"
42
+
43
+ # @ video-embed-thumbnail-generator
44
+ #: video-embed-thumbnail-generator.php:1126
45
+ msgid "Hide video..."
46
+ msgstr "Скрийте видеото..."
47
+
48
+ # @ video-embed-thumbnail-generator
49
+ #: video-embed-thumbnail-generator.php:1127
50
+ msgid "Choose from video..."
51
+ msgstr "Изберете от видеото..."
52
+
53
+ # @ video-embed-thumbnail-generator
54
+ #: video-embed-thumbnail-generator.php:1128
55
+ msgid "Can't load video"
56
+ msgstr "Видеото не може да се зареди"
57
+
58
+ # @ video-embed-thumbnail-generator
59
+ #: video-embed-thumbnail-generator.php:1129
60
+ msgid "Choose Thumbnail:"
61
+ msgstr "Изберете картинка:"
62
+
63
+ # @ video-embed-thumbnail-generator
64
+ #: video-embed-thumbnail-generator.php:1130
65
+ msgid "Save All Thumbnails"
66
+ msgstr "Запазете всички картинки"
67
+
68
+ # @ video-embed-thumbnail-generator
69
+ #: video-embed-thumbnail-generator.php:1131
70
+ msgid "Saving..."
71
+ msgstr "Запазване..."
72
+
73
+ # @ video-embed-thumbnail-generator
74
+ #: video-embed-thumbnail-generator.php:1132
75
+ msgid "Loading..."
76
+ msgstr "Зареждане..."
77
+
78
+ # @ video-embed-thumbnail-generator
79
+ #: video-embed-thumbnail-generator.php:1133
80
+ #: video-embed-thumbnail-generator.php:4294
81
+ msgid "Generate"
82
+ msgstr "Генериране"
83
+
84
+ # @ video-embed-thumbnail-generator
85
+ #: video-embed-thumbnail-generator.php:1134
86
+ #: video-embed-thumbnail-generator.php:4295
87
+ msgid "Randomize"
88
+ msgstr "Разбъркване"
89
+
90
+ # @ video-embed-thumbnail-generator
91
+ #: video-embed-thumbnail-generator.php:1135
92
+ msgid "%s not found"
93
+ msgstr "%s не е намерено"
94
+
95
+ # @ video-embed-thumbnail-generator
96
+ #: video-embed-thumbnail-generator.php:1136
97
+ msgid ""
98
+ "Please enter a URL that points to a valid video file. Video sharing sites "
99
+ "are not supported by this plugin.\n"
100
+ "To embed from YouTube, Vimeo, etc, just paste the link directly into the "
101
+ "post window and WordPress will handle the rest."
102
+ msgstr ""
103
+ "Въведете URL адрес, водещ към валиден видео файл. Сайтове за видеосподеляне "
104
+ "не се поддържат.\n"
105
+ "За да вградите видео от YouTube, Vimeo и тн., поставете връзката директно в "
106
+ "публикацията и WordPress ще се погрижи за останалото."
107
+
108
+ # @ video-embed-thumbnail-generator
109
+ #: video-embed-thumbnail-generator.php:1137
110
+ #: video-embed-thumbnail-generator.php:1849
111
+ #: video-embed-thumbnail-generator.php:4294
112
+ #: video-embed-thumbnail-generator.php:4295
113
+ #: video-embed-thumbnail-generator.php:4326
114
+ msgid "Please enter a valid video URL"
115
+ msgstr "Въведете валиден адрес на видео"
116
+
117
+ # @ video-embed-thumbnail-generator
118
+ #: video-embed-thumbnail-generator.php:1138
119
+ msgid ""
120
+ "You are about to permanently delete the encoded video.\n"
121
+ " 'Cancel' to stop, 'OK' to delete."
122
+ msgstr ""
123
+ "Това действие ще изтрие перманентно кодираното видео.\n"
124
+ "'Отказ' за прекратяване, 'ОК' за изтриване."
125
+
126
+ # @ video-embed-thumbnail-generator
127
+ #: video-embed-thumbnail-generator.php:1139
128
+ msgid "Saved."
129
+ msgstr "Записано."
130
+
131
+ # @ video-embed-thumbnail-generator
132
+ #: video-embed-thumbnail-generator.php:1140
133
+ msgid "Running test..."
134
+ msgstr "Тестване..."
135
+
136
+ # @ video-embed-thumbnail-generator
137
+ #: video-embed-thumbnail-generator.php:1141
138
+ msgid "FFMPEG or LIBAV required for these functions."
139
+ msgstr "FFMPEG или LIBAV са необходими за тези функции."
140
+
141
+ # @ video-embed-thumbnail-generator
142
+ #: video-embed-thumbnail-generator.php:1142
143
+ msgid ""
144
+ "You are about to set all existing video thumbnails previously generated by "
145
+ "this plugin as the featured images for their posts. There is no 'undo' "
146
+ "button, so proceed at your own risk."
147
+ msgstr ""
148
+ "Това действие ще зададе всички съществуващи видео-картинки, генерирани "
149
+ "досега, като картинки на публикациите, в които се намират. Няма бутон за "
150
+ "връщане, затова продължавате на собствен риск."
151
+
152
+ # @ video-embed-thumbnail-generator
153
+ #: video-embed-thumbnail-generator.php:1143
154
+ msgid "'Cancel' to stop, 'OK' to proceed."
155
+ msgstr "'Отказ' за прекратяване, 'ОК' за продължаване."
156
+
157
+ # @ video-embed-thumbnail-generator
158
+ #: video-embed-thumbnail-generator.php:1144
159
+ msgid "Processing..."
160
+ msgstr "Обработване..."
161
+
162
+ # @ video-embed-thumbnail-generator
163
+ #: video-embed-thumbnail-generator.php:1145
164
+ msgid ""
165
+ "You are about to set all existing video thumbnails previously generated by "
166
+ "this plugin as attachments of their posts rather than their associated "
167
+ "videos. Proceed at your own risk."
168
+ msgstr ""
169
+ "Това действие ще зададе всички съществуващи видео-картинки, генерирани от "
170
+ "това разширение, като приложения на публикациите им, вместо директно на "
171
+ "видеата. Продължете на собствен риск."
172
+
173
+ # @ video-embed-thumbnail-generator
174
+ #: video-embed-thumbnail-generator.php:1146
175
+ msgid ""
176
+ "You are about to set all existing video thumbnails previously generated by "
177
+ "this plugin as attachments of their videos rather than their associated "
178
+ "posts. Proceed at your own risk."
179
+ msgstr ""
180
+ "Това действие ще зададе всички съществуващи видео-картинки, генерирани от "
181
+ "това разширение, като приложения към видеата, вместо към публикациите им. "
182
+ "Продължете на собствен риск."
183
+
184
+ # @ video-embed-thumbnail-generator
185
+ #: video-embed-thumbnail-generator.php:1147
186
+ msgid "Complete"
187
+ msgstr "Готово"
188
+
189
+ # @ video-embed-thumbnail-generator
190
+ #: video-embed-thumbnail-generator.php:1148
191
+ #: video-embed-thumbnail-generator.php:3733
192
+ msgid "Track type:"
193
+ msgstr "Тип на пътечката:"
194
+
195
+ # @ video-embed-thumbnail-generator
196
+ #: video-embed-thumbnail-generator.php:1149
197
+ #: video-embed-thumbnail-generator.php:3724
198
+ msgid "subtitles"
199
+ msgstr "субтитри"
200
+
201
+ # @ video-embed-thumbnail-generator
202
+ #: video-embed-thumbnail-generator.php:1150
203
+ #: video-embed-thumbnail-generator.php:3724
204
+ msgid "captions"
205
+ msgstr "надписи"
206
+
207
+ # @ video-embed-thumbnail-generator
208
+ #: video-embed-thumbnail-generator.php:1151
209
+ #: video-embed-thumbnail-generator.php:3724
210
+ msgid "chapters"
211
+ msgstr "части"
212
+
213
+ # @ video-embed-thumbnail-generator
214
+ #: video-embed-thumbnail-generator.php:1152
215
+ #: video-embed-thumbnail-generator.php:3734
216
+ msgid "Choose a Text File"
217
+ msgstr "Изберете текстов файл"
218
+
219
+ # @ video-embed-thumbnail-generator
220
+ #: video-embed-thumbnail-generator.php:1153
221
+ #: video-embed-thumbnail-generator.php:3734
222
+ msgid "Set as track source"
223
+ msgstr "Задайте като източник на пътечката"
224
+
225
+ # @ video-embed-thumbnail-generator
226
+ #: video-embed-thumbnail-generator.php:1154
227
+ #: video-embed-thumbnail-generator.php:2528
228
+ #: video-embed-thumbnail-generator.php:2534
229
+ #: video-embed-thumbnail-generator.php:2540
230
+ #: video-embed-thumbnail-generator.php:2868
231
+ #: video-embed-thumbnail-generator.php:3689
232
+ #: video-embed-thumbnail-generator.php:3734
233
+ msgid "Choose from Library"
234
+ msgstr "Изберете от библиотеката"
235
+
236
+ # @ video-embed-thumbnail-generator
237
+ #: video-embed-thumbnail-generator.php:1155
238
+ msgid "Language code:"
239
+ msgstr "Езиков код:"
240
+
241
+ # @ video-embed-thumbnail-generator
242
+ #: video-embed-thumbnail-generator.php:1156
243
+ msgctxt "noun"
244
+ msgid "Label:"
245
+ msgstr "Етикет:"
246
+
247
+ # @ video-embed-thumbnail-generator
248
+ #: video-embed-thumbnail-generator.php:1187
249
+ msgctxt "noun for Google Analytics event"
250
+ msgid "Play Start"
251
+ msgstr "Стартиране на възпроизвеждане"
252
+
253
+ # @ video-embed-thumbnail-generator
254
+ #: video-embed-thumbnail-generator.php:1188
255
+ msgctxt "noun for Google Analytics event"
256
+ msgid "Complete View"
257
+ msgstr "Пълно гледане"
258
+
259
+ # @ video-embed-thumbnail-generator
260
+ #: video-embed-thumbnail-generator.php:1189
261
+ msgctxt "button text to play next video"
262
+ msgid "Next"
263
+ msgstr "Следващо"
264
+
265
+ # @ video-embed-thumbnail-generator
266
+ #: video-embed-thumbnail-generator.php:1190
267
+ msgctxt "button text to play previous video"
268
+ msgid "Previous"
269
+ msgstr "Предишно"
270
+
271
+ #: video-embed-thumbnail-generator.php:1616
272
+ msgid "%s view"
273
+ msgid_plural "%s views"
274
+ msgstr[0] "%s гледане"
275
+ msgstr[1] "%s гледания"
276
+
277
+ # @ video-embed-thumbnail-generator
278
+ #: video-embed-thumbnail-generator.php:1621
279
+ msgid "Right-click or ctrl-click on this link to download"
280
+ msgstr ""
281
+ "Натиснете десен бутон или CTRL–ляв бутон, върху тази връзка, за сваляне."
282
+
283
+ # @ video-embed-thumbnail-generator
284
+ #: video-embed-thumbnail-generator.php:1637
285
+ msgctxt "precedes code for embedding video"
286
+ msgid "Embed:"
287
+ msgstr "Вграждане:"
288
+
289
+ # @ video-embed-thumbnail-generator
290
+ #: video-embed-thumbnail-generator.php:1854
291
+ msgctxt "ex: FFMPEG not found at /usr/local/bin"
292
+ msgid "%1$s not found at %2$s"
293
+ msgstr "%1$s не е намерен във %2$s"
294
+
295
+ # @ video-embed-thumbnail-generator
296
+ #: video-embed-thumbnail-generator.php:1917
297
+ msgid "Delete Permanently"
298
+ msgstr "Перманентно изтриване"
299
+
300
+ # @ video-embed-thumbnail-generator
301
+ #: video-embed-thumbnail-generator.php:1929
302
+ msgid "Currently encoding"
303
+ msgstr "Кодира се"
304
+
305
+ # @ video-embed-thumbnail-generator
306
+ #: video-embed-thumbnail-generator.php:1936
307
+ msgid "Format already exists"
308
+ msgstr "Форматът вече съществува"
309
+
310
+ # @ video-embed-thumbnail-generator
311
+ #: video-embed-thumbnail-generator.php:1943
312
+ msgid "You don't have permission to encode videos"
313
+ msgstr "Нямате разрешение да кодирате видеа"
314
+
315
+ # @ video-embed-thumbnail-generator
316
+ #: video-embed-thumbnail-generator.php:1951
317
+ msgid "Nothing to encode"
318
+ msgstr "Няма нищо за кодиране"
319
+
320
+ # @ video-embed-thumbnail-generator
321
+ #: video-embed-thumbnail-generator.php:1955
322
+ msgctxt "Button text"
323
+ msgid "Update"
324
+ msgstr "Обновяване"
325
+
326
+ # @ video-embed-thumbnail-generator
327
+ #: video-embed-thumbnail-generator.php:1958
328
+ msgctxt "Button text"
329
+ msgid "Encode"
330
+ msgstr "Кодиране"
331
+
332
+ # @ video-embed-thumbnail-generator
333
+ #: video-embed-thumbnail-generator.php:1964
334
+ msgid ""
335
+ "Generates additional video formats compatible with most mobile & HTML5-"
336
+ "compatible browsers"
337
+ msgstr ""
338
+ "Генерира допълнителни видео формати, съвместими с повечето мобилни и html5-"
339
+ "поддържащи браузъри"
340
+
341
+ # @ video-embed-thumbnail-generator
342
+ #: video-embed-thumbnail-generator.php:1989
343
+ msgctxt "noun, column header"
344
+ msgid "Order"
345
+ msgstr "Подреждане"
346
+
347
+ # @ video-embed-thumbnail-generator
348
+ #: video-embed-thumbnail-generator.php:1990
349
+ msgctxt "username, column header"
350
+ msgid "User"
351
+ msgstr "Потребител"
352
+
353
+ # @ video-embed-thumbnail-generator
354
+ #: video-embed-thumbnail-generator.php:1991
355
+ msgctxt "noun, column header"
356
+ msgid "Thumbnail"
357
+ msgstr "Картинка"
358
+
359
+ # @ video-embed-thumbnail-generator
360
+ #: video-embed-thumbnail-generator.php:1992
361
+ msgctxt "noun, column header"
362
+ msgid "File"
363
+ msgstr "Файл"
364
+
365
+ # @ video-embed-thumbnail-generator
366
+ #: video-embed-thumbnail-generator.php:1993
367
+ msgctxt "noun, column header"
368
+ msgid "Formats"
369
+ msgstr "Формати"
370
+
371
+ # @ video-embed-thumbnail-generator
372
+ #: video-embed-thumbnail-generator.php:1994
373
+ msgctxt "noun, column header"
374
+ msgid "Actions"
375
+ msgstr "Действия"
376
+
377
+ # @ video-embed-thumbnail-generator
378
+ #: video-embed-thumbnail-generator.php:1998
379
+ msgctxt "multisite site name, column header"
380
+ msgid "Site"
381
+ msgstr "Сайт"
382
+
383
+ # @ video-embed-thumbnail-generator
384
+ #: video-embed-thumbnail-generator.php:2114
385
+ msgid "Other user's video"
386
+ msgstr "Видео на друг потребител"
387
+
388
+ # @ video-embed-thumbnail-generator
389
+ #: video-embed-thumbnail-generator.php:2118
390
+ msgid "Queue is empty"
391
+ msgstr "Опашката е празна"
392
+
393
+ # @ video-embed-thumbnail-generator
394
+ #: video-embed-thumbnail-generator.php:2127
395
+ #: video-embed-thumbnail-generator.php:2134
396
+ msgctxt "Tools page title"
397
+ msgid "Video Embed & Thumbnail Generator Encoding Queue"
398
+ msgstr "Video Embed & Thumbnail Generator Опашка за кодиране"
399
+
400
+ # @ video-embed-thumbnail-generator
401
+ #: video-embed-thumbnail-generator.php:2127
402
+ msgctxt "Title in admin sidebar"
403
+ msgid "Video Encode Queue"
404
+ msgstr "Опашка за кодиране на видео"
405
+
406
+ # @ video-embed-thumbnail-generator
407
+ #: video-embed-thumbnail-generator.php:2134
408
+ msgctxt "Title in network admin sidebar"
409
+ msgid "Network Video Encode Queue"
410
+ msgstr "Опашка за кодиране на видео в мрежата"
411
+
412
+ # @ video-embed-thumbnail-generator
413
+ #: video-embed-thumbnail-generator.php:2144
414
+ msgid "Video Embed & Thumbnail Generator Encoding Queue"
415
+ msgstr "Video Embed & Thumbnail Generator опашка за кодиране"
416
+
417
+ # @ video-embed-thumbnail-generator
418
+ #: video-embed-thumbnail-generator.php:2161
419
+ msgid "Clear All Completed"
420
+ msgstr "Изчистване на всички готови"
421
+
422
+ # @ video-embed-thumbnail-generator
423
+ #: video-embed-thumbnail-generator.php:2169
424
+ #: video-embed-thumbnail-generator.php:2283
425
+ msgctxt "Settings page title"
426
+ msgid "Video Embed & Thumbnail Generator"
427
+ msgstr "Video Embed & Thumbnail Generator"
428
+
429
+ # @ Settings page title in admin sidebar
430
+ #. Plugin Name of the plugin/theme
431
+ #: video-embed-thumbnail-generator.php:2169
432
+ #: video-embed-thumbnail-generator.php:2283
433
+ msgid "Video Embed & Thumbnail Generator"
434
+ msgstr "Video Embed & Thumbnail Generator"
435
+
436
+ # @ video-embed-thumbnail-generator
437
+ #: video-embed-thumbnail-generator.php:2205
438
+ msgid ""
439
+ "Video Embed & Thumbnail Generator network settings reset to default values."
440
+ msgstr ""
441
+ "Мрежовите настройки на Video Embed & Thumbnail Generator бяха възстановени "
442
+ "по подразбиране."
443
+
444
+ # @ video-embed-thumbnail-generator
445
+ #: video-embed-thumbnail-generator.php:2227
446
+ msgid "Path to applications on the server:"
447
+ msgstr "Път до приложенията на сървъра:"
448
+
449
+ # @ video-embed-thumbnail-generator
450
+ #: video-embed-thumbnail-generator.php:2230
451
+ #: video-embed-thumbnail-generator.php:2438
452
+ msgid "Application for thumbnails & encoding:"
453
+ msgstr "Приложения за картинки и кодиране:"
454
+
455
+ # @ video-embed-thumbnail-generator
456
+ #: video-embed-thumbnail-generator.php:2234
457
+ #: video-embed-thumbnail-generator.php:2447
458
+ msgid "Method to fix encoded H.264 headers for streaming:"
459
+ msgstr "Метод за поправяне на H.264 хедъри за стрийминг:"
460
+
461
+ # @ video-embed-thumbnail-generator
462
+ #: video-embed-thumbnail-generator.php:2238
463
+ #: video-embed-thumbnail-generator.php:2456
464
+ msgid "FFMPEG legacy options:"
465
+ msgstr "FFMPEG наследени опции:"
466
+
467
+ # @ video-embed-thumbnail-generator
468
+ #: video-embed-thumbnail-generator.php:2242
469
+ msgid "Execution:"
470
+ msgstr "Изпълнение:"
471
+
472
+ # @ video-embed-thumbnail-generator
473
+ #: video-embed-thumbnail-generator.php:2246
474
+ msgid "User capabilties for new sites:"
475
+ msgstr "Потребителски привилегии за нови сайтове:"
476
+
477
+ # @ video-embed-thumbnail-generator
478
+ #: video-embed-thumbnail-generator.php:2252
479
+ #: video-embed-thumbnail-generator.php:2309
480
+ msgid "Save Changes"
481
+ msgstr "Запазване на промените"
482
+
483
+ # @ video-embed-thumbnail-generator
484
+ #: video-embed-thumbnail-generator.php:2253
485
+ #: video-embed-thumbnail-generator.php:2310
486
+ msgid "Reset Options"
487
+ msgstr "Възстановяване на настройките по подразбиране"
488
+
489
+ # @ video-embed-thumbnail-generator
490
+ #: video-embed-thumbnail-generator.php:2257
491
+ #: video-embed-thumbnail-generator.php:2314
492
+ msgid ""
493
+ "If you're getting some use out of this plugin, please consider donating a "
494
+ "few dollars to support its future development."
495
+ msgstr ""
496
+ "Ако разширението ви върши работа, помислете за дарение, за продължаване на "
497
+ "разработката му."
498
+
499
+ # @ video-embed-thumbnail-generator
500
+ #: video-embed-thumbnail-generator.php:2300
501
+ msgctxt "Adjective, tab title"
502
+ msgid "General"
503
+ msgstr "Общи"
504
+
505
+ # @ video-embed-thumbnail-generator
506
+ #: video-embed-thumbnail-generator.php:2301
507
+ msgctxt "FFMPEG Settings, tab title"
508
+ msgid "%s Settings"
509
+ msgstr "%s настройки"
510
+
511
+ # @ video-embed-thumbnail-generator
512
+ #: video-embed-thumbnail-generator.php:2399
513
+ msgid "Default Video Playback Settings"
514
+ msgstr "Настойки за изпълняване на видео по подразбиране"
515
+
516
+ # @ video-embed-thumbnail-generator
517
+ #: video-embed-thumbnail-generator.php:2400
518
+ msgid "The following options will only affect Flash playback"
519
+ msgstr "Настройките по-долу се отнасят само за Flash"
520
+
521
+ # @ video-embed-thumbnail-generator
522
+ #: video-embed-thumbnail-generator.php:2401
523
+ msgid "Plugin Settings"
524
+ msgstr "Настройки на разширението"
525
+
526
+ # @ video-embed-thumbnail-generator
527
+ #: video-embed-thumbnail-generator.php:2402
528
+ msgid "Video Encoding Settings"
529
+ msgstr "Настройки за кодирането на видео"
530
+
531
+ # @ video-embed-thumbnail-generator
532
+ #: video-embed-thumbnail-generator.php:2404
533
+ msgid "Default thumbnail:"
534
+ msgstr "Картинка по подразбиране:"
535
+
536
+ # @ video-embed-thumbnail-generator
537
+ #: video-embed-thumbnail-generator.php:2405
538
+ msgid "End of video image:"
539
+ msgstr "Картинка в края на видеото:"
540
+
541
+ # @ video-embed-thumbnail-generator
542
+ #: video-embed-thumbnail-generator.php:2406
543
+ msgid "Watermark overlay:"
544
+ msgstr "Воден знак:"
545
+
546
+ # @ video-embed-thumbnail-generator
547
+ #: video-embed-thumbnail-generator.php:2407
548
+ msgid "Video alignment:"
549
+ msgstr "Подравняване на видеото:"
550
+
551
+ # @ video-embed-thumbnail-generator
552
+ #: video-embed-thumbnail-generator.php:2408
553
+ msgid "Automatically resize videos:"
554
+ msgstr "Автоматично преоразмеряване на видеата:"
555
+
556
+ # @ video-embed-thumbnail-generator
557
+ #: video-embed-thumbnail-generator.php:2409
558
+ msgid "Inline videos:"
559
+ msgstr "Видеа в текста:"
560
+
561
+ # @ video-embed-thumbnail-generator
562
+ #: video-embed-thumbnail-generator.php:2410
563
+ msgid "Max embedded video dimensions:"
564
+ msgstr "Максимални размери за вградени видеа:"
565
+
566
+ # @ video-embed-thumbnail-generator
567
+ #: video-embed-thumbnail-generator.php:2411
568
+ msgid "Max gallery video dimensions:"
569
+ msgstr "Максимални размери за видеа в галерия:"
570
+
571
+ # @ video-embed-thumbnail-generator
572
+ #: video-embed-thumbnail-generator.php:2412
573
+ msgid "Gallery thumbnail width:"
574
+ msgstr "Ширина на картинките в галерия:"
575
+
576
+ # @ video-embed-thumbnail-generator
577
+ #: video-embed-thumbnail-generator.php:2413
578
+ msgid "Video controls:"
579
+ msgstr "Контролни бутони на видеата:"
580
+
581
+ # @ video-embed-thumbnail-generator
582
+ #: video-embed-thumbnail-generator.php:2414
583
+ msgid "Autoplay:"
584
+ msgstr "Автоматично изпълняване:"
585
+
586
+ # @ video-embed-thumbnail-generator
587
+ #: video-embed-thumbnail-generator.php:2415
588
+ msgctxt "verb"
589
+ msgid "Loop:"
590
+ msgstr "Повтаряне:"
591
+
592
+ # @ video-embed-thumbnail-generator
593
+ #: video-embed-thumbnail-generator.php:2416
594
+ msgid "Preload:"
595
+ msgstr "Предварително зареждане:"
596
+
597
+ # @ video-embed-thumbnail-generator
598
+ #: video-embed-thumbnail-generator.php:2417
599
+ msgctxt "CSS class for video skin"
600
+ msgid "Skin class:"
601
+ msgstr "CSS клас на кожата:"
602
+
603
+ # @ video-embed-thumbnail-generator
604
+ #: video-embed-thumbnail-generator.php:2419
605
+ msgid "Background color:"
606
+ msgstr "Цвят на фона:"
607
+
608
+ # @ video-embed-thumbnail-generator
609
+ #: video-embed-thumbnail-generator.php:2420
610
+ msgid "XML configuration file:"
611
+ msgstr "XML конфигурационен файл:"
612
+
613
+ # @ video-embed-thumbnail-generator
614
+ #: video-embed-thumbnail-generator.php:2421
615
+ msgid "Video skin file:"
616
+ msgstr "Файл с кожа за видеото:"
617
+
618
+ # @ video-embed-thumbnail-generator
619
+ #: video-embed-thumbnail-generator.php:2422
620
+ msgid "Video stream type:"
621
+ msgstr "Тип на видео потока:"
622
+
623
+ # @ video-embed-thumbnail-generator
624
+ #: video-embed-thumbnail-generator.php:2423
625
+ msgid "Video scale mode:"
626
+ msgstr "Тип на оразмеряването на видеото:"
627
+
628
+ # @ video-embed-thumbnail-generator
629
+ #: video-embed-thumbnail-generator.php:2424
630
+ msgid "Autohide:"
631
+ msgstr "Автоматично скриване:"
632
+
633
+ # @ video-embed-thumbnail-generator
634
+ #: video-embed-thumbnail-generator.php:2425
635
+ msgid "Play button overlay:"
636
+ msgstr "Подложка на бутона за изпълнение:"
637
+
638
+ # @ video-embed-thumbnail-generator
639
+ #: video-embed-thumbnail-generator.php:2427
640
+ msgid "Default number of thumbnails to generate:"
641
+ msgstr "Брой по подразбиране на генерираните картинки:"
642
+
643
+ # @ video-embed-thumbnail-generator
644
+ #: video-embed-thumbnail-generator.php:2428
645
+ msgid "User capabilities:"
646
+ msgstr "Потребителски права:"
647
+
648
+ # @ video-embed-thumbnail-generator
649
+ #: video-embed-thumbnail-generator.php:2429
650
+ msgid "Video security:"
651
+ msgstr "Сигурност на видеото:"
652
+
653
+ # @ video-embed-thumbnail-generator
654
+ #: video-embed-thumbnail-generator.php:2430
655
+ msgid "Featured image:"
656
+ msgstr "Картинка на публикацията:"
657
+
658
+ # @ video-embed-thumbnail-generator
659
+ #: video-embed-thumbnail-generator.php:2431
660
+ msgid "Attach thumbnails to:"
661
+ msgstr "Прикачване на картинките към:"
662
+
663
+ # @ video-embed-thumbnail-generator
664
+ #: video-embed-thumbnail-generator.php:2432
665
+ msgid "Delete associated attachments:"
666
+ msgstr "Изтриване на свързаните прикачени файлове:"
667
+
668
+ # @ video-embed-thumbnail-generator
669
+ #: video-embed-thumbnail-generator.php:2433
670
+ msgid "Video title text HTML formatting:"
671
+ msgstr "HTML форматиране на заглавия на видеата:"
672
+
673
+ # @ video-embed-thumbnail-generator
674
+ #: video-embed-thumbnail-generator.php:2434
675
+ #, fuzzy
676
+ msgid "Attachment template display:"
677
+ msgstr "Дизайн на страницата за прикачен файл:"
678
+
679
+ # @ video-embed-thumbnail-generator
680
+ #: video-embed-thumbnail-generator.php:2437
681
+ msgid "Path to applications folder on server:"
682
+ msgstr "Път към директорията на приложението на сървъра:"
683
+
684
+ # @ video-embed-thumbnail-generator
685
+ #: video-embed-thumbnail-generator.php:2441
686
+ msgid "Enable in-browser thumbnails:"
687
+ msgstr "Включи картинките в браузъра:"
688
+
689
+ # @ video-embed-thumbnail-generator
690
+ #: video-embed-thumbnail-generator.php:2442
691
+ msgid "Default video encode formats:"
692
+ msgstr "Формати по подразбиране за видео кодиране:"
693
+
694
+ # @ video-embed-thumbnail-generator
695
+ #: video-embed-thumbnail-generator.php:2443
696
+ msgid "Do automatically on upload:"
697
+ msgstr "Изпълнявай автоматично след качване:"
698
+
699
+ # @ video-embed-thumbnail-generator
700
+ #: video-embed-thumbnail-generator.php:2444
701
+ msgid "htaccess login:"
702
+ msgstr "htaccess login:"
703
+
704
+ # @ video-embed-thumbnail-generator
705
+ #: video-embed-thumbnail-generator.php:2445
706
+ msgid "Add watermark to encoded files:"
707
+ msgstr "Добавяй воден знак към кодираните файлове:"
708
+
709
+ # @ video-embed-thumbnail-generator
710
+ #: video-embed-thumbnail-generator.php:2449
711
+ msgid "Encode quality control method:"
712
+ msgstr "Метод за контрол на качеството на кодиране:"
713
+
714
+ # @ video-embed-thumbnail-generator
715
+ #: video-embed-thumbnail-generator.php:2450
716
+ msgid "Constant Rate Factors (CRF):"
717
+ msgstr "Constant Rate Factors (CRF):"
718
+
719
+ # @ video-embed-thumbnail-generator
720
+ #: video-embed-thumbnail-generator.php:2451
721
+ msgid "Average Bit Rate:"
722
+ msgstr "Среден Битрейт:"
723
+
724
+ # @ video-embed-thumbnail-generator
725
+ #: video-embed-thumbnail-generator.php:2452
726
+ msgid "H.264 profile:"
727
+ msgstr "H.264 профил:"
728
+
729
+ # @ video-embed-thumbnail-generator
730
+ #: video-embed-thumbnail-generator.php:2453
731
+ msgid "Audio bit rate:"
732
+ msgstr "Аудио битрейт:"
733
+
734
+ # @ video-embed-thumbnail-generator
735
+ #: video-embed-thumbnail-generator.php:2457
736
+ msgctxt "program execution options"
737
+ msgid "Execution:"
738
+ msgstr "Изпълнение:"
739
+
740
+ # @ video-embed-thumbnail-generator
741
+ #: video-embed-thumbnail-generator.php:2460
742
+ msgid "Test FFMPEG:"
743
+ msgstr "Тестване на FFMPEG:"
744
+
745
+ # @ video-embed-thumbnail-generator
746
+ #: video-embed-thumbnail-generator.php:2482
747
+ #: video-embed-thumbnail-generator.php:3754
748
+ msgid "WordPress Default"
749
+ msgstr "WordPress по подразбиране"
750
+
751
+ # @ video-embed-thumbnail-generator
752
+ #: video-embed-thumbnail-generator.php:2504
753
+ msgid "(deprecated)"
754
+ msgstr "(вече не се разработва)"
755
+
756
+ # @ video-embed-thumbnail-generator
757
+ #: video-embed-thumbnail-generator.php:2506
758
+ msgid "Video player:"
759
+ msgstr "Видео плеър:"
760
+
761
+ # @ video-embed-thumbnail-generator
762
+ #: video-embed-thumbnail-generator.php:2511
763
+ msgid ""
764
+ "Video.js is the default player. Users running WordPress 3.6 or higher can "
765
+ "choose the WordPress Default Mediaelement.js player which may already be "
766
+ "skinned to match your theme. If the JW Player WordPress plugin is active it "
767
+ "should be available as a video player. In the past this plugin used Adobe's "
768
+ "Strobe Media Playback Flash player, which hasn't been updated since 2011 and "
769
+ "is not recommended. It should still work, but new plugin functions are not "
770
+ "guaranteed to be compatible."
771
+ msgstr ""
772
+ "Video.js е видео плеърът по подразбиране. Потребители, използващи версия 3.6 "
773
+ "или по-нова могат да използват плеърът по подразбиране в WordPress - "
774
+ "Mediaelement.js , който може би вече е стилизиран да съответства на темата, "
775
+ "която използвате. Ако разширението на JW player е активно, ще бъде достъпно "
776
+ "за избор. Можете да използвате Strobe media player на Adobe, но той не е "
777
+ "обновяван от 2011 година и не се препоръчва. Вероятно ще работи, но не "
778
+ "можем да гарантираме съвместимост с нови функционалности."
779
+
780
+ # @ video-embed-thumbnail-generator
781
+ #: video-embed-thumbnail-generator.php:2515
782
+ msgid "Overlay video title"
783
+ msgstr "Заглавие върху видеото"
784
+
785
+ # @ video-embed-thumbnail-generator
786
+ #: video-embed-thumbnail-generator.php:2516
787
+ msgid "Overlay embed code"
788
+ msgstr "Код за вграждане върху видеото"
789
+
790
+ # @ video-embed-thumbnail-generator
791
+ #: video-embed-thumbnail-generator.php:2519
792
+ msgid "Show download link"
793
+ msgstr "Показване на линк за сваляне"
794
+
795
+ # @ video-embed-thumbnail-generator
796
+ #: video-embed-thumbnail-generator.php:2520
797
+ msgid "Show view count"
798
+ msgstr "Показване на брой гледания"
799
+
800
+ # @ video-embed-thumbnail-generator
801
+ #: video-embed-thumbnail-generator.php:2528
802
+ #: video-embed-thumbnail-generator.php:3689
803
+ msgid "Choose a Thumbnail"
804
+ msgstr "Изберете картинка"
805
+
806
+ # @ video-embed-thumbnail-generator
807
+ #: video-embed-thumbnail-generator.php:2528
808
+ #: video-embed-thumbnail-generator.php:3689
809
+ msgid "Set as video thumbnail"
810
+ msgstr "Задайте като картинка на видеото"
811
+
812
+ # @ video-embed-thumbnail-generator
813
+ #: video-embed-thumbnail-generator.php:2533
814
+ msgid "Display thumbnail image again when video ends."
815
+ msgstr "Покажете картинката на видеото отново, когато клипът свърши"
816
+
817
+ # @ video-embed-thumbnail-generator
818
+ #: video-embed-thumbnail-generator.php:2534
819
+ msgid "Choose End of Video Image"
820
+ msgstr "Изберете картинка за край на видеото"
821
+
822
+ # @ video-embed-thumbnail-generator
823
+ #: video-embed-thumbnail-generator.php:2534
824
+ msgid "Set as end of video image"
825
+ msgstr "Задайте като картинка за край на видеото"
826
+
827
+ # @ video-embed-thumbnail-generator
828
+ #: video-embed-thumbnail-generator.php:2535
829
+ msgid "Display alternate image when video ends."
830
+ msgstr "Показване на алтернативна картинка след края на видеото"
831
+
832
+ # @ video-embed-thumbnail-generator
833
+ #: video-embed-thumbnail-generator.php:2540
834
+ #: video-embed-thumbnail-generator.php:2868
835
+ msgid "Choose a Watermark"
836
+ msgstr "Изберете воден знак"
837
+
838
+ # @ video-embed-thumbnail-generator
839
+ #: video-embed-thumbnail-generator.php:2540
840
+ #: video-embed-thumbnail-generator.php:2868
841
+ msgid "Set as watermark"
842
+ msgstr "Задайте като воден знак"
843
+
844
+ # @ video-embed-thumbnail-generator
845
+ #: video-embed-thumbnail-generator.php:2545
846
+ #: video-embed-thumbnail-generator.php:2870
847
+ msgid "left"
848
+ msgstr "ляво"
849
+
850
+ # @ video-embed-thumbnail-generator
851
+ #: video-embed-thumbnail-generator.php:2545
852
+ msgid "center"
853
+ msgstr "център"
854
+
855
+ # @ video-embed-thumbnail-generator
856
+ #: video-embed-thumbnail-generator.php:2545
857
+ #: video-embed-thumbnail-generator.php:2870
858
+ msgid "right"
859
+ msgstr "дясно"
860
+
861
+ # @ video-embed-thumbnail-generator
862
+ #: video-embed-thumbnail-generator.php:2556
863
+ msgid "Make video player responsive."
864
+ msgstr "Направете видео плеърът адаптивен"
865
+
866
+ # @ video-embed-thumbnail-generator
867
+ #: video-embed-thumbnail-generator.php:2561
868
+ msgid "Allow other content on the same line as the video."
869
+ msgstr "Позволяване на друго съдържание(пр. текст) на същия ред като видеото"
870
+
871
+ # @ video-embed-thumbnail-generator
872
+ #: video-embed-thumbnail-generator.php:2566
873
+ #: video-embed-thumbnail-generator.php:2572
874
+ #: video-embed-thumbnail-generator.php:3702
875
+ #: video-embed-thumbnail-generator.php:4310
876
+ msgid "Width:"
877
+ msgstr "Ширина:"
878
+
879
+ # @ video-embed-thumbnail-generator
880
+ #: video-embed-thumbnail-generator.php:2566
881
+ #: video-embed-thumbnail-generator.php:2572
882
+ #: video-embed-thumbnail-generator.php:3702
883
+ #: video-embed-thumbnail-generator.php:4310
884
+ msgid "Height:"
885
+ msgstr "Височина:"
886
+
887
+ # @ video-embed-thumbnail-generator
888
+ #: video-embed-thumbnail-generator.php:2567
889
+ msgid "Enlarge lower resolution videos to max width."
890
+ msgstr "Уголемяване на видеа с по-ниска резолюция до максималната ширина."
891
+
892
+ # @ video-embed-thumbnail-generator
893
+ #: video-embed-thumbnail-generator.php:2567
894
+ msgid ""
895
+ "Usually if a video's resolution is less than the max width, the video player "
896
+ "is set to the actual width of the video. Enabling this will always set the "
897
+ "same width regardless of the quality of the video. When necessary you can "
898
+ "override by setting the dimensions manually."
899
+ msgstr ""
900
+ "Обикновено, когато разделителната способност(резолюция) на видеото е по-"
901
+ "малка от максималната ширина, видео плеърът е с реалните размери на видеото. "
902
+ "Включването на тази опция, ще направи видеата с еднакъв размер, независимо "
903
+ "от качеството на конкретния клип. Когато е нужно, можете да зададете "
904
+ "различен размер ръчно за отделно видео."
905
+
906
+ # @ video-embed-thumbnail-generator
907
+ #: video-embed-thumbnail-generator.php:2583
908
+ msgid "docked"
909
+ msgstr "закачено"
910
+
911
+ # @ video-embed-thumbnail-generator
912
+ #: video-embed-thumbnail-generator.php:2584
913
+ msgid "floating"
914
+ msgstr "\"плаващо\""
915
+
916
+ # @ video-embed-thumbnail-generator
917
+ #: video-embed-thumbnail-generator.php:2585
918
+ #: video-embed-thumbnail-generator.php:2609
919
+ #: video-embed-thumbnail-generator.php:2657
920
+ #: video-embed-thumbnail-generator.php:2746
921
+ #: video-embed-thumbnail-generator.php:2898
922
+ msgid "none"
923
+ msgstr "без"
924
+
925
+ # @ video-embed-thumbnail-generator
926
+ #: video-embed-thumbnail-generator.php:2596
927
+ msgid "Play automatically when page loads."
928
+ msgstr "Автоматично възпроизвеждане, след зареждане на страницата."
929
+
930
+ # @ video-embed-thumbnail-generator
931
+ #: video-embed-thumbnail-generator.php:2601
932
+ msgid "Loop to beginning when video ends."
933
+ msgstr "Повторно възпроизвеждане отначало, след като клипът свърши."
934
+
935
+ # @ video-embed-thumbnail-generator
936
+ #: video-embed-thumbnail-generator.php:2607
937
+ msgid "metadata"
938
+ msgstr "метаданни"
939
+
940
+ # @ video-embed-thumbnail-generator
941
+ #: video-embed-thumbnail-generator.php:2608
942
+ msgid "auto"
943
+ msgstr "автоматично"
944
+
945
+ # @ video-embed-thumbnail-generator
946
+ #: video-embed-thumbnail-generator.php:2615
947
+ msgctxt "Suggest not translating the words in quotation marks"
948
+ msgid ""
949
+ "Controls how much of a video to load before the user starts playback. Mobile "
950
+ "browsers never preload any video information. Selecting \"metadata\" will "
951
+ "load the height and width and format information along with a few seconds of "
952
+ "the video in some desktop browsers. \"Auto\" will preload nearly a minute of "
953
+ "video in most desktop browsers. \"None\" will prevent all data from "
954
+ "preloading."
955
+ msgstr ""
956
+ "Каква част от видеото да се зареди, преди клипът да бъде пуснат. Мобилните "
957
+ "браузъри зареждат нищо предварително. \"метаданни\" ще заредят предварително "
958
+ "размера на клипа и няколко секунди от началото му в някои браузъри. "
959
+ "\"автоматично\" ще зареди предварително около минута от видеото в повечето "
960
+ "браузъри. \"без\" ще спре предварителното зареждане изцяло."
961
+
962
+ # @ video-embed-thumbnail-generator
963
+ #: video-embed-thumbnail-generator.php:2620
964
+ msgid ""
965
+ "Use %s for a nice, circular play button. Leave blank for the default square "
966
+ "play button."
967
+ msgstr ""
968
+ "Използвайте %s за хубав, кръгъл бутон за възпроизвеждане. Оставете празно за "
969
+ "обикновен, квадратен бутон."
970
+
971
+ # @ video-embed-thumbnail-generator
972
+ #: video-embed-thumbnail-generator.php:2620
973
+ msgid "Or build your own CSS skin."
974
+ msgstr "Или използвайте собствена CSS кожа."
975
+
976
+ # @ video-embed-thumbnail-generator
977
+ #: video-embed-thumbnail-generator.php:2635
978
+ msgid "Use %s for a modern, circular play button."
979
+ msgstr "Използвайте %s за хубав, кръгъл бутон за възпроизвеждане."
980
+
981
+ # @ video-embed-thumbnail-generator
982
+ #: video-embed-thumbnail-generator.php:2635
983
+ msgid "Leave blank for the off-center square play button."
984
+ msgstr "Оставете празно за обикновен, квадратен бутон за възпроизвеждане."
985
+
986
+ # @ video-embed-thumbnail-generator
987
+ #: video-embed-thumbnail-generator.php:2641
988
+ msgid "liveOrRecorded"
989
+ msgstr "на живо или запис"
990
+
991
+ # @ video-embed-thumbnail-generator
992
+ #: video-embed-thumbnail-generator.php:2642
993
+ msgid "live"
994
+ msgstr "на живо"
995
+
996
+ # @ video-embed-thumbnail-generator
997
+ #: video-embed-thumbnail-generator.php:2643
998
+ msgid "recorded"
999
+ msgstr "запис"
1000
+
1001
+ # @ video-embed-thumbnail-generator
1002
+ #: video-embed-thumbnail-generator.php:2644
1003
+ msgid "dvr"
1004
+ msgstr "dvr"
1005
+
1006
+ # @ video-embed-thumbnail-generator
1007
+ #: video-embed-thumbnail-generator.php:2656
1008
+ msgid "letterbox"
1009
+ msgstr "по ширина"
1010
+
1011
+ # @ video-embed-thumbnail-generator
1012
+ #: video-embed-thumbnail-generator.php:2658
1013
+ msgid "stretch"
1014
+ msgstr "разтягане"
1015
+
1016
+ # @ video-embed-thumbnail-generator
1017
+ #: video-embed-thumbnail-generator.php:2659
1018
+ msgid "zoom"
1019
+ msgstr "увеличаване"
1020
+
1021
+ # @ video-embed-thumbnail-generator
1022
+ #: video-embed-thumbnail-generator.php:2671
1023
+ msgid "Autohide controlbar."
1024
+ msgstr "Автоматично скриване на контролната лента."
1025
+
1026
+ # @ video-embed-thumbnail-generator
1027
+ #: video-embed-thumbnail-generator.php:2676
1028
+ msgid "Overlay play button on poster frame."
1029
+ msgstr "Бутон за възпроизвеждане върху картинката"
1030
+
1031
+ # @ video-embed-thumbnail-generator
1032
+ #: video-embed-thumbnail-generator.php:2688
1033
+ msgid "Can make thumbnails"
1034
+ msgstr "Може да задава картинки"
1035
+
1036
+ # @ video-embed-thumbnail-generator
1037
+ #: video-embed-thumbnail-generator.php:2688
1038
+ msgid "Can encode videos"
1039
+ msgstr "Може да кодира видеа"
1040
+
1041
+ # @ video-embed-thumbnail-generator
1042
+ #: video-embed-thumbnail-generator.php:2688
1043
+ msgid "Can view & modify other users encode queue"
1044
+ msgstr ""
1045
+ "Може да преглежда и модифицира опашката за кодиране на други потребители"
1046
+
1047
+ # @ video-embed-thumbnail-generator
1048
+ #: video-embed-thumbnail-generator.php:2722
1049
+ msgid "Allow users to embed your videos on other sites."
1050
+ msgstr "Позволете на потребителите да вграждат Вашите видеа в други сайтове."
1051
+
1052
+ # @ video-embed-thumbnail-generator
1053
+ #: video-embed-thumbnail-generator.php:2723
1054
+ msgctxt "\"Open Graph\" is a proper noun and might not need translation"
1055
+ msgid "Enable Open Graph video tags"
1056
+ msgstr "Включете OpenGraph видео етикети"
1057
+
1058
+ # @ video-embed-thumbnail-generator
1059
+ #: video-embed-thumbnail-generator.php:2723
1060
+ msgid ""
1061
+ "Facebook and some other social media sites will use these tags to embed the "
1062
+ "first video in your post. For the majority of Facebook users who have "
1063
+ "enabled secure browsing, your video must be served via https in order to be "
1064
+ "embedded directly on the page."
1065
+ msgstr ""
1066
+ "Facebook и някои други социални мрежи ще използват тези тагове, за да "
1067
+ "вграждат първото видео в публикацията Ви. За повечето facebook потребители, "
1068
+ "които са включили 'secure browsing', вашето видео трябва да бъде показвано "
1069
+ "чрез https, за да бъде вграждано директно на страницата."
1070
+
1071
+ # @ video-embed-thumbnail-generator
1072
+ #: video-embed-thumbnail-generator.php:2724
1073
+ msgid "Allow right-clicking on videos."
1074
+ msgstr "Позволете десен бутон върху видеата."
1075
+
1076
+ # @ video-embed-thumbnail-generator
1077
+ #: video-embed-thumbnail-generator.php:2724
1078
+ msgid ""
1079
+ "We can't prevent a user from simply saving the downloaded video file from "
1080
+ "the browser's cache, but disabling right-clicking will make it more "
1081
+ "difficult for casual users to save your videos."
1082
+ msgstr ""
1083
+ "Няма да спре потребителите от записване на видеото от кеша на браузъра, но "
1084
+ "изключването на десния бутон върху клиповете ще направи свалянето им от "
1085
+ "обикновени потребители значително по-трудно."
1086
+
1087
+ # @ video-embed-thumbnail-generator
1088
+ #: video-embed-thumbnail-generator.php:2729
1089
+ msgid "Set generated video thumbnails as featured images."
1090
+ msgstr "Задаване на генерираните картинки, като картинки на публикациите."
1091
+
1092
+ # @ video-embed-thumbnail-generator
1093
+ #: video-embed-thumbnail-generator.php:2729
1094
+ msgid ""
1095
+ "If your theme uses the featured image meta tag, this will automatically set "
1096
+ "a video's parent post's featured image to the most recently saved thumbnail "
1097
+ "image."
1098
+ msgstr ""
1099
+ "Ако шаблонът, който използвате поддържа картинки на публикациите, тази опция "
1100
+ "ще зададе картинката на видеото, като картинка на публикацията, в която се "
1101
+ "намира."
1102
+
1103
+ # @ video-embed-thumbnail-generator
1104
+ #: video-embed-thumbnail-generator.php:2729
1105
+ msgctxt "implied \"Set all thumbnails as featured\""
1106
+ msgid "Set all as featured"
1107
+ msgstr "Задайте всички като картинки на публикации"
1108
+
1109
+ # @ video-embed-thumbnail-generator
1110
+ #: video-embed-thumbnail-generator.php:2729
1111
+ msgid ""
1112
+ "If you've generated thumbnails before enabling this option, this will set "
1113
+ "all existing thumbnails as featured images. Be careful!"
1114
+ msgstr ""
1115
+ "Ако сте генерирали картинки преди, включването на тази опция ще ги зададе "
1116
+ "като картинки на публикации."
1117
+
1118
+ # @ video-embed-thumbnail-generator
1119
+ #: video-embed-thumbnail-generator.php:2740
1120
+ msgid ""
1121
+ "This depends on your theme. Thumbnails generated by the plugin can be saved "
1122
+ "as children of the video attachment or the post. Some themes use an image "
1123
+ "attached to a post instead of the built-in featured image meta tag. Version "
1124
+ "3.x of this plugin saved all thumbnails as children of the video."
1125
+ msgstr ""
1126
+ "Това зависи от темата, която ползвате. Картинките, генерирани от това "
1127
+ "разширение могат да бъдат задавани като деца на видеото или на публикацията. "
1128
+ "Някои теми използват изображение, прикачено към публикацията, вместо "
1129
+ "обикновенните картинки на публикация. Версия 3.х на това разширение "
1130
+ "записваше всички картинки, като деца на видеото."
1131
+
1132
+ # @ video-embed-thumbnail-generator
1133
+ #: video-embed-thumbnail-generator.php:2740
1134
+ msgid "Set all parents"
1135
+ msgstr "Задай всички родители"
1136
+
1137
+ # @ video-embed-thumbnail-generator
1138
+ #: video-embed-thumbnail-generator.php:2740
1139
+ msgid ""
1140
+ "If you've generated thumbnails before changing this option, this will set "
1141
+ "all existing thumbnails as children of your currently selected option."
1142
+ msgstr ""
1143
+ "Ако сте генерирали картинки преди да промените тази настройка, това ще "
1144
+ "зададе всички съществуващи картинки като деца на избраната опция."
1145
+
1146
+ # @ video-embed-thumbnail-generator
1147
+ #: video-embed-thumbnail-generator.php:2747
1148
+ msgid "all"
1149
+ msgstr "всички"
1150
+
1151
+ # @ video-embed-thumbnail-generator
1152
+ #: video-embed-thumbnail-generator.php:2748
1153
+ msgid "encoded videos only"
1154
+ msgstr "само кодирани видеа"
1155
+
1156
+ # @ video-embed-thumbnail-generator
1157
+ #: video-embed-thumbnail-generator.php:2754
1158
+ msgid ""
1159
+ "If you delete the original video you can choose to delete all associated "
1160
+ "attachments (thumbnails & videos) or keep the thumbnail."
1161
+ msgstr ""
1162
+ "Ако изтриете оригиналното видео, може да изберете дали да изтриете всички "
1163
+ "асоциирани с него приложения(картинки и видеа) или да запазите картинката."
1164
+
1165
+ # @ video-embed-thumbnail-generator
1166
+ #: video-embed-thumbnail-generator.php:2759
1167
+ msgid ""
1168
+ "HTML tag applied to titles inserted above the video. Examples: %s. "
1169
+ "Corresponding closing tags will be applied to the end of the title "
1170
+ "automatically."
1171
+ msgstr ""
1172
+ "HTML таг, прилагащ се към заглавията на видеата. Пример: %s. Затварящите "
1173
+ "тагове ще бъдат добавени в края на заглавието автоматично."
1174
+
1175
+ #: video-embed-thumbnail-generator.php:2764
1176
+ msgid "Video title (WP default)"
1177
+ msgstr "Заглавие на видеото (стандартно за WP)"
1178
+
1179
+ #: video-embed-thumbnail-generator.php:2764
1180
+ msgid "Video in existing template"
1181
+ msgstr "Видео в съществуващ шаблон"
1182
+
1183
+ # @ video-embed-thumbnail-generator
1184
+ #: video-embed-thumbnail-generator.php:2764
1185
+ msgid "Video only (deprecated)"
1186
+ msgstr "Само видео (не се препоръчва)"
1187
+
1188
+ # @ video-embed-thumbnail-generator
1189
+ #: video-embed-thumbnail-generator.php:2770
1190
+ msgid ""
1191
+ "By default WordPress only displays a video's title on the attachment page. "
1192
+ "This plugin can filter your attachment page to display the video, or "
1193
+ "completely replace your attachment template to show only the video. If you "
1194
+ "were one of the few people using iframe embed codes before version 4.0 of "
1195
+ "this plugin then you should continue to use \"Video only\" but otherwise "
1196
+ "it's not recommended."
1197
+ msgstr ""
1198
+ "По подразбиране, WordPress показва само заглавие на видеото в страницата му "
1199
+ "на прикачен файл. Това разширение може да промени това, показвайки и "
1200
+ "заглавие, и видео, или пък само видео. Ако бяхте от малцината, които "
1201
+ "използваха iframe кодове за вграждане преди версия 4.0 на това разширение, "
1202
+ "продължете да използвате \"Само видео\", в останалите случаи не се "
1203
+ "препоръчва."
1204
+
1205
+ # @ video-embed-thumbnail-generator
1206
+ #: video-embed-thumbnail-generator.php:2784
1207
+ msgid ""
1208
+ "This should be the folder where applications are installed on your server, "
1209
+ "not a direct path to an application, so it doesn't usually end with %1$s. "
1210
+ "Example: %2$s."
1211
+ msgstr ""
1212
+ "Това трябва да е директорията, в която приложенията са инсталирани на вашия "
1213
+ "сървър, не директен път до приложение, така че обикновено не завършва с "
1214
+ "%1$s. Пример: %2$s."
1215
+
1216
+ # @ video-embed-thumbnail-generator
1217
+ #: video-embed-thumbnail-generator.php:2796
1218
+ msgid ""
1219
+ "FFMPEG split into two separate branches in 2011. The new branch is called "
1220
+ "LIBAV and executes using \"avconv\" instead of \"ffmpeg.\" Both are still "
1221
+ "actively developed and FFMPEG frequently incorporates LIBAV features. Debian "
1222
+ "& Ubuntu users probably have LIBAV installed."
1223
+ msgstr ""
1224
+ "FFMPEG се раздели на няколко различни клона през 2011. Новият клон се казва "
1225
+ "LIBAV и се изпълнява, използвайки \"avconv\", вместо \"ffmpeg\". И двата все "
1226
+ "още активно се разработват и FFMPEG често използва фукнции от LIBAV. Debian "
1227
+ "и Ubuntu потребители, ней-вероятно имат инсталиран LIBAV."
1228
+
1229
+ # @ video-embed-thumbnail-generator
1230
+ #: video-embed-thumbnail-generator.php:2802
1231
+ msgid ""
1232
+ "When possible, use the browser's built-in video capabilities to make "
1233
+ "thumbnails instead of %s."
1234
+ msgstr ""
1235
+ "Когато може, използване видео възможностите на браузъра, за генериране на "
1236
+ "картинки, вместо %s."
1237
+
1238
+ # @ video-embed-thumbnail-generator
1239
+ #: video-embed-thumbnail-generator.php:2809
1240
+ msgid "Replace original with same resolution H.264"
1241
+ msgstr "Заместване на оригиналът със H.264 със същата разд. способност"
1242
+
1243
+ # @ video-embed-thumbnail-generator
1244
+ #: video-embed-thumbnail-generator.php:2809
1245
+ msgid ""
1246
+ "If you have FFMPEG/LIBAV and the proper libraries installed, you can choose "
1247
+ "to replace your uploaded video with an H.264 video, and also transcode into "
1248
+ "as many as five additional formats depending on the resolution of your "
1249
+ "original source. Different browsers have different playback capabilities. "
1250
+ "Most desktop browsers can play H.264, and all modern mobile devices can play "
1251
+ "at least 480p H.264. If you create multiple H.264 resolutions, the highest "
1252
+ "resolution supported by the device will be served up automatically. The "
1253
+ "plugin will not upconvert your video, so if you upload a 720p video, it will "
1254
+ "not waste your time creating a 1080p version. There was a time when it "
1255
+ "seemed like a good idea to provide OGV or WEBM for some desktop browsers, "
1256
+ "but even Firefox allows H.264 playback on Windows now. I no longer recommend "
1257
+ "encoding OGV or WEBM unless you expect a large number of no-Flash sticklers "
1258
+ "visiting your site."
1259
+ msgstr ""
1260
+ "Ако имате инсталирани FFMPEG/LIBAV и подходящите библиотеки, можете да "
1261
+ "заместите каченото видео с H.264 видео и да ко конвертирате в най-много пет "
1262
+ "други формата, в зависимост от резолюцията на оригиналния източник. "
1263
+ "Различните браузъри имат различни възможности за възпроизвеждане. Повечето "
1264
+ "настолни браузъри могат да изпълнят H.264 и всички модерни мобилни у-ва "
1265
+ "могат да изпълнят поне 480p H.264. Ако създадете няколко H.264 резолюции, "
1266
+ "най-високата поддържана резолюция за даденото устройство ще бъде заредена "
1267
+ "автоматично. Разширението няма да опита да зъздаде по-висока резолюция от "
1268
+ "оригинала - ако източника е 720p, няма да губим времето Ви, създавайки 1080p "
1269
+ "версия. Преди време беше добра идея да се предоставят OGV и WEBM версии за "
1270
+ "някои браузъри, но вече дори Firefox поддържа H.264. Вече не препоръчваме "
1271
+ "OGV и WEBM кодиране, освен ако не очаквате масивни посещения от противници "
1272
+ "на Flash."
1273
+
1274
+ # @ video-embed-thumbnail-generator
1275
+ #: video-embed-thumbnail-generator.php:2810
1276
+ msgid ""
1277
+ "(iPhone 4s+, iPad 2+, modern Android, Windows Phone 8, Chrome, Safari, IE "
1278
+ "9+, Firefox Windows)"
1279
+ msgstr ""
1280
+ "(iPhone 4s+, iPad 2+, модерни у-ва с Android, Windows Phone 8, Chrome, "
1281
+ "Safari, IE 9+, Firefox Windows)"
1282
+
1283
+ # @ video-embed-thumbnail-generator
1284
+ #: video-embed-thumbnail-generator.php:2811
1285
+ msgid "(iPhone 4+, iPad, most Android, Chrome, Safari, IE 9+, Firefox Windows)"
1286
+ msgstr ""
1287
+ "(iPhone 4+, iPad, повечето у-ва с Android, Chrome, Safari, IE 9+, Firefox "
1288
+ "Windows)"
1289
+
1290
+ # @ video-embed-thumbnail-generator
1291
+ #: video-embed-thumbnail-generator.php:2832
1292
+ msgid "Generate %1$s thumbnail from %2$s%% of the way through the video."
1293
+ msgid_plural "Generate %1$s thumbnails and set #%2$s as the main image."
1294
+ msgstr[0] "Генериране на %1$s картинка от %2$s%% от видеото."
1295
+ msgstr[1] ""
1296
+ "Генериране на %1$s картинки и задаване на #%2$s като основна картинка."
1297
+
1298
+ # @ video-embed-thumbnail-generator
1299
+ #: video-embed-thumbnail-generator.php:2840
1300
+ msgid "Encode formats selected above."
1301
+ msgstr "Кодиране на избраните по-горе формати."
1302
+
1303
+ # @ video-embed-thumbnail-generator
1304
+ #: video-embed-thumbnail-generator.php:2860
1305
+ msgid "Username:"
1306
+ msgstr "Потребителско име:"
1307
+
1308
+ # @ video-embed-thumbnail-generator
1309
+ #: video-embed-thumbnail-generator.php:2861
1310
+ msgid "Password:"
1311
+ msgstr "Парола:"
1312
+
1313
+ # @ video-embed-thumbnail-generator
1314
+ #: video-embed-thumbnail-generator.php:2861
1315
+ msgid ""
1316
+ "If your videos are htaccess protected, %s will access them using these "
1317
+ "credentials."
1318
+ msgstr ""
1319
+ "Ако видеата Ви са защитени с .htaccess, %s ще ги достъпва с тези данни за "
1320
+ "достъп."
1321
+
1322
+ # @ video-embed-thumbnail-generator
1323
+ #: video-embed-thumbnail-generator.php:2869
1324
+ msgid "Scale: %s%% of video covered by the watermark."
1325
+ msgstr "Преоразмеряване: %s%% от видеото е покрито с водния знак."
1326
+
1327
+ # @ video-embed-thumbnail-generator
1328
+ #: video-embed-thumbnail-generator.php:2870
1329
+ msgctxt "horizontal center"
1330
+ msgid "center"
1331
+ msgstr "център"
1332
+
1333
+ # @ video-embed-thumbnail-generator
1334
+ #: video-embed-thumbnail-generator.php:2871
1335
+ msgid "Horizontal align:"
1336
+ msgstr "Хоризонтално подравняване:"
1337
+
1338
+ # @ video-embed-thumbnail-generator
1339
+ #: video-embed-thumbnail-generator.php:2878
1340
+ #: video-embed-thumbnail-generator.php:2888
1341
+ msgid "offset"
1342
+ msgstr "изместване"
1343
+
1344
+ # @ video-embed-thumbnail-generator
1345
+ #: video-embed-thumbnail-generator.php:2880
1346
+ msgid "Vertical align:"
1347
+ msgstr "Вертикално подравняване:"
1348
+
1349
+ # @ video-embed-thumbnail-generator
1350
+ #: video-embed-thumbnail-generator.php:2882
1351
+ msgid "top"
1352
+ msgstr "горе"
1353
+
1354
+ # @ video-embed-thumbnail-generator
1355
+ #: video-embed-thumbnail-generator.php:2882
1356
+ msgctxt "vertical center"
1357
+ msgid "center"
1358
+ msgstr "център"
1359
+
1360
+ # @ video-embed-thumbnail-generator
1361
+ #: video-embed-thumbnail-generator.php:2882
1362
+ msgid "bottom"
1363
+ msgstr "долу"
1364
+
1365
+ # @ video-embed-thumbnail-generator
1366
+ #: video-embed-thumbnail-generator.php:2904
1367
+ msgid ""
1368
+ "By default %1$s places moov atoms at the end of H.264 encoded files, which "
1369
+ "forces the entire file to download before playback can start and can prevent "
1370
+ "Flash players from playing them at all. Since approximately October 2012 "
1371
+ "%1$s can fix the problem at the end of the encoding process by using the "
1372
+ "option `movflags faststart`. This is the easiest and fastest way to correct "
1373
+ "the problem, but older versions of %1$s will not work if you select the "
1374
+ "movflags option. If you can't update to a new version of %1$s, select qt-"
1375
+ "faststart or MP4Box which will run after encoding is finished if they are "
1376
+ "installed on your server."
1377
+ msgstr ""
1378
+ "По подразбиране, %1$s слага 'moov атоми' в края на H.264 кодирани файлове, "
1379
+ "което прави наложително целият файл да бъде свален, преди възпроизвеждането "
1380
+ "да започне, и е възможно да спре Flash плеъри от изпълняване. От Октомври "
1381
+ "2012, %1$s може да поправи проблема в края на процеса на кодиране, "
1382
+ "използвайки опцията 'movflags faststart'. Това е най-лесният и бърз начин, "
1383
+ "проблемът да бъде оправен, но по-старите версии на %1$s няма да работят ако "
1384
+ "изберете movflags опцията. Ако не можете да обновите до по-нова версия на "
1385
+ "%1$s, изберете qt-faststart или MP4Box, които ще се изпълняват след като "
1386
+ "кодирането е приключило, ако са инсталирани на сървъра Ви."
1387
+
1388
+ # @ video-embed-thumbnail-generator
1389
+ #: video-embed-thumbnail-generator.php:2917
1390
+ msgid ""
1391
+ "Constant Rate Factor (CRF) attempts to maintain a particular quality output "
1392
+ "for the entire video and only uses bits the encoder determines are "
1393
+ "necessary. Average Bit Rate is similar to the method used in older versions "
1394
+ "of this plugin. If CRF is selected, WEBM encoding will also use the ABR "
1395
+ "setting to set a max bit rate 25% higher than the ABR. Without a max bit "
1396
+ "rate setting WEBM files are terrible quality."
1397
+ msgstr ""
1398
+ "Фактор за постоянен поток (Constant Rate Factor - CRF) опитва да поддържа "
1399
+ "определено качество на видеото през цялата му продължителност и използвайки "
1400
+ "само битове, които енкодера сметне за необходими. Средният битрейт е подобен "
1401
+ "на метода, използван в старите версии на това разширение. ако CRF е избран, "
1402
+ "WEBM кодирането ще използва и ABR опцията, за да зададе битрейт 25% по-висок "
1403
+ "от ABR-ът. Без зададен максимален битрейт, WEBM файловете са с много лошо "
1404
+ "качество."
1405
+
1406
+ # @ video-embed-thumbnail-generator
1407
+ #: video-embed-thumbnail-generator.php:2929
1408
+ msgid ""
1409
+ "Lower values are higher quality. 18 is considered visually lossless. Default "
1410
+ "is 23."
1411
+ msgstr ""
1412
+ "По-ниските стойности са за по-високо качество. 18 се счита за 'lossles'(без "
1413
+ "загуби). Стойността по подразбиране е 23."
1414
+
1415
+ # @ video-embed-thumbnail-generator
1416
+ #: video-embed-thumbnail-generator.php:2936
1417
+ msgid "Lower values are higher quality. Default is 10."
1418
+ msgstr ""
1419
+ "По-ниските стойности са за по-високо качество. Стойност по подразбиране - 10."
1420
+
1421
+ # @ video-embed-thumbnail-generator
1422
+ #: video-embed-thumbnail-generator.php:2943
1423
+ msgid "Higher values are higher quality. Default is 6."
1424
+ msgstr ""
1425
+ "По-високите стойности за за по-високо качество. Стойност по подразбиране - 6."
1426
+
1427
+ # @ video-embed-thumbnail-generator
1428
+ #: video-embed-thumbnail-generator.php:2955
1429
+ msgid "bits per pixel."
1430
+ msgstr "бита за пиксел."
1431
+
1432
+ # @ video-embed-thumbnail-generator
1433
+ #: video-embed-thumbnail-generator.php:2955
1434
+ msgid "Default is 0.1"
1435
+ msgstr "По подразбиране - 0.1"
1436
+
1437
+ # @ video-embed-thumbnail-generator
1438
+ #: video-embed-thumbnail-generator.php:2971
1439
+ msgctxt "H.264 profile. Might not need translation"
1440
+ msgid "profile"
1441
+ msgstr "профил"
1442
+
1443
+ # @ video-embed-thumbnail-generator
1444
+ #: video-embed-thumbnail-generator.php:2971
1445
+ msgid ""
1446
+ "Lower profiles will slightly increase file sizes. This mostly depends on "
1447
+ "your need for compatability with Android devices. Main profile seems to work "
1448
+ "on recent phones, although officially Android only supports baseline. High "
1449
+ "profile is not recommended for mobile or Flash compatibility, and anything "
1450
+ "above high is designed for professional video and probably incompatible with "
1451
+ "consumer devices. Older versions of FFMPEG might ignore this setting "
1452
+ "altogether."
1453
+ msgstr ""
1454
+ "По-ниските профили ще увеличат малко размера на файла. Това зависи предимно "
1455
+ "от нуждата ви за съвместимост с Android устройства. Главните профили "
1456
+ "работят с по-новите у-ва, въпреки че официално, Android, поддържа само "
1457
+ "'baseline'. Високият профил не се препоръчва за съвместимост с мобилни у-ва "
1458
+ "или Flash, а всичко над него е за професионално видео и вероятно "
1459
+ "несъвместимо с обикновени потребителски у-ва. По-старите версии на FFMPEG е "
1460
+ "възможно да игрнорират тази настройка изяло."
1461
+
1462
+ # @ video-embed-thumbnail-generator
1463
+ #: video-embed-thumbnail-generator.php:2978
1464
+ msgctxt "H.264 level. Might not need translation"
1465
+ msgid "level"
1466
+ msgstr "ниво"
1467
+
1468
+ # @ video-embed-thumbnail-generator
1469
+ #: video-embed-thumbnail-generator.php:2978
1470
+ msgid ""
1471
+ "3.0 is default. Lower levels will lower maximum bit rates and decoding "
1472
+ "complexity. This mostly depends on your need for compatability with mobile "
1473
+ "devices. Older versions of FFMPEG might ignore this setting altogether."
1474
+ msgstr ""
1475
+ "3.0 по подразбиране. По-ниските нива ще намалят максималните битрейти и "
1476
+ "сложността на кодирането. Това зависи предимно от нуждата Ви за съвместимост "
1477
+ "с мобилни устройства. По-старите версии на FFMPEG може да игнорират тази "
1478
+ "настройка изяло."
1479
+
1480
+ # @ video-embed-thumbnail-generator
1481
+ #: video-embed-thumbnail-generator.php:2998
1482
+ msgid "Enable legacy FFMPEG \"-b\" and \"-ba\" bitrate flags."
1483
+ msgstr "Включи наследените FFMPEG \"-b\" и \"-ba\" флагове."
1484
+
1485
+ # @ video-embed-thumbnail-generator
1486
+ #: video-embed-thumbnail-generator.php:2998
1487
+ msgid ""
1488
+ "Enable if your installed version of FFMPEG is old enough that you can't use "
1489
+ "the newer -b:v flags (Dreamhost users must turn this on). It may cause newer "
1490
+ "versions of FFMPEG to fail."
1491
+ msgstr ""
1492
+ "Включете това, ако инсталираната версия на FFMPEG е достатъчно стара, че да "
1493
+ "не поддържа новите -b:v флагове(Потребители на Dreamhost ТРЯБВА да включат "
1494
+ "тази настройка). Може да предизвика проблеми в новите версии на FFMPEG."
1495
+
1496
+ # @ video-embed-thumbnail-generator
1497
+ #: video-embed-thumbnail-generator.php:2999
1498
+ msgid "Enable legacy FFMPEG parameters."
1499
+ msgstr "Включете наследените(стари) параметри на FFMPEG."
1500
+
1501
+ # @ video-embed-thumbnail-generator
1502
+ #: video-embed-thumbnail-generator.php:2999
1503
+ msgid ""
1504
+ "Enable if your installed version of FFMPEG is old enough that libx264 "
1505
+ "requires additional configuration to operate (Dreamhost users must turn this "
1506
+ "on). This should help if you can encode WEBM or OGV files but H264/Mobile "
1507
+ "files fail. It could cause newer versions of FFMPEG to fail."
1508
+ msgstr ""
1509
+ "Включете, ако инсталираната версия на FFMPEG е стара и libx264 изисква "
1510
+ "допълнителна кофигураия за да се изпълнява (Потребители на Dreamhost ТРЯБВА "
1511
+ "да включат тази настройка). Това би трябвало да помогне, ако можете да "
1512
+ "кодирате WEBM или OGV файлове, но H264/мобилни файлове се провалят. Може да "
1513
+ "предизвика проблеми при по-нови версии на FFMPEG."
1514
+
1515
+ # @ video-embed-thumbnail-generator
1516
+ #: video-embed-thumbnail-generator.php:3012
1517
+ msgid "Simultaneous encodes."
1518
+ msgstr "едновременни кодирания."
1519
+
1520
+ # @ video-embed-thumbnail-generator
1521
+ #: video-embed-thumbnail-generator.php:3012
1522
+ msgid ""
1523
+ "Increasing the number will allow %1$s to encode more than one file at a "
1524
+ "time, but may lead to %1$s monopolizing system resources."
1525
+ msgstr ""
1526
+ "Увеличаване на стойността ще позволи на %1$s да кодира повече от един файл "
1527
+ "едновременно, но може да доведе до монополизиране на системни ресурси от "
1528
+ "%1$s."
1529
+
1530
+ # @ video-embed-thumbnail-generator
1531
+ #: video-embed-thumbnail-generator.php:3019
1532
+ msgctxt "CPU threads. Might not need translating"
1533
+ msgid "threads"
1534
+ msgstr "нишки"
1535
+
1536
+ # @ video-embed-thumbnail-generator
1537
+ #: video-embed-thumbnail-generator.php:3019
1538
+ msgid ""
1539
+ "Default is 1, which limits encoding speed but prevents encoding from using "
1540
+ "too many system resources. Selecting 0 will allow %1$s to optimize the "
1541
+ "number of threads or you can set the number manually. This may lead to %1$s "
1542
+ "monopolizing system resources."
1543
+ msgstr ""
1544
+ "По подразбиране е 1, което ограничава скоростта на кодиране, но възпира "
1545
+ "кодирането от използване на прекалено много системни ресурси. Избиране на 0 "
1546
+ "ще позволи на %1$s да оптимизира броя нишки или можете да зададете броя "
1547
+ "ръчно. Това може да доведе до монополизиране на системните ресурси от %1$s."
1548
+
1549
+ # @ video-embed-thumbnail-generator
1550
+ #: video-embed-thumbnail-generator.php:3021
1551
+ msgctxt "execute program"
1552
+ msgid "Run"
1553
+ msgstr "Изпълняване"
1554
+
1555
+ # @ video-embed-thumbnail-generator
1556
+ #: video-embed-thumbnail-generator.php:3021
1557
+ msgid ""
1558
+ "Tells %1$s to run at a lower priority to avoid monopolizing system resources."
1559
+ msgstr ""
1560
+ "Казва на %1$s да се изпълни с по-нисък приоритет, за да избегне "
1561
+ "монополизиране на системните ресурси."
1562
+
1563
+ # @ video-embed-thumbnail-generator
1564
+ #: video-embed-thumbnail-generator.php:3055
1565
+ msgid "%1$s sample %2$s encode command"
1566
+ msgstr "%1$s мостра %2$s кодираща команда"
1567
+
1568
+ # @ video-embed-thumbnail-generator
1569
+ #: video-embed-thumbnail-generator.php:3056
1570
+ msgid "%s test output:"
1571
+ msgstr "Тестов резултат от %s :"
1572
+
1573
+ # @ video-embed-thumbnail-generator
1574
+ #: video-embed-thumbnail-generator.php:3056
1575
+ msgid "For help interpreting this output, %s try our Wiki page on Github"
1576
+ msgstr ""
1577
+ "За помощ с интерпретирането на този резултат, %s опитайте нашата Wiki "
1578
+ "страниа в Github"
1579
+
1580
+ # @ video-embed-thumbnail-generator
1581
+ #: video-embed-thumbnail-generator.php:3239
1582
+ msgid ""
1583
+ "%1$s is disabled in PHP settings. You can embed existing videos and make "
1584
+ "thumbnails with compatible browsers, but video encoding will not work. "
1585
+ "Contact your System Administrator to find out if you can enable %1$s."
1586
+ msgstr ""
1587
+ "%1$s е изключен в PHP настройките. Можете да вграждате съществуващи видеа и "
1588
+ "да създавате картинки със съвместими браузъри, но видео кодирането няма да "
1589
+ "работи. Свържете се със системния си администратор, за да разберете как да "
1590
+ "включите %1$s."
1591
+
1592
+ # @ video-embed-thumbnail-generator
1593
+ #: video-embed-thumbnail-generator.php:3243
1594
+ msgid ""
1595
+ "%1$s not found at %2$s. You can embed existing videos and make thumbnails "
1596
+ "with compatible browsers, but video encoding is not possible without %1$s."
1597
+ msgstr ""
1598
+ "%1$s не е намерен в %2$s. Можете да вграждате съществуващи клипове и да "
1599
+ "създавате картинки на видеа със съвместими браузъри, но видео кодирането не "
1600
+ "е възможно без %1$s."
1601
+
1602
+ # @ video-embed-thumbnail-generator
1603
+ #: video-embed-thumbnail-generator.php:3258
1604
+ msgid "Video Embed & Thumbnail Generator settings reset to default values."
1605
+ msgstr ""
1606
+ "Настройките на Video Embed & Thumbnail Generator бяха възстановени до "
1607
+ "стойностите по подразбиране."
1608
+
1609
+ # @ video-embed-thumbnail-generator
1610
+ #: video-embed-thumbnail-generator.php:3269
1611
+ msgid "You must enter a value for the maximum video width."
1612
+ msgstr "Трябва да въведете стойност за максимална ширина на видеата."
1613
+
1614
+ # @ video-embed-thumbnail-generator
1615
+ #: video-embed-thumbnail-generator.php:3273
1616
+ msgid "You must enter a value for the maximum video height."
1617
+ msgstr "Трябва да въведете стойност за максимална височина на видеото."
1618
+
1619
+ # @ video-embed-thumbnail-generator
1620
+ #: video-embed-thumbnail-generator.php:3277
1621
+ msgid "You must enter a value for the maximum gallery video width."
1622
+ msgstr "Трябва да въведете стойност за максималната ширина на видео галериите."
1623
+
1624
+ # @ video-embed-thumbnail-generator
1625
+ #: video-embed-thumbnail-generator.php:3281
1626
+ msgid "You must enter a value for the maximum gallery video height."
1627
+ msgstr "Трябва да въведете стойност за максимална височина на видео галериите."
1628
+
1629
+ # @ video-embed-thumbnail-generator
1630
+ #: video-embed-thumbnail-generator.php:3571
1631
+ msgid "Video Stats"
1632
+ msgstr "Статистики за видеото"
1633
+
1634
+ # @ video-embed-thumbnail-generator
1635
+ #: video-embed-thumbnail-generator.php:3573
1636
+ msgid "%1$s Starts, %2$s Complete Views"
1637
+ msgstr "%1$s пускания, %2$s пълни гледания"
1638
+
1639
+ # @ video-embed-thumbnail-generator
1640
+ #: video-embed-thumbnail-generator.php:3599
1641
+ msgid ""
1642
+ "%1$s not found at %2$s and unable to load video in browser for thumbnail "
1643
+ "generation."
1644
+ msgstr ""
1645
+ "%1$s не беше намерен във %2$s. Неуспешно зареждане на видеото в браузъра, за "
1646
+ "да се генерира картинка на видеото."
1647
+
1648
+ # @ video-embed-thumbnail-generator
1649
+ #: video-embed-thumbnail-generator.php:3674
1650
+ msgctxt "Button text. Implied \"Generate thumbnails\""
1651
+ msgid "Generate"
1652
+ msgstr "Генериране"
1653
+
1654
+ # @ video-embed-thumbnail-generator
1655
+ #: video-embed-thumbnail-generator.php:3675
1656
+ msgctxt "Button text. Implied \"Randomize thumbnail generation\""
1657
+ msgid "Randomize"
1658
+ msgstr "Разбъркване"
1659
+
1660
+ # @ video-embed-thumbnail-generator
1661
+ #: video-embed-thumbnail-generator.php:3676
1662
+ msgid "Force 1st frame thumbnail"
1663
+ msgstr "Налагане на картинка от първия кадър."
1664
+
1665
+ # @ video-embed-thumbnail-generator
1666
+ #: video-embed-thumbnail-generator.php:3678
1667
+ #: video-embed-thumbnail-generator.php:4298
1668
+ msgid "Thumbnail timecode:"
1669
+ msgstr "Код на времето за картинка:"
1670
+
1671
+ # @ video-embed-thumbnail-generator
1672
+ #: video-embed-thumbnail-generator.php:3682
1673
+ msgctxt "Header for thumbnail section"
1674
+ msgid "Thumbnails"
1675
+ msgstr "Картинки"
1676
+
1677
+ # @ video-embed-thumbnail-generator
1678
+ #: video-embed-thumbnail-generator.php:3690
1679
+ #: video-embed-thumbnail-generator.php:4299
1680
+ msgid "Set thumbnail as featured image"
1681
+ msgstr "Задай картинката като картинка на публикацията"
1682
+
1683
+ # @ video-embed-thumbnail-generator
1684
+ #: video-embed-thumbnail-generator.php:3692
1685
+ #: video-embed-thumbnail-generator.php:4304
1686
+ msgid "Thumbnail URL"
1687
+ msgstr "URL адрес на картинката"
1688
+
1689
+ # @ video-embed-thumbnail-generator
1690
+ #: video-embed-thumbnail-generator.php:3694
1691
+ #: video-embed-thumbnail-generator.php:4306
1692
+ msgid "Leave blank to use %sdefault thumbnail"
1693
+ msgstr "Оставете празно, за да използвате %s картинката по подразбиране"
1694
+
1695
+ # @ video-embed-thumbnail-generator
1696
+ #: video-embed-thumbnail-generator.php:3700
1697
+ msgid "Video Embed Dimensions"
1698
+ msgstr "Размер на вграденото видео"
1699
+
1700
+ # @ video-embed-thumbnail-generator
1701
+ #: video-embed-thumbnail-generator.php:3705
1702
+ msgid "Lock to aspect ratio"
1703
+ msgstr "Заключване на съотношението на страните"
1704
+
1705
+ # @ video-embed-thumbnail-generator
1706
+ #: video-embed-thumbnail-generator.php:3706
1707
+ #: video-embed-thumbnail-generator.php:4311
1708
+ msgid "Leave blank to use %sdefault dimensions"
1709
+ msgstr "Оставете празно за %s размери по подразбиране"
1710
+
1711
+ # @ video-embed-thumbnail-generator
1712
+ #: video-embed-thumbnail-generator.php:3711
1713
+ #: video-embed-thumbnail-generator.php:4315
1714
+ msgid "Additional Formats"
1715
+ msgstr "Допълнителни формати"
1716
+
1717
+ # @ video-embed-thumbnail-generator
1718
+ #: video-embed-thumbnail-generator.php:3732
1719
+ msgctxt "captions track"
1720
+ msgid "Track"
1721
+ msgstr "Пътечка"
1722
+
1723
+ # @ video-embed-thumbnail-generator
1724
+ #: video-embed-thumbnail-generator.php:3736
1725
+ msgctxt "two-letter code indicating track's language"
1726
+ msgid "Language code:"
1727
+ msgstr "Код на езика:"
1728
+
1729
+ # @ video-embed-thumbnail-generator
1730
+ #: video-embed-thumbnail-generator.php:3737
1731
+ msgid "Label:"
1732
+ msgstr "Етикет:"
1733
+
1734
+ # @ video-embed-thumbnail-generator
1735
+ #: video-embed-thumbnail-generator.php:3741
1736
+ msgid "Subtitles & Captions"
1737
+ msgstr "Субтитри и надписи"
1738
+
1739
+ # @ video-embed-thumbnail-generator
1740
+ #: video-embed-thumbnail-generator.php:3743
1741
+ msgid "Add track"
1742
+ msgstr "Добавяне на ппътечка"
1743
+
1744
+ # @ video-embed-thumbnail-generator
1745
+ #: video-embed-thumbnail-generator.php:3754
1746
+ msgid "Single Video"
1747
+ msgstr "Самостоятелно видео"
1748
+
1749
+ # @ video-embed-thumbnail-generator
1750
+ #: video-embed-thumbnail-generator.php:3754
1751
+ msgid "Video Gallery"
1752
+ msgstr "Видео галерия"
1753
+
1754
+ # @ video-embed-thumbnail-generator
1755
+ #: video-embed-thumbnail-generator.php:3762
1756
+ msgid "Video Embed Options"
1757
+ msgstr "Настройки за вграждането на видео"
1758
+
1759
+ # @ video-embed-thumbnail-generator
1760
+ #: video-embed-thumbnail-generator.php:3765
1761
+ msgid "Insert title above video"
1762
+ msgstr "Заглавие над видеото"
1763
+
1764
+ # @ video-embed-thumbnail-generator
1765
+ #: video-embed-thumbnail-generator.php:3767
1766
+ msgid "Insert download link below video"
1767
+ msgstr "Връзка за сваляне под видеото"
1768
+
1769
+ # @ video-embed-thumbnail-generator
1770
+ #: video-embed-thumbnail-generator.php:3767
1771
+ msgid "Makes it easier for users to download file."
1772
+ msgstr "Улеснява свалянето на файлове от потребителите."
1773
+
1774
+ # @ video-embed-thumbnail-generator
1775
+ #: video-embed-thumbnail-generator.php:3768
1776
+ msgctxt "verb"
1777
+ msgid "Insert"
1778
+ msgstr "Добавяне"
1779
+
1780
+ # @ video-embed-thumbnail-generator
1781
+ #: video-embed-thumbnail-generator.php:3801
1782
+ msgid "Gallery Settings (all optional)"
1783
+ msgstr "Настройки на галериите (незадължителни)"
1784
+
1785
+ # @ video-embed-thumbnail-generator
1786
+ #: video-embed-thumbnail-generator.php:3803
1787
+ msgid "Thumbnail Width"
1788
+ msgstr "Ширина на картинките"
1789
+
1790
+ # @ video-embed-thumbnail-generator
1791
+ #: video-embed-thumbnail-generator.php:3804
1792
+ msgid "Order By"
1793
+ msgstr "Подреждане по"
1794
+
1795
+ # @ video-embed-thumbnail-generator
1796
+ #: video-embed-thumbnail-generator.php:3805
1797
+ msgid "Sort Order"
1798
+ msgstr "Начин на подреждане"
1799
+
1800
+ # @ video-embed-thumbnail-generator
1801
+ #: video-embed-thumbnail-generator.php:3806
1802
+ msgid "Exclude"
1803
+ msgstr "Премахване"
1804
+
1805
+ # @ video-embed-thumbnail-generator
1806
+ #: video-embed-thumbnail-generator.php:3807
1807
+ msgid "Include"
1808
+ msgstr "Добавяне"
1809
+
1810
+ # @ video-embed-thumbnail-generator
1811
+ #: video-embed-thumbnail-generator.php:3808
1812
+ msgid "Post ID"
1813
+ msgstr "ID на публикацията"
1814
+
1815
+ # @ video-embed-thumbnail-generator
1816
+ #: video-embed-thumbnail-generator.php:3986
1817
+ msgctxt "text appended to newly created thumbnail titles"
1818
+ msgid "thumbnail"
1819
+ msgstr "картинка"
1820
+
1821
+ # @ video-embed-thumbnail-generator
1822
+ #: video-embed-thumbnail-generator.php:4251
1823
+ msgctxt "Title in \"Add Media\" popup sidebar"
1824
+ msgid "Embed Video from URL"
1825
+ msgstr "Вграждане на видео от URL адрес"
1826
+
1827
+ # @ video-embed-thumbnail-generator
1828
+ #: video-embed-thumbnail-generator.php:4280
1829
+ msgid "Video Title"
1830
+ msgstr "Заглавие на видеото"
1831
+
1832
+ # @ video-embed-thumbnail-generator
1833
+ #: video-embed-thumbnail-generator.php:4282
1834
+ msgid "Add an optional header above the video."
1835
+ msgstr "Добавяне на допълнително заглавие над видеото."
1836
+
1837
+ # @ video-embed-thumbnail-generator
1838
+ #: video-embed-thumbnail-generator.php:4287
1839
+ msgid "Specify the URL of the video file."
1840
+ msgstr "Задайте точния URL адрес на видео файла."
1841
+
1842
+ # @ video-embed-thumbnail-generator
1843
+ #: video-embed-thumbnail-generator.php:4291
1844
+ msgid "Thumbnails"
1845
+ msgstr "Картинки"
1846
+
1847
+ # @ video-embed-thumbnail-generator
1848
+ #: video-embed-thumbnail-generator.php:4293
1849
+ msgid "Number of Thumbnails"
1850
+ msgstr "Брой картинки"
1851
+
1852
+ # @ video-embed-thumbnail-generator
1853
+ #: video-embed-thumbnail-generator.php:4296
1854
+ msgid "Force 1st Frame Thumbnail"
1855
+ msgstr "Налагане на картинка от първия кадър"
1856
+
1857
+ # @ video-embed-thumbnail-generator
1858
+ #: video-embed-thumbnail-generator.php:4309
1859
+ msgid "Dimensions"
1860
+ msgstr "Размери"
1861
+
1862
+ # @ video-embed-thumbnail-generator
1863
+ #: video-embed-thumbnail-generator.php:4310
1864
+ msgid "Lock to Aspect Ratio"
1865
+ msgstr "Заключване на съотношението на страните"
1866
+
1867
+ # @ video-embed-thumbnail-generator
1868
+ #: video-embed-thumbnail-generator.php:4321
1869
+ msgid "Generate Download Link Below Video"
1870
+ msgstr "Генериране на линк за сваляне под видеото"
1871
+
1872
+ # @ video-embed-thumbnail-generator
1873
+ #: video-embed-thumbnail-generator.php:4321
1874
+ msgid "Makes it easier for users to download video file"
1875
+ msgstr "Улеснява свалянето на видео файлове за потребителите"
1876
+
1877
+ # @ video-embed-thumbnail-generator
1878
+ #: video-embed-thumbnail-generator.php:4326
1879
+ msgid "Insert into Post"
1880
+ msgstr "Вкарване в публикацията"
1881
+
1882
+ # @ video-embed-thumbnail-generator
1883
+ #: video-embed-thumbnail-generator.php:4380
1884
+ msgctxt "example video"
1885
+ msgid "Sample Video"
1886
+ msgstr "Примерно видео"
1887
+
1888
+ # @ video-embed-thumbnail-generator
1889
+ #: video-embed-thumbnail-generator.php:4381
1890
+ msgid "Sample Embed Code"
1891
+ msgstr "Примерен код за вграждане"
1892
+
1893
+ # @ video-embed-thumbnail-generator
1894
+ #: video-embed-thumbnail-generator.php:4382
1895
+ msgid ""
1896
+ "If text is entered in the attachment's caption field it is displayed here "
1897
+ "automatically."
1898
+ msgstr ""
1899
+ "Ако в полето за надпис към приложения файл е въведен текст, той се показва "
1900
+ "тук автоматично."
1901
+
1902
+ # @ video-embed-thumbnail-generator
1903
+ #: video-embed-thumbnail-generator.php:4608
1904
+ #: video-embed-thumbnail-generator.php:4746
1905
+ msgid "Can't open movie file."
1906
+ msgstr "Видео файлът не може да бъде отворен."
1907
+
1908
+ # @ video-embed-thumbnail-generator
1909
+ #: video-embed-thumbnail-generator.php:4724
1910
+ msgid "%1$s updated in existing queue entry in position %2$s."
1911
+ msgstr "%1$s беше обновен в съществуващата опашка на позиция %2$s."
1912
+
1913
+ # @ video-embed-thumbnail-generator
1914
+ #: video-embed-thumbnail-generator.php:4725
1915
+ msgid "Video is already queued in position %s."
1916
+ msgstr "Видеото вече е в опашката на позиция %s."
1917
+
1918
+ # @ video-embed-thumbnail-generator
1919
+ #: video-embed-thumbnail-generator.php:4732
1920
+ msgid "Starting"
1921
+ msgstr "Стартиране"
1922
+
1923
+ # @ video-embed-thumbnail-generator
1924
+ #: video-embed-thumbnail-generator.php:4733
1925
+ msgid "%1$s added to queue in position %2$s."
1926
+ msgstr "%1$s беше добавен в опашката на позиция %2$s."
1927
+
1928
+ # @ video-embed-thumbnail-generator
1929
+ #: video-embed-thumbnail-generator.php:4737
1930
+ msgid "Nothing to encode."
1931
+ msgstr "Няма нищо за кодиране."
1932
+
1933
+ # @ video-embed-thumbnail-generator
1934
+ #: video-embed-thumbnail-generator.php:4799
1935
+ msgid ""
1936
+ "Error: %1$s not found. Verify that %1$s is installed at %2$s and check the "
1937
+ "%3$sapplication path plugin setting"
1938
+ msgstr ""
1939
+ "Грешка: %1$s не бе намерен. Проверете отново дали %1$s е инсталиран във %2$s "
1940
+ "и проверете настройката за път до приложението в %3$s."
1941
+
1942
+ # @ video-embed-thumbnail-generator
1943
+ #: video-embed-thumbnail-generator.php:4902
1944
+ msgid "%s already encoded"
1945
+ msgstr "%s е вече кодиран"
1946
+
1947
+ # @ video-embed-thumbnail-generator
1948
+ #: video-embed-thumbnail-generator.php:4906
1949
+ msgid "%s missing library libx264 required for H.264 encoding"
1950
+ msgstr "%s няма libx264 библиотека, която е нужда на H.264 кодиране"
1951
+
1952
+ # @ video-embed-thumbnail-generator
1953
+ #: video-embed-thumbnail-generator.php:4911
1954
+ msgid "or"
1955
+ msgstr "или"
1956
+
1957
+ # @ video-embed-thumbnail-generator
1958
+ #: video-embed-thumbnail-generator.php:4912
1959
+ msgid ""
1960
+ "and missing an AAC encoding library. Please install and enable libx264 and %s"
1961
+ msgstr ""
1962
+ "и липсва AAC библиотека за кодиране. Инсталирайте и включете libx264 и %s"
1963
+
1964
+ # @ video-embed-thumbnail-generator
1965
+ #: video-embed-thumbnail-generator.php:4916
1966
+ #: video-embed-thumbnail-generator.php:4934
1967
+ msgid "Missing libraries"
1968
+ msgstr "Липсващи библиотеки"
1969
+
1970
+ # @ video-embed-thumbnail-generator
1971
+ #: video-embed-thumbnail-generator.php:4925
1972
+ msgid "Encoding %s"
1973
+ msgstr "Кодиране на %s"
1974
+
1975
+ # @ video-embed-thumbnail-generator
1976
+ #: video-embed-thumbnail-generator.php:4931
1977
+ msgid "%1$s missing library %2$s required for %3$s encoding."
1978
+ msgstr "%1$s липсваща библиотека %2$s, нужна за кодирането на %3$s."
1979
+
1980
+ # @ video-embed-thumbnail-generator
1981
+ #: video-embed-thumbnail-generator.php:4937
1982
+ msgid "%s already encoded."
1983
+ msgstr "%s е вече кодирано."
1984
+
1985
+ # @ video-embed-thumbnail-generator
1986
+ #: video-embed-thumbnail-generator.php:4950
1987
+ msgid "Error: Command 'escapeshellcmd' is disabled on your server."
1988
+ msgstr "Грешка: Командата 'escapeshellcmd' е изключена на сървъра Ви."
1989
+
1990
+ # @ video-embed-thumbnail-generator
1991
+ #: video-embed-thumbnail-generator.php:5135
1992
+ #: video-embed-thumbnail-generator.php:5145
1993
+ msgid "Encoding"
1994
+ msgstr "Кодиране"
1995
+
1996
+ # @ video-embed-thumbnail-generator
1997
+ #: video-embed-thumbnail-generator.php:5138
1998
+ msgid "Cancel"
1999
+ msgstr "Отказ"
2000
+
2001
+ # @ video-embed-thumbnail-generator
2002
+ #: video-embed-thumbnail-generator.php:5141
2003
+ msgid "Elapsed:"
2004
+ msgstr "Изминало време:"
2005
+
2006
+ # @ video-embed-thumbnail-generator
2007
+ #: video-embed-thumbnail-generator.php:5141
2008
+ msgid "Remaining:"
2009
+ msgstr "Оставащо време:"
2010
+
2011
+ # @ video-embed-thumbnail-generator
2012
+ #: video-embed-thumbnail-generator.php:5141
2013
+ msgctxt "Frames per second"
2014
+ msgid "FPS:"
2015
+ msgstr "FPS:"
2016
+
2017
+ # @ video-embed-thumbnail-generator
2018
+ #: video-embed-thumbnail-generator.php:5218
2019
+ #: video-embed-thumbnail-generator.php:5247
2020
+ msgid "Encoding Complete"
2021
+ msgstr "Кодирането е завършено"
2022
+
2023
+ # @ video-embed-thumbnail-generator
2024
+ #: video-embed-thumbnail-generator.php:5257
2025
+ msgid "Encoding was canceled."
2026
+ msgstr "Кодиранет беше прекъснато."
2027
+
2028
+ # @ video-embed-thumbnail-generator
2029
+ #: video-embed-thumbnail-generator.php:5268
2030
+ msgid "No log file"
2031
+ msgstr "Няма лог файл"
2032
+
2033
+ # @ video-embed-thumbnail-generator
2034
+ #: video-embed-thumbnail-generator.php:5275
2035
+ msgid "Error:"
2036
+ msgstr "Грешка:"
2037
+
2038
+ # @ video-embed-thumbnail-generator
2039
+ #: video-embed-thumbnail-generator.php:5287
2040
+ msgid "Waiting..."
2041
+ msgstr "Изчакване..."
2042
+
2043
+ # @ video-embed-thumbnail-generator
2044
+ #: video-embed-thumbnail-generator.php:5450
2045
+ msgid "Fixing moov atom for streaming"
2046
+ msgstr "Поправяне на 'moov атоми' за стройминг"
2047
+
2048
+ # @ video-embed-thumbnail-generator
2049
+ #: video-embed-thumbnail-generator.php:5942
2050
+ msgid "Video Embed & Thumbnail Generator Shortcode Reference"
2051
+ msgstr "Video Embed & Thumbnail Generator Shortcode Reference"
2052
+
2053
+ # @ video-embed-thumbnail-generator
2054
+ #: video-embed-thumbnail-generator.php:5943
2055
+ msgid "Use these optional attributes in the [KGVID] shortcode:"
2056
+ msgstr "Използвайте тези допълнителни атрибути към [KGVID] шорткода:"
2057
+
2058
+ # @ video-embed-thumbnail-generator
2059
+ #: video-embed-thumbnail-generator.php:5944
2060
+ msgid "video attachment ID (instead of using a URL)."
2061
+ msgstr "ID на видео прикачения файл (вместо URL адрес)."
2062
+
2063
+ # @ video-embed-thumbnail-generator
2064
+ #: video-embed-thumbnail-generator.php:5945
2065
+ msgid "number of attached videos to display if no URL or ID is given."
2066
+ msgstr ""
2067
+ "брой на прикачени видеа, които да се покажат, ако не е въведен URL адрес или "
2068
+ "ID."
2069
+
2070
+ # @ video-embed-thumbnail-generator
2071
+ #: video-embed-thumbnail-generator.php:5946
2072
+ msgid "criteria for sorting attached videos if no URL or ID is given."
2073
+ msgstr ""
2074
+ "критерии за подреждане на прикачените видеа, ако не е въведен URL адрес или "
2075
+ "ID."
2076
+
2077
+ # @ video-embed-thumbnail-generator
2078
+ #: video-embed-thumbnail-generator.php:5947
2079
+ msgid "sort order."
2080
+ msgstr "начин на подреждане."
2081
+
2082
+ # @ video-embed-thumbnail-generator
2083
+ #: video-embed-thumbnail-generator.php:5948
2084
+ msgid "sets the thumbnail."
2085
+ msgstr "задава картинката."
2086
+
2087
+ # @ video-embed-thumbnail-generator
2088
+ #: video-embed-thumbnail-generator.php:5949
2089
+ msgid "sets the image shown when the video ends."
2090
+ msgstr "задава изображението, показващо се след края на видеото."
2091
+
2092
+ # @ video-embed-thumbnail-generator
2093
+ #: video-embed-thumbnail-generator.php:5953
2094
+ msgid "allow other content on the same line as the video"
2095
+ msgstr "разрешаване на друго съдържание(напр. текст) на същия ред с видеото"
2096
+
2097
+ # @ video-embed-thumbnail-generator
2098
+ #: video-embed-thumbnail-generator.php:5954
2099
+ msgid "pre-sets the volume for unusually loud videos. Value between 0 and 1."
2100
+ msgstr ""
2101
+ "предефинира силата на звука за необичайно шумни клипове. Стойността е между "
2102
+ "0 и 1."
2103
+
2104
+ # @ video-embed-thumbnail-generator
2105
+ #: video-embed-thumbnail-generator.php:5955
2106
+ msgid ""
2107
+ "sets the controlbar position. \"Floating\" option only works with Strobe "
2108
+ "Media Playback."
2109
+ msgstr ""
2110
+ "задава позицията на контролната лента. \"Плаващо\" работи само в 'Strobe' "
2111
+ "медия плеърът."
2112
+
2113
+ # @ video-embed-thumbnail-generator
2114
+ #: video-embed-thumbnail-generator.php:5958
2115
+ #: video-embed-thumbnail-generator.php:5959
2116
+ msgid "or %s to disable."
2117
+ msgstr "или %s за изключване."
2118
+
2119
+ # @ video-embed-thumbnail-generator
2120
+ #: video-embed-thumbnail-generator.php:5960
2121
+ msgid ""
2122
+ "changes text displayed in the embed code overlay in order to provide a "
2123
+ "custom method for embedding a video or %s to disable."
2124
+ msgstr ""
2125
+ "променя текста в полето за код за вграждане, давайки възможност за "
2126
+ "персонализиран метод за вграждане на видеа или %s за изключване."
2127
+
2128
+ # @ video-embed-thumbnail-generator
2129
+ #: video-embed-thumbnail-generator.php:5961
2130
+ msgid "turns the view count on or off."
2131
+ msgstr "Включва/Изключва показването на брояча на гледания."
2132
+
2133
+ # @ video-embed-thumbnail-generator
2134
+ #: video-embed-thumbnail-generator.php:5962
2135
+ msgid ""
2136
+ "text that is displayed below the video (not subtitles or closed captioning)"
2137
+ msgstr "текст, показващ се под видеото (не субтитри/надписи)."
2138
+
2139
+ # @ video-embed-thumbnail-generator
2140
+ #: video-embed-thumbnail-generator.php:5963
2141
+ msgid "Used for metadata only."
2142
+ msgstr "Използва се единствено за метаданни."
2143
+
2144
+ # @ video-embed-thumbnail-generator
2145
+ #: video-embed-thumbnail-generator.php:5964
2146
+ msgid ""
2147
+ "generates a link below the video to make it easier for users to save the "
2148
+ "video file to their computers."
2149
+ msgstr ""
2150
+ "генерира връзка под видето, улесняваща свалянето на клипове от потребителите."
2151
+
2152
+ # @ video-embed-thumbnail-generator
2153
+ #: video-embed-thumbnail-generator.php:5965
2154
+ msgid "allow or disable right-clicking on the video player."
2155
+ msgstr "позволяване или забраняване на кликане с десен бутон върху видеото."
2156
+
2157
+ # @ video-embed-thumbnail-generator
2158
+ #: video-embed-thumbnail-generator.php:5966
2159
+ msgid "allow or disable responsive resizing."
2160
+ msgstr "позволяване или забраняване на адаптивно променяне на размера."
2161
+
2162
+ # @ video-embed-thumbnail-generator
2163
+ #: video-embed-thumbnail-generator.php:5968
2164
+ msgid "These options will add a subtitle/caption track."
2165
+ msgstr "Тези настройки ще добавят субтитри/надписи."
2166
+
2167
+ # @ video-embed-thumbnail-generator
2168
+ #: video-embed-thumbnail-generator.php:5969
2169
+ msgid "URL of the WebVTT file."
2170
+ msgstr "URL адрес на WebVTT файла."
2171
+
2172
+ # @ video-embed-thumbnail-generator
2173
+ #: video-embed-thumbnail-generator.php:5971
2174
+ msgid "the track's two-character language code (en, fr, es, etc)"
2175
+ msgstr "езиковият код на пътечката(два символа, пр. en, fr, es и тн.)"
2176
+
2177
+ # @ video-embed-thumbnail-generator
2178
+ #: video-embed-thumbnail-generator.php:5972
2179
+ msgid "text that will be shown to the user when selecting the track."
2180
+ msgstr "текстът, който ще се показва на потребителите, когато избират пътечка."
2181
+
2182
+ # @ video-embed-thumbnail-generator
2183
+ #: video-embed-thumbnail-generator.php:5974
2184
+ msgid "These options will only affect Video.js playback"
2185
+ msgstr "Тези настройки се отнасят само за възпроизвеждане чрез Video.js"
2186
+
2187
+ # @ video-embed-thumbnail-generator
2188
+ #: video-embed-thumbnail-generator.php:5975
2189
+ #: video-embed-thumbnail-generator.php:5984
2190
+ msgid "Completely change the look of the video player. %sInstructions here."
2191
+ msgstr "Променете напълно вида на видео плеърът. %sИнструкции."
2192
+
2193
+ # @ video-embed-thumbnail-generator
2194
+ #: video-embed-thumbnail-generator.php:5977
2195
+ msgid ""
2196
+ "These options will only affect Flash playback in Strobe Media Playback video "
2197
+ "elements. They will have no effect on other players."
2198
+ msgstr ""
2199
+ "Тези настройки се отнасят само за изпълняване на Flash съдържание във Strobe "
2200
+ "Media playback видео плеър. Няма да има ефект върху други плеъри."
2201
+
2202
+ # @ video-embed-thumbnail-generator
2203
+ #: video-embed-thumbnail-generator.php:5978
2204
+ msgid "specify whether to autohide the control bar after a few seconds."
2205
+ msgstr ""
2206
+ "изберете дали контролната лента да се скрива автоматично след няколко "
2207
+ "секунди."
2208
+
2209
+ # @ video-embed-thumbnail-generator
2210
+ #: video-embed-thumbnail-generator.php:5979
2211
+ msgid "turns the big play button overlay in the middle of the video on or off."
2212
+ msgstr "Включва/изключва големият бутон за пускане в средата на видеото."
2213
+
2214
+ # @ video-embed-thumbnail-generator
2215
+ #: video-embed-thumbnail-generator.php:5980
2216
+ msgid "I honestly don't know what this is for."
2217
+ msgstr "Честно казано, нямам идея за какво е това."
2218
+
2219
+ # @ video-embed-thumbnail-generator
2220
+ #: video-embed-thumbnail-generator.php:5981
2221
+ msgid ""
2222
+ "If the video display size isn't the same as the video file, this determines "
2223
+ "how the video will be scaled."
2224
+ msgstr ""
2225
+ "Как да бъде преоразмерено видеото, ако размера на плеъра не е същия като "
2226
+ "размера на оригиналния видео файл."
2227
+
2228
+ # @ video-embed-thumbnail-generator
2229
+ #: video-embed-thumbnail-generator.php:5982
2230
+ msgid "#rrggbb"
2231
+ msgstr "#RRGGBB"
2232
+
2233
+ # @ video-embed-thumbnail-generator
2234
+ #: video-embed-thumbnail-generator.php:5982
2235
+ msgid "set the background color to whatever hex code you want."
2236
+ msgstr "сменете цвета на фона"
2237
+
2238
+ # @ video-embed-thumbnail-generator
2239
+ #: video-embed-thumbnail-generator.php:5983
2240
+ msgid "Lets you specify all these flashvars in an XML file."
2241
+ msgstr "Позволява Ви да зададете всички тези променливи в XML файл."
2242
+
2243
+ # @ video-embed-thumbnail-generator
2244
+ #: video-embed-thumbnail-generator.php:5986
2245
+ msgid ""
2246
+ "These options are available for video galleries (options work the same as "
2247
+ "standard WordPress image galleries)"
2248
+ msgstr ""
2249
+ "Тези настройки са налични за видео галериите (работят по същия начин както "
2250
+ "обикновените WordPress галерии)"
2251
+
2252
+ # @ video-embed-thumbnail-generator
2253
+ #: video-embed-thumbnail-generator.php:5987
2254
+ msgid "turns on the gallery"
2255
+ msgstr "включва галерията"
2256
+
2257
+ # @ video-embed-thumbnail-generator
2258
+ #: video-embed-thumbnail-generator.php:5988
2259
+ msgid "width in pixels to display gallery thumbnails"
2260
+ msgstr "ширина в пиксели на картинките в галериите"
2261
+
2262
+ # @ video-embed-thumbnail-generator
2263
+ #: video-embed-thumbnail-generator.php:5989
2264
+ msgid ""
2265
+ "comma separated video attachment IDs. Excludes the videos from the gallery."
2266
+ msgstr ""
2267
+ "ID-та на видео файлове, разделени със запетая. Изключва зададените видеа от "
2268
+ "галерията."
2269
+
2270
+ # @ video-embed-thumbnail-generator
2271
+ #: video-embed-thumbnail-generator.php:5990
2272
+ msgid ""
2273
+ "comma separated video attachment IDs. Includes only these videos in the "
2274
+ "gallery. Please note that include and exclude cannot be used together."
2275
+ msgstr ""
2276
+ "ID-та на видео файлове, разделени със запетая. Включва само избраните видеа "
2277
+ "в галерията. Имайте предвид че 'включване' и 'изключване' не могат да бъдат "
2278
+ "използвани заедно."
2279
+
2280
+ # @ video-embed-thumbnail-generator
2281
+ #: video-embed-thumbnail-generator.php:5991
2282
+ msgid "criteria for sorting the gallery"
2283
+ msgstr "критерий за сортиране на галерията"
2284
+
2285
+ # @ video-embed-thumbnail-generator
2286
+ #: video-embed-thumbnail-generator.php:5992
2287
+ msgid "sort order"
2288
+ msgstr "начин на подреждане"
2289
+
2290
+ # @ video-embed-thumbnail-generator
2291
+ #: video-embed-thumbnail-generator.php:5993
2292
+ msgid ""
2293
+ "post ID to display a gallery made up of videos associated with a different "
2294
+ "post."
2295
+ msgstr ""
2296
+ "ID на публикация, която да съдържа галерия, изградена от видеа, асоцирани с "
2297
+ "различна публикация. "
2298
+
2299
+ # @ video-embed-thumbnail-generator
2300
+ #: video-embed-thumbnail-generator.php:5994
2301
+ msgid ""
2302
+ "either close the pop-up or start playing the next video when the current "
2303
+ "video finishes playing."
2304
+ msgstr ""
2305
+ "Затворете изскачащия прозорец или изпълнете следващото видео след като "
2306
+ "възпроизвеждането завърши."
2307
+
2308
+ #. Plugin URI of the plugin/theme
2309
+ msgid ""
2310
+ "http://www.kylegilman.net/2011/01/18/video-embed-thumbnail-generator-"
2311
+ "wordpress-plugin/"
2312
+ msgstr ""
2313
+ "http://www.kylegilman.net/2011/01/18/video-embed-thumbnail-generator-"
2314
+ "wordpress-plugin/"
2315
+
2316
+ #. Description of the plugin/theme
2317
+ msgid ""
2318
+ "Generates thumbnails, HTML5-compliant videos, and embed codes for locally "
2319
+ "hosted videos. Requires FFMPEG or LIBAV for encoding."
2320
+ msgstr ""
2321
+ "Генерира картинки, HTML5-съвместими видеа и кодове за вграждане за локални "
2322
+ "клипове. Нуждае се от FFMPEG или LIBAV за кодиране."
2323
+
2324
+ #. Author of the plugin/theme
2325
+ msgid "Kyle Gilman"
2326
+ msgstr "Kyle Gilman"
2327
+
2328
+ #. Author URI of the plugin/theme
2329
+ msgid "http://www.kylegilman.net/"
2330
+ msgstr "http://www.kylegilman.net/"
2331
+
2332
+ # @ Settings page title in admin sidebar
2333
+ #~ msgctxt "Settings page title in admin sidebar"
2334
+ #~ msgid "Video Embed & Thumbnail Generator"
2335
+ #~ msgstr "Video Embed & Thumbnail Generator"
2336
+
2337
+ #~ msgid "Super Admins only:"
2338
+ #~ msgstr "Само за супер администратори:"
2339
+
2340
+ # @ video-embed-thumbnail-generator
2341
+ #~ msgctxt "FFMPEG settings tab"
2342
+ #~ msgid "%s settings tab."
2343
+ #~ msgstr "Раздел с настройки за %s."
2344
+
2345
+ # @ video-embed-thumbnail-generator
2346
+ #~ msgid "Match plugin settings"
2347
+ #~ msgstr "Копирай настройките на разширението"
2348
+
2349
+ # @ video-embed-thumbnail-generator
2350
+ #~ msgid "WordPress default"
2351
+ #~ msgstr "По подразбиране на WordPress"
2352
+
2353
+ # @ video-embed-thumbnail-generator
2354
+ #~ msgid "Error message:"
2355
+ #~ msgstr "Съобщение за грешка:"
license.txt CHANGED
@@ -1,278 +1,278 @@
1
- GNU GENERAL PUBLIC LICENSE
2
- Version 2, June 1991
3
-
4
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6
- Everyone is permitted to copy and distribute verbatim copies
7
- of this license document, but changing it is not allowed.
8
-
9
- Preamble
10
-
11
- The licenses for most software are designed to take away your
12
- freedom to share and change it. By contrast, the GNU General Public
13
- License is intended to guarantee your freedom to share and change free
14
- software--to make sure the software is free for all its users. This
15
- General Public License applies to most of the Free Software
16
- Foundation's software and to any other program whose authors commit to
17
- using it. (Some other Free Software Foundation software is covered by
18
- the GNU Lesser General Public License instead.) You can apply it to
19
- your programs, too.
20
-
21
- When we speak of free software, we are referring to freedom, not
22
- price. Our General Public Licenses are designed to make sure that you
23
- have the freedom to distribute copies of free software (and charge for
24
- this service if you wish), that you receive source code or can get it
25
- if you want it, that you can change the software or use pieces of it
26
- in new free programs; and that you know you can do these things.
27
-
28
- To protect your rights, we need to make restrictions that forbid
29
- anyone to deny you these rights or to ask you to surrender the rights.
30
- These restrictions translate to certain responsibilities for you if you
31
- distribute copies of the software, or if you modify it.
32
-
33
- For example, if you distribute copies of such a program, whether
34
- gratis or for a fee, you must give the recipients all the rights that
35
- you have. You must make sure that they, too, receive or can get the
36
- source code. And you must show them these terms so they know their
37
- rights.
38
-
39
- We protect your rights with two steps: (1) copyright the software, and
40
- (2) offer you this license which gives you legal permission to copy,
41
- distribute and/or modify the software.
42
-
43
- Also, for each author's protection and ours, we want to make certain
44
- that everyone understands that there is no warranty for this free
45
- software. If the software is modified by someone else and passed on, we
46
- want its recipients to know that what they have is not the original, so
47
- that any problems introduced by others will not reflect on the original
48
- authors' reputations.
49
-
50
- Finally, any free program is threatened constantly by software
51
- patents. We wish to avoid the danger that redistributors of a free
52
- program will individually obtain patent licenses, in effect making the
53
- program proprietary. To prevent this, we have made it clear that any
54
- patent must be licensed for everyone's free use or not licensed at all.
55
-
56
- The precise terms and conditions for copying, distribution and
57
- modification follow.
58
-
59
- GNU GENERAL PUBLIC LICENSE
60
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
-
62
- 0. This License applies to any program or other work which contains
63
- a notice placed by the copyright holder saying it may be distributed
64
- under the terms of this General Public License. The "Program", below,
65
- refers to any such program or work, and a "work based on the Program"
66
- means either the Program or any derivative work under copyright law:
67
- that is to say, a work containing the Program or a portion of it,
68
- either verbatim or with modifications and/or translated into another
69
- language. (Hereinafter, translation is included without limitation in
70
- the term "modification".) Each licensee is addressed as "you".
71
-
72
- Activities other than copying, distribution and modification are not
73
- covered by this License; they are outside its scope. The act of
74
- running the Program is not restricted, and the output from the Program
75
- is covered only if its contents constitute a work based on the
76
- Program (independent of having been made by running the Program).
77
- Whether that is true depends on what the Program does.
78
-
79
- 1. You may copy and distribute verbatim copies of the Program's
80
- source code as you receive it, in any medium, provided that you
81
- conspicuously and appropriately publish on each copy an appropriate
82
- copyright notice and disclaimer of warranty; keep intact all the
83
- notices that refer to this License and to the absence of any warranty;
84
- and give any other recipients of the Program a copy of this License
85
- along with the Program.
86
-
87
- You may charge a fee for the physical act of transferring a copy, and
88
- you may at your option offer warranty protection in exchange for a fee.
89
-
90
- 2. You may modify your copy or copies of the Program or any portion
91
- of it, thus forming a work based on the Program, and copy and
92
- distribute such modifications or work under the terms of Section 1
93
- above, provided that you also meet all of these conditions:
94
-
95
- a) You must cause the modified files to carry prominent notices
96
- stating that you changed the files and the date of any change.
97
-
98
- b) You must cause any work that you distribute or publish, that in
99
- whole or in part contains or is derived from the Program or any
100
- part thereof, to be licensed as a whole at no charge to all third
101
- parties under the terms of this License.
102
-
103
- c) If the modified program normally reads commands interactively
104
- when run, you must cause it, when started running for such
105
- interactive use in the most ordinary way, to print or display an
106
- announcement including an appropriate copyright notice and a
107
- notice that there is no warranty (or else, saying that you provide
108
- a warranty) and that users may redistribute the program under
109
- these conditions, and telling the user how to view a copy of this
110
- License. (Exception: if the Program itself is interactive but
111
- does not normally print such an announcement, your work based on
112
- the Program is not required to print an announcement.)
113
-
114
- These requirements apply to the modified work as a whole. If
115
- identifiable sections of that work are not derived from the Program,
116
- and can be reasonably considered independent and separate works in
117
- themselves, then this License, and its terms, do not apply to those
118
- sections when you distribute them as separate works. But when you
119
- distribute the same sections as part of a whole which is a work based
120
- on the Program, the distribution of the whole must be on the terms of
121
- this License, whose permissions for other licensees extend to the
122
- entire whole, and thus to each and every part regardless of who wrote it.
123
-
124
- Thus, it is not the intent of this section to claim rights or contest
125
- your rights to work written entirely by you; rather, the intent is to
126
- exercise the right to control the distribution of derivative or
127
- collective works based on the Program.
128
-
129
- In addition, mere aggregation of another work not based on the Program
130
- with the Program (or with a work based on the Program) on a volume of
131
- a storage or distribution medium does not bring the other work under
132
- the scope of this License.
133
-
134
- 3. You may copy and distribute the Program (or a work based on it,
135
- under Section 2) in object code or executable form under the terms of
136
- Sections 1 and 2 above provided that you also do one of the following:
137
-
138
- a) Accompany it with the complete corresponding machine-readable
139
- source code, which must be distributed under the terms of Sections
140
- 1 and 2 above on a medium customarily used for software interchange; or,
141
-
142
- b) Accompany it with a written offer, valid for at least three
143
- years, to give any third party, for a charge no more than your
144
- cost of physically performing source distribution, a complete
145
- machine-readable copy of the corresponding source code, to be
146
- distributed under the terms of Sections 1 and 2 above on a medium
147
- customarily used for software interchange; or,
148
-
149
- c) Accompany it with the information you received as to the offer
150
- to distribute corresponding source code. (This alternative is
151
- allowed only for noncommercial distribution and only if you
152
- received the program in object code or executable form with such
153
- an offer, in accord with Subsection b above.)
154
-
155
- The source code for a work means the preferred form of the work for
156
- making modifications to it. For an executable work, complete source
157
- code means all the source code for all modules it contains, plus any
158
- associated interface definition files, plus the scripts used to
159
- control compilation and installation of the executable. However, as a
160
- special exception, the source code distributed need not include
161
- anything that is normally distributed (in either source or binary
162
- form) with the major components (compiler, kernel, and so on) of the
163
- operating system on which the executable runs, unless that component
164
- itself accompanies the executable.
165
-
166
- If distribution of executable or object code is made by offering
167
- access to copy from a designated place, then offering equivalent
168
- access to copy the source code from the same place counts as
169
- distribution of the source code, even though third parties are not
170
- compelled to copy the source along with the object code.
171
-
172
- 4. You may not copy, modify, sublicense, or distribute the Program
173
- except as expressly provided under this License. Any attempt
174
- otherwise to copy, modify, sublicense or distribute the Program is
175
- void, and will automatically terminate your rights under this License.
176
- However, parties who have received copies, or rights, from you under
177
- this License will not have their licenses terminated so long as such
178
- parties remain in full compliance.
179
-
180
- 5. You are not required to accept this License, since you have not
181
- signed it. However, nothing else grants you permission to modify or
182
- distribute the Program or its derivative works. These actions are
183
- prohibited by law if you do not accept this License. Therefore, by
184
- modifying or distributing the Program (or any work based on the
185
- Program), you indicate your acceptance of this License to do so, and
186
- all its terms and conditions for copying, distributing or modifying
187
- the Program or works based on it.
188
-
189
- 6. Each time you redistribute the Program (or any work based on the
190
- Program), the recipient automatically receives a license from the
191
- original licensor to copy, distribute or modify the Program subject to
192
- these terms and conditions. You may not impose any further
193
- restrictions on the recipients' exercise of the rights granted herein.
194
- You are not responsible for enforcing compliance by third parties to
195
- this License.
196
-
197
- 7. If, as a consequence of a court judgment or allegation of patent
198
- infringement or for any other reason (not limited to patent issues),
199
- conditions are imposed on you (whether by court order, agreement or
200
- otherwise) that contradict the conditions of this License, they do not
201
- excuse you from the conditions of this License. If you cannot
202
- distribute so as to satisfy simultaneously your obligations under this
203
- License and any other pertinent obligations, then as a consequence you
204
- may not distribute the Program at all. For example, if a patent
205
- license would not permit royalty-free redistribution of the Program by
206
- all those who receive copies directly or indirectly through you, then
207
- the only way you could satisfy both it and this License would be to
208
- refrain entirely from distribution of the Program.
209
-
210
- If any portion of this section is held invalid or unenforceable under
211
- any particular circumstance, the balance of the section is intended to
212
- apply and the section as a whole is intended to apply in other
213
- circumstances.
214
-
215
- It is not the purpose of this section to induce you to infringe any
216
- patents or other property right claims or to contest validity of any
217
- such claims; this section has the sole purpose of protecting the
218
- integrity of the free software distribution system, which is
219
- implemented by public license practices. Many people have made
220
- generous contributions to the wide range of software distributed
221
- through that system in reliance on consistent application of that
222
- system; it is up to the author/donor to decide if he or she is willing
223
- to distribute software through any other system and a licensee cannot
224
- impose that choice.
225
-
226
- This section is intended to make thoroughly clear what is believed to
227
- be a consequence of the rest of this License.
228
-
229
- 8. If the distribution and/or use of the Program is restricted in
230
- certain countries either by patents or by copyrighted interfaces, the
231
- original copyright holder who places the Program under this License
232
- may add an explicit geographical distribution limitation excluding
233
- those countries, so that distribution is permitted only in or among
234
- countries not thus excluded. In such case, this License incorporates
235
- the limitation as if written in the body of this License.
236
-
237
- 9. The Free Software Foundation may publish revised and/or new versions
238
- of the General Public License from time to time. Such new versions will
239
- be similar in spirit to the present version, but may differ in detail to
240
- address new problems or concerns.
241
-
242
- Each version is given a distinguishing version number. If the Program
243
- specifies a version number of this License which applies to it and "any
244
- later version", you have the option of following the terms and conditions
245
- either of that version or of any later version published by the Free
246
- Software Foundation. If the Program does not specify a version number of
247
- this License, you may choose any version ever published by the Free Software
248
- Foundation.
249
-
250
- 10. If you wish to incorporate parts of the Program into other free
251
- programs whose distribution conditions are different, write to the author
252
- to ask for permission. For software which is copyrighted by the Free
253
- Software Foundation, write to the Free Software Foundation; we sometimes
254
- make exceptions for this. Our decision will be guided by the two goals
255
- of preserving the free status of all derivatives of our free software and
256
- of promoting the sharing and reuse of software generally.
257
-
258
- NO WARRANTY
259
-
260
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
- FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262
- OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
- PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
- OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266
- TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267
- PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
- REPAIR OR CORRECTION.
269
-
270
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
- WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
- REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
- INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
- OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
- TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
- YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
- PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
- POSSIBILITY OF SUCH DAMAGES.
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 2, June 1991
3
+
4
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6
+ Everyone is permitted to copy and distribute verbatim copies
7
+ of this license document, but changing it is not allowed.
8
+
9
+ Preamble
10
+
11
+ The licenses for most software are designed to take away your
12
+ freedom to share and change it. By contrast, the GNU General Public
13
+ License is intended to guarantee your freedom to share and change free
14
+ software--to make sure the software is free for all its users. This
15
+ General Public License applies to most of the Free Software
16
+ Foundation's software and to any other program whose authors commit to
17
+ using it. (Some other Free Software Foundation software is covered by
18
+ the GNU Lesser General Public License instead.) You can apply it to
19
+ your programs, too.
20
+
21
+ When we speak of free software, we are referring to freedom, not
22
+ price. Our General Public Licenses are designed to make sure that you
23
+ have the freedom to distribute copies of free software (and charge for
24
+ this service if you wish), that you receive source code or can get it
25
+ if you want it, that you can change the software or use pieces of it
26
+ in new free programs; and that you know you can do these things.
27
+
28
+ To protect your rights, we need to make restrictions that forbid
29
+ anyone to deny you these rights or to ask you to surrender the rights.
30
+ These restrictions translate to certain responsibilities for you if you
31
+ distribute copies of the software, or if you modify it.
32
+
33
+ For example, if you distribute copies of such a program, whether
34
+ gratis or for a fee, you must give the recipients all the rights that
35
+ you have. You must make sure that they, too, receive or can get the
36
+ source code. And you must show them these terms so they know their
37
+ rights.
38
+
39
+ We protect your rights with two steps: (1) copyright the software, and
40
+ (2) offer you this license which gives you legal permission to copy,
41
+ distribute and/or modify the software.
42
+
43
+ Also, for each author's protection and ours, we want to make certain
44
+ that everyone understands that there is no warranty for this free
45
+ software. If the software is modified by someone else and passed on, we
46
+ want its recipients to know that what they have is not the original, so
47
+ that any problems introduced by others will not reflect on the original
48
+ authors' reputations.
49
+
50
+ Finally, any free program is threatened constantly by software
51
+ patents. We wish to avoid the danger that redistributors of a free
52
+ program will individually obtain patent licenses, in effect making the
53
+ program proprietary. To prevent this, we have made it clear that any
54
+ patent must be licensed for everyone's free use or not licensed at all.
55
+
56
+ The precise terms and conditions for copying, distribution and
57
+ modification follow.
58
+
59
+ GNU GENERAL PUBLIC LICENSE
60
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
+
62
+ 0. This License applies to any program or other work which contains
63
+ a notice placed by the copyright holder saying it may be distributed
64
+ under the terms of this General Public License. The "Program", below,
65
+ refers to any such program or work, and a "work based on the Program"
66
+ means either the Program or any derivative work under copyright law:
67
+ that is to say, a work containing the Program or a portion of it,
68
+ either verbatim or with modifications and/or translated into another
69
+ language. (Hereinafter, translation is included without limitation in
70
+ the term "modification".) Each licensee is addressed as "you".
71
+
72
+ Activities other than copying, distribution and modification are not
73
+ covered by this License; they are outside its scope. The act of
74
+ running the Program is not restricted, and the output from the Program
75
+ is covered only if its contents constitute a work based on the
76
+ Program (independent of having been made by running the Program).
77
+ Whether that is true depends on what the Program does.
78
+
79
+ 1. You may copy and distribute verbatim copies of the Program's
80
+ source code as you receive it, in any medium, provided that you
81
+ conspicuously and appropriately publish on each copy an appropriate
82
+ copyright notice and disclaimer of warranty; keep intact all the
83
+ notices that refer to this License and to the absence of any warranty;
84
+ and give any other recipients of the Program a copy of this License
85
+ along with the Program.
86
+
87
+ You may charge a fee for the physical act of transferring a copy, and
88
+ you may at your option offer warranty protection in exchange for a fee.
89
+
90
+ 2. You may modify your copy or copies of the Program or any portion
91
+ of it, thus forming a work based on the Program, and copy and
92
+ distribute such modifications or work under the terms of Section 1
93
+ above, provided that you also meet all of these conditions:
94
+
95
+ a) You must cause the modified files to carry prominent notices
96
+ stating that you changed the files and the date of any change.
97
+
98
+ b) You must cause any work that you distribute or publish, that in
99
+ whole or in part contains or is derived from the Program or any
100
+ part thereof, to be licensed as a whole at no charge to all third
101
+ parties under the terms of this License.
102
+
103
+ c) If the modified program normally reads commands interactively
104
+ when run, you must cause it, when started running for such
105
+ interactive use in the most ordinary way, to print or display an
106
+ announcement including an appropriate copyright notice and a
107
+ notice that there is no warranty (or else, saying that you provide
108
+ a warranty) and that users may redistribute the program under
109
+ these conditions, and telling the user how to view a copy of this
110
+ License. (Exception: if the Program itself is interactive but
111
+ does not normally print such an announcement, your work based on
112
+ the Program is not required to print an announcement.)
113
+
114
+ These requirements apply to the modified work as a whole. If
115
+ identifiable sections of that work are not derived from the Program,
116
+ and can be reasonably considered independent and separate works in
117
+ themselves, then this License, and its terms, do not apply to those
118
+ sections when you distribute them as separate works. But when you
119
+ distribute the same sections as part of a whole which is a work based
120
+ on the Program, the distribution of the whole must be on the terms of
121
+ this License, whose permissions for other licensees extend to the
122
+ entire whole, and thus to each and every part regardless of who wrote it.
123
+
124
+ Thus, it is not the intent of this section to claim rights or contest
125
+ your rights to work written entirely by you; rather, the intent is to
126
+ exercise the right to control the distribution of derivative or
127
+ collective works based on the Program.
128
+
129
+ In addition, mere aggregation of another work not based on the Program
130
+ with the Program (or with a work based on the Program) on a volume of
131
+ a storage or distribution medium does not bring the other work under
132
+ the scope of this License.
133
+
134
+ 3. You may copy and distribute the Program (or a work based on it,
135
+ under Section 2) in object code or executable form under the terms of
136
+ Sections 1 and 2 above provided that you also do one of the following:
137
+
138
+ a) Accompany it with the complete corresponding machine-readable
139
+ source code, which must be distributed under the terms of Sections
140
+ 1 and 2 above on a medium customarily used for software interchange; or,
141
+
142
+ b) Accompany it with a written offer, valid for at least three
143
+ years, to give any third party, for a charge no more than your
144
+ cost of physically performing source distribution, a complete
145
+ machine-readable copy of the corresponding source code, to be
146
+ distributed under the terms of Sections 1 and 2 above on a medium
147
+ customarily used for software interchange; or,
148
+
149
+ c) Accompany it with the information you received as to the offer
150
+ to distribute corresponding source code. (This alternative is
151
+ allowed only for noncommercial distribution and only if you
152
+ received the program in object code or executable form with such
153
+ an offer, in accord with Subsection b above.)
154
+
155
+ The source code for a work means the preferred form of the work for
156
+ making modifications to it. For an executable work, complete source
157
+ code means all the source code for all modules it contains, plus any
158
+ associated interface definition files, plus the scripts used to
159
+ control compilation and installation of the executable. However, as a
160
+ special exception, the source code distributed need not include
161
+ anything that is normally distributed (in either source or binary
162
+ form) with the major components (compiler, kernel, and so on) of the
163
+ operating system on which the executable runs, unless that component
164
+ itself accompanies the executable.
165
+
166
+ If distribution of executable or object code is made by offering
167
+ access to copy from a designated place, then offering equivalent
168
+ access to copy the source code from the same place counts as
169
+ distribution of the source code, even though third parties are not
170
+ compelled to copy the source along with the object code.
171
+
172
+ 4. You may not copy, modify, sublicense, or distribute the Program
173
+ except as expressly provided under this License. Any attempt
174
+ otherwise to copy, modify, sublicense or distribute the Program is
175
+ void, and will automatically terminate your rights under this License.
176
+ However, parties who have received copies, or rights, from you under
177
+ this License will not have their licenses terminated so long as such
178
+ parties remain in full compliance.
179
+
180
+ 5. You are not required to accept this License, since you have not
181
+ signed it. However, nothing else grants you permission to modify or
182
+ distribute the Program or its derivative works. These actions are
183
+ prohibited by law if you do not accept this License. Therefore, by
184
+ modifying or distributing the Program (or any work based on the
185
+ Program), you indicate your acceptance of this License to do so, and
186
+ all its terms and conditions for copying, distributing or modifying
187
+ the Program or works based on it.
188
+
189
+ 6. Each time you redistribute the Program (or any work based on the
190
+ Program), the recipient automatically receives a license from the
191
+ original licensor to copy, distribute or modify the Program subject to
192
+ these terms and conditions. You may not impose any further
193
+ restrictions on the recipients' exercise of the rights granted herein.
194
+ You are not responsible for enforcing compliance by third parties to
195
+ this License.
196
+
197
+ 7. If, as a consequence of a court judgment or allegation of patent
198
+ infringement or for any other reason (not limited to patent issues),
199
+ conditions are imposed on you (whether by court order, agreement or
200
+ otherwise) that contradict the conditions of this License, they do not
201
+ excuse you from the conditions of this License. If you cannot
202
+ distribute so as to satisfy simultaneously your obligations under this
203
+ License and any other pertinent obligations, then as a consequence you
204
+ may not distribute the Program at all. For example, if a patent
205
+ license would not permit royalty-free redistribution of the Program by
206
+ all those who receive copies directly or indirectly through you, then
207
+ the only way you could satisfy both it and this License would be to
208
+ refrain entirely from distribution of the Program.
209
+
210
+ If any portion of this section is held invalid or unenforceable under
211
+ any particular circumstance, the balance of the section is intended to
212
+ apply and the section as a whole is intended to apply in other
213
+ circumstances.
214
+
215
+ It is not the purpose of this section to induce you to infringe any
216
+ patents or other property right claims or to contest validity of any
217
+ such claims; this section has the sole purpose of protecting the
218
+ integrity of the free software distribution system, which is
219
+ implemented by public license practices. Many people have made
220
+ generous contributions to the wide range of software distributed
221
+ through that system in reliance on consistent application of that
222
+ system; it is up to the author/donor to decide if he or she is willing
223
+ to distribute software through any other system and a licensee cannot
224
+ impose that choice.
225
+
226
+ This section is intended to make thoroughly clear what is believed to
227
+ be a consequence of the rest of this License.
228
+
229
+ 8. If the distribution and/or use of the Program is restricted in
230
+ certain countries either by patents or by copyrighted interfaces, the
231
+ original copyright holder who places the Program under this License
232
+ may add an explicit geographical distribution limitation excluding
233
+ those countries, so that distribution is permitted only in or among
234
+ countries not thus excluded. In such case, this License incorporates
235
+ the limitation as if written in the body of this License.
236
+
237
+ 9. The Free Software Foundation may publish revised and/or new versions
238
+ of the General Public License from time to time. Such new versions will
239
+ be similar in spirit to the present version, but may differ in detail to
240
+ address new problems or concerns.
241
+
242
+ Each version is given a distinguishing version number. If the Program
243
+ specifies a version number of this License which applies to it and "any
244
+ later version", you have the option of following the terms and conditions
245
+ either of that version or of any later version published by the Free
246
+ Software Foundation. If the Program does not specify a version number of
247
+ this License, you may choose any version ever published by the Free Software
248
+ Foundation.
249
+
250
+ 10. If you wish to incorporate parts of the Program into other free
251
+ programs whose distribution conditions are different, write to the author
252
+ to ask for permission. For software which is copyrighted by the Free
253
+ Software Foundation, write to the Free Software Foundation; we sometimes
254
+ make exceptions for this. Our decision will be guided by the two goals
255
+ of preserving the free status of all derivatives of our free software and
256
+ of promoting the sharing and reuse of software generally.
257
+
258
+ NO WARRANTY
259
+
260
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
+ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266
+ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
+ REPAIR OR CORRECTION.
269
+
270
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
+ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
+ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
+ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
+ POSSIBILITY OF SUCH DAMAGES.
readme.txt CHANGED
@@ -1,484 +1,495 @@
1
- === Video Embed & Thumbnail Generator ===
2
- Contributors: kylegilman
3
- Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=kylegilman@gmail.com&item_name=Video%20Embed%20And%20Thumbnail%20Generator%20Plugin%20Donation
4
- Tags: video, video player, video gallery, video thumbnail, ffmpeg, resolution
5
- Requires at least: 4.4
6
- Tested up to: 5.2
7
- Requires PHP: 5.6.0
8
- Stable tag: 4.6.25
9
- License: GPLv2 or later
10
- License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
-
12
- Makes video thumbnails, allows resolution switching, and embeds responsive self-hosted videos and galleries.
13
-
14
- == Description ==
15
-
16
- = A plugin to make embedding videos, generating thumbnails, and encoding files easier. =
17
-
18
- Not compatible with the new Block Editor. Please continue to use the <a href="https://wordpress.org/plugins/classic-editor/">Classic Editor</a>.
19
-
20
- Still 100% free, but some advanced features may be converted to premium add-ons in the future. More info in the <a href="https://wordpress.org/support/topic/version-50-will-convert-some-free-features-to-paid-add-ons">support forum</a>.
21
-
22
- This plugin adds several fields to any video uploaded to the WordPress Media Library. Just choose a few options, make thumbnails, click "Insert into Post" and you'll get a shortcode in the post editor that will embed a flexible, responsive HTML5 video player with Flash fallback for unsupported browsers.
23
-
24
- You have the option to use a few different video players:
25
-
26
- * Video.js (files are included with the plugin)
27
- * The WordPress default player using MediaElement.js, which was introduced in WordPress version 3.6
28
- * JW Player 6 (if their old, discontinued plugin is already installed. This plugin does not work with JW Player 7 yet.)
29
- * Adobe's Strobe Media Playback Flash player (deprecated)
30
-
31
- No matter which player you use, the video will responsively resize to fit the container it's in. If you provide multiple H.264 resolutions, the plugin can automatically select the one closest to the size of the player or a resolution of your choice, and provide a button for users to select the resolution manually. If you have Google Analytics set up on your site, the plugin will automatically send Google Analytics Events when users start, reach 25%, 50%, 75%, and complete watching your videos.
32
-
33
- You can also use the plugin to create a popup video gallery. The shortcode uses options similar to the WordPress image gallery shortcode. In its simplest form use the code `[KGVID gallery="true"]` to create a gallery of all videos attached to the post. Thumbnail size and video popup size can be set on the plugin settings page or in the shortcode. To make a custom gallery that includes videos that aren't attached to the current post you'll need to determine the video's ID, which is shown under the Video Stats section when viewing the attachment. Switch the "insert" option from "Single Video" to "Video Gallery" and you'll get a number of additional options (all of which are optional). Add a comma-separated list of video IDs in the "Include" field to create a gallery manually. Note: the "Create Gallery" section of the Add Media window is a built-in WordPress function and is only for making image galleries.
34
-
35
- If your video can be <a href="http://en.wikipedia.org/wiki/HTML5_video#Browser_support">played natively in your browser</a>, or if you have FFMPEG or LIBAV installed on your server, you can generate thumbnails from your video. Using either the "Generate" or "Randomize" buttons will create an array to choose from. The "Generate" button will always generate thumbnails from the same frames of your video, evenly spaced. If you don't like them, you can randomize the results with the "Randomize" button. If you want to see the first frame of the video, check the "Force 1st Frame Thumbnail" button. You can generate as many or as few as you need (up to 99 at a time). After creating an array of thumbnails you can save them all using the "Save all thumbnails" button.
36
-
37
- If you know which frame you want to use for your thumbnail, click "Choose from video..." to select it from the video. This will only work for <a href="http://en.wikipedia.org/wiki/HTML5_video#Browser_support">videos that can be played natively in your browser</a>. If you want really fine control you can enter timecode in the "Thumbnail timecode" field. Use `mm:ss` format. Use decimals to approximate frames. For example, `23.5` will generate a thumbnail halfway between the 23rd and 24th seconds in the video. `02:23.25` would be one quarter of the way between the 143rd and 144th seconds.
38
-
39
- After you select a thumbnail it will be registered in the Wordpress Media Library and added to the video's attachments. Unused thumbnails will be deleted.
40
-
41
- In the plugin settings you can set the default maximum video width and height based on the dimensions of your particular template and those values will be filled in when you open the window. If you generate thumbnails, the video display dimensions will be adjusted automatically to match the size and aspect ratio of the video file. You can make further adjustments if you want. There are options to always fill the width of the template or to always set videos to the maximum width setting regardless of their resolution.
42
-
43
- If enabled in the plugin settings, Facebook, Twitter, and Schema.org video search engine metadata will be generated for your videos. If your site supports https, your videos can play directly in the Facebook timeline or on Twitter. Twitter requires whitelisting for each domain that provides player cards so you will be required to request whitelisting using the <a href="https://cards-dev.twitter.com/validator">Twitter Card Validator tool</a>. Once you've installed the plugin and enabled the Twitter Cards setting, go to the Twitter Card Validator, enter a secure URL from your site that has a video embedded using this plugin, click "Preview card" and you'll probably see a warning that your site isn't whitelisted. Request whitelisting and Twitter should approve you fairly quickly. Enabling the Facebook or Twitter metadata options will override Jetpack's corresponding metadata whenever a video is embedded on the page. However, your theme or SEO plugins might generate their own metadata that could conflict with this plugin's.
44
-
45
- You can add subtitle and caption tracks by choosing properly formatted WebVTT files from the media library or entering a URL directly. Enter the two-letter language code and the label text that will be shown to users. Enabling the "default" option will turn the text track on when the page loads. The WordPress default player does not differentiate between captions and subtitles, but Video.js will show a different icon depending on the selection.
46
-
47
- I highly recommend using <a href="http://handbrake.fr/">Handbrake</a> to make a file with H.264 video and AAC audio in an MP4 container before uploading. If you're encoding with Handbrake make sure that "Web Optimized" is checked. Using Apple's Compressor, the "Streaming" setting should be "Fast Start" (not Fast Start - Compressed Header).
48
-
49
- The plugin can use FFMPEG or LIBAV to encode videos and make thumbnails if you have one of them installed on your server. You can choose to generate thumbnails and additional video formats automatically whenever a new video is uploaded to the media library, and there are buttons to generate thumbnails and additional video formats for every video already in the media library. If you want most videos to be re-encoded and replaced with a particular format but sometimes want to keep the original video, you can add the suffix '-noreplace' (awesomevid-noreplace.mp4) to your filename and the uploaded video will not be replaced. Other automatic formats will still encode.
50
-
51
- By default the plugin looks for FFMPEG in `/usr/local/bin` but if the application is installed in a different place on your server, you can point it to the correct place in the plugin settings. Users running WordPress on Windows servers should try using Linux-style paths (with forward slashes instead of backslashes and a forward slash `/` instead of `C:\`). Multisite Super Admins must set the FFMPEG path in the Network settings page which will enable FFMPEG throughout the network.
52
-
53
- If you have the proper libraries installed on your server, you can choose to replace your uploaded video with your preferred format, and generate as many as seven additional formats depending on your original source. 1080p, 720p, and 360p H.264, same resolution WEBM (VP9 or VP8) and OGV, and a custom format. Different browsers have different playback capabilities. Most desktop browsers can play H.264, and all modern mobile devices can play at least 360p H.264. If you create multiple H.264 resolutions, the highest resolution supported by the device will be served up automatically. The plugin will not upconvert your video, so if you upload a 720p video, it will not waste your time creating a 1080p version. There was a time when it seemed like a good idea to provide OGV or WEBM for some desktop browsers, but Firefox supports native H.264 playback in most operating systems now. I no longer recommend encoding OGV or WEBM unless you're making an open source principled stand against H.264. However, your needs may vary. VP9 WEBM is a next-generation codec not supported by many browsers, but it can make videos much smaller while still retaining quality.
54
-
55
- The files will encode in the background and will take some time to complete, depending on your server setup and the length and size of your video. VP9 encoding will take much longer than any other format. The plugin adds a Video Encode Queue menu to the Tools menu. You will see encoding progress, the option to cancel an encoding job, and you should get an error message if something goes wrong. Users on Windows servers may get inconsistent results with the encoding queue.
56
-
57
- Encoded H.264 files can be fixed for streaming using "movflags faststart" introduced in recent versions of FFMPEG/LIBAV, or qt-faststart or MP4Box if you have one of them installed on your server and select it in the plugin settings. Without one of these options enabled, FFMPEG/LIBAV will place moov atoms at the end of H.264 encoded files, which in some cases forces the entire file to download before playback can start.
58
-
59
- If you want to make OGV, WEBM, or H.264 files available and can't use the FFMPEG encode button, you can upload your own files to the same directory as the original and the plugin will automatically find them. For example, if your main file is awesomevid.mp4, the plugin will look for awesomevid-1080.mp4, awesomevid-720.mp4, awesomevid-360.mp4, awesomevid.webm, awesomevid-vp9.webm, awesomevid.ogv, and awesomevid-custom.mp4 as well. If your videos don't conform to that naming structure, you can manually assign them from the media library. No matter what format your original video is, you can use it in the shortcode and the plugin will attempt to find all compatible formats related to it. For example, you might have an AVI called awesomevid.avi which is not compatible with any browser, but if you have other formats encoded already, `[KGVID]http://yoursite.com/awesomevid.avi[/KGVID]` will ignore the incompatible AVI file, but find those other formats and embed them.
60
-
61
- If you want to make it easier for users to save your videos to their computers, you can choose to include a link by checking the "Generate Download Link Below Video" button.
62
-
63
- Sometimes for various reasons you might need to embed video files that are not saved in the Wordpress Media Library. Maybe your file is too large to upload through the media upload form (if it is, I suggest the excellent "<a href='https://wordpress.org/plugins/add-from-server/'>Add From Server</a>" plugin), or maybe it's hosted on another server. Either way, you can use the tab "Embed Video From URL" in the Add Media window. Just enter the Video URL manually, and all other steps are the same as the Media Library options. The plugin will look for alternate encoded files in the same directory as the original, but this takes a long time when the video is on another server so it will only check for them once.
64
-
65
- To embed videos on other sites you can use code like this.
66
-
67
- `<iframe src='http://www.kylegilman.net/?attachment_id=2897&kgvid_video_embed[enable]=true' frameborder='0' scrolling='no' width='640' height='360'></iframe>`
68
-
69
- If you enable oEmbed provider data in the plugin settings, the URL of a post with a video shortcode in it or the URL of the video's attachment page will be converted to an embedded video on sites that allow oEmbed discovery. For example, http://www.kylegilman.net/2011/01/18/video-embed-thumbnail-generator-wordpress-plugin/ is the URL for this plugin on my website, but it has the oEmbed header for the video embedded in it so the URL will be converted to an embedded video on sites with oEmbed discovery enabled. WordPress limits oEmbed providers to an internal whitelist for security reasons. This plugin has an option to enable oEmbed discovery for users with the unfiltered_html capability.
70
-
71
- = Once you've filled in all your options, click "Insert into Post" and you'll get a shortcode in the visual editor like this =
72
-
73
- `[KGVID]http://www.kylegilman.net/wp-content/uploads/2006/09/Reel-2012-05-15-720.mp4[/KGVID]`
74
-
75
- <em>The JW Player 6 plugin has been removed from the WordPress plugin repository and JW Player 7 uses a very different system for embedding videos. JW Player 7 support is not available in this plugin yet. The Strobe Media Playback option hasn't been updated since 2011 and is not recommended, but I'm keeping it around for longtime users of this plugin who don't want to change. Most features of the plugin will work when using Strobe Media Playback, but new features will not be tested with it. Selecting Strobe Media Playback will default to a Flash video player if you're using a Flash-compatible file (flv, f4v, mp4, mov, or m4v). Otherwise it will use the Video.js player as a fallback.</em>
76
-
77
- = Translations included: =
78
-
79
- * Español por Andrew Kurtis de <a href="http://www.webhostinghub.com/">WebHostingHub</a>.
80
- * Français par F.R. 'Friss' Ferry, friss.designs@gmail.com
81
- * Българска от Емил Георгиев, svinqvmraka@gmail.com
82
-
83
- I'm not really a software developer. I'm just a film editor with some time on his hands who wanted to post video for clients and wasn't happy with the current state of any available software. But I want to really make this thing work, so please help me out by posting your feedback on <a href="https://github.com/kylegilman/video-embed-thumbnail-generator/issues?state=open">Github</a>.
84
-
85
- = If you want to further modify the way the video player works, you can add the following options inside the `[KGVID]` tag. These will override anything you've set in the plugin settings or attachment details. If the plugin is installed on your site, this documentation is also available in the post edit help screen. =
86
-
87
- * `id="xxx"` video attachment ID (instead of using a URL).
88
- * `videos="x"` number of attached videos to display if no URL or ID is given.
89
- * `orderby="menu_order/title/post_date/rand/ID"` criteria for sorting attached videos if no URL or ID is given.
90
- * `order="ASC/DESC"` sort order.
91
- * `poster="http://www.example.com/image.jpg"` sets the thumbnail.
92
- * `endofvideooverlay="http://www.example.com/end_image.jpg` sets the image shown when the video ends.
93
- * `width="xxx"` preferred maximum width in pixels.
94
- * `height="xxx"` preferred maximum height in pixels.
95
- * `fullwidth="true/false"` set video to always expand to 100% of its container.
96
- * `align="left/right/center"`
97
- * `inline="true/false"` allow other content on the same line as the video
98
- * `volume="0.x"` pre-sets the volume for unusually loud videos. Value between 0 and 1.
99
- * `mute="true/false"` sets the mute button on or off.
100
- * `controlbar="docked/floating/none"` sets the controlbar position. Video.js only responds to the "none" option.
101
- * `loop="true/false"`
102
- * `autoplay="true/false"`
103
- * `pauseothervideos="true/false"` video will pause other videos on the page when it starts playing.
104
- * `preload="metadata/auto/none"` indicate how much of the video should be loaded when the page loads.
105
- * `start="mm:ss"` video will start playing at this timecode.
106
- * `watermark="http://www.example.com/image.png"` or `"false"` to disable.
107
- * `watermark_link_to=home/parent/attachment/download/false"`
108
- * `watermark_url="http://www.example.com/"` or `"false"` to disable. If this is set, it will override the `watermark_link_to` setting.
109
- * `title="Video Title"` or `"false"` to disable.
110
- * `embedcode="html code"` changes text displayed in the embed code overlay in order to provide a custom method for embedding a video or `"false"` to disable.
111
- * `view_count="true/false"` turns the view count on or off.
112
- * `caption="Caption"` text that is displayed below the video (not subtitles or closed captioning)
113
- * `description="Description"` Used for metadata only.
114
- * `downloadlink="true/false"` generates a link below the video to make it easier for users to save the video file to their computers.
115
- * `right_click="true/false"` allow or disable right-clicking on the video player.
116
- * `resize="true/false"` allow or disable responsive resizing.
117
- * `auto_res="automatic/highest/lowest"` specify the video resolution when the page loads.
118
- * `pixel_ratio="true/false"` account for high-density (retina) displays when choosing automatic video resolution.
119
- * `schema="true/false"` allow or disable Schema.org search engine metadata.
120
-
121
- = These options will add a subtitle/caption track =
122
-
123
- * `track_src="http://www.example.com/subtitles.vtt_.txt"` URL of the WebVTT file.
124
- * `track_kind=subtitles/captions/chapters`
125
- * `track_srclang=xx` the track's two-character language code (en, fr, es, etc)
126
- * `track_label="Track Label"` text that will be shown to the user when selecting the track.
127
- * `track_default="true/false"` track is enabled by default.
128
-
129
- = These options will only affect Video.js playback =
130
-
131
- * `skin="example-css-class"` Completely change the look of the video player. <a href="http://designer.videojs.com/">Video.js provides a custom skin designer here.</a>
132
- * `nativecontrolsfortouch="true/false` disable Video.js styling and show the built-in video controls on mobile devices. This will disable the resolution selection button.
133
-
134
- = These options will only affect Flash playback in Strobe Media Playback video elements. They will have no effect on other players. =
135
-
136
- * `autohide="true/false"` specify whether to autohide the control bar after a few seconds.
137
- * `playbutton="true/false"` turns the big play button overlay in the middle of the video on or off.
138
- * `streamtype="live/recorded/DVR"` I honestly don't know what this is for.
139
- * `scalemode="letterbox/none/stretch/zoom"` If the video display size isn't the same as the video file, this determines how the video will be scaled.
140
- * `backgroundcolor="#rrggbb"` set the background color to whatever hex code you want.
141
- * `configuration="http://www.example.com/config.xml"` Lets you specify all these flashvars in an XML file.
142
- * `skin="http://www.example.com/skin.xml"` Completely change the look of the video player. <a href="http://www.longtailvideo.com/support/jw-player/jw-player-for-flash-v5/14/building-skins">Instructions here.</a>
143
-
144
- = These options are available for video galleries (options work the same as standard WordPress image galleries) =
145
-
146
- * `gallery="true"` turns on the gallery
147
- * `gallery_thumb="xxx"` width in pixels to display gallery thumbnails
148
- * `gallery_exclude="15,4322"` comma separated video attachment IDs. Excludes the videos from the gallery.
149
- * `gallery_include="65,32,1533"` comma separated video attachment IDs. Includes only these videos in the gallery. Please note that include and exclude cannot be used together.
150
- * `gallery_orderby="menu_order/title/post_date/rand/ID"` criteria for sorting the gallery.
151
- * `gallery_order="ASC/DESC"` sort order.
152
- * `gallery_id="241"` post ID to display a gallery made up of videos associated with a different post.
153
- * `gallery_end="close/next"` either close the pop-up or start playing the next video when the current video finishes playing.
154
- * `gallery_per_page="xx"` or `"false"` to disable pagination. Number of video thumbnails to show on each gallery page.
155
- * `gallery_title="true/false"` display the title overlay on gallery thumbnails.
156
-
157
- = These options can be added to the URL to further customize playback =
158
-
159
- Using the `kgvid_video_embed` query string any of the following options will modify playback: auto_res, autoplay, default_res, fullwidth, height, mute, nativecontrolsfortouch, pixel_ratio, resize, set_volume, start, width
160
-
161
- Example: `https://www.kylegilman.net/portfolio-item/bronx-warrants-pilot/?kgvid_video_embed[start]=29&kgvid_video_embed[autoplay]=true` autoplays the embedded video and starts 29 seconds in.
162
-
163
-
164
- == Installation ==
165
-
166
- 1. Upload the unzipped folder `video-embed-thumbnail-generator` to the `/wp-content/plugins/` directory.
167
- 1. Activate the plugin through the 'Plugins' menu in WordPress.
168
- 1. Make sure you have all your MIME types configured correctly. Many servers don't have .mp4, .m4v, or .ogv configured, and even more don't have .webm. There are a number of ways to do this. In your public_html directory you can edit your .htaccess file and add the following lines:
169
- `AddType video/ogg .ogv
170
- AddType video/mp4 .mp4
171
- AddType video/mp4 .m4v
172
- AddType video/webm .webm`
173
- Optional: `AddType video/mp4 .mov` will help with IE playback of .mov files but could interfere with other QuickTime players.
174
-
175
- == Frequently Asked Questions ==
176
-
177
- = Why doesn't my video play? =
178
-
179
- Most of the time your video doesn't play because it's not encoded in the right format. Videos have containers like mp4, mov, ogv, mkv, flv, etc and within those containers there are video and audio codecs like H.264, MPEG-4, VP8, etc. The best option for this plugin is an mp4 container with H.264 video and AAC audio. It's confusing, but there is a codec usually identified simply as "MPEG-4" of "MPEG-4 Visual" which is not the same thing as H.264 even if it's in an mp4 container. mp4s with MPEG-4 video will not play in most browsers, and if you don't use AAC audio you won't get any audio. I highly recommend using <a href="http://handbrake.fr/">Handbrake</a> to make a file with H.264 video and AAC audio in an MP4 container.
180
-
181
- Use <a href="http://mediaarea.net/en/MediaInfo">MediaInfo</a> to get really detailed information about your media files.
182
-
183
- If your theme loads FitVids.js, it will break playback in Firefox. If you can figure out how to prevent your theme from loading FitVids.js you will not miss it.
184
-
185
- = Why does my video have to download completely before it starts playing? =
186
-
187
- mp4/m4v/mov files have something called a moov atom that gives the video player information about the content of the video (dimensions, duration, codecs, etc). Depending on the program you used to make your video, the moov atom can be at the beginning or the end of the file. Most video players will wait until they find the moov atom before starting playback. Otherwise it doesn't know how to display the information it's downloading. If it's at the beginning of the file, playback starts very soon after the user hits the play button. If it's at the end of the file, the whole video has to download before playback starts.
188
-
189
- There are a number of ways to fix this problem. Most video encoding programs have an option like "Web optimized," "Streaming," "Fast start," or "Progressive download." Try to find and enable that option in your program. If you can't do that, there are programs designed to move the moov atom to the head of the file. Try <a href="http://renaun.com/blog/code/qtindexswapper/">QTIndexSwapper</a> for Adobe Air (cross platform), <a href="http://www.datagoround.com/lab/">MP4 Faststart</a> for Windows, or <a href="http://mac.softpedia.com/get/Video/QTFastStart.shtml">QTFastStart</a> for Mac.
190
-
191
- FFMPEG puts the moov atom at the end of the file, so this can be a problem. The plugin will fix this problem on newly encoded H.264 videos if you have a recent version of FFMPEG and enable the "movflags faststart" option in the plugin settings or if you have qt-faststart or MP4Box installed on your server.
192
-
193
- = Why doesn't this work with YouTube? =
194
-
195
- WordPress already has <a href="http://codex.wordpress.org/Embeds">a built-in system for embedding videos from YouTube, Vimeo, Dailymotion, etc</a>. Just put the URL into your post and WordPress will automatically convert it to an embedded video using oEmbed. You don't need this plugin to do that. If you're trying to generate new thumbnails from YouTube videos, I'm not going to risk Google's wrath by providing that functionality. I'm not even sure I could figure out how to do it anyway.
196
-
197
- = Why can't I make thumbnails? =
198
-
199
- If you're like most users and don't have FFMPEG installed on your server, the plugin relies on your browser's built-in ability to play videos. Google Chrome is best when making thumbnails because it supports the most formats. Wikipedia has <a href="http://en.wikipedia.org/wiki/HTML5_video#Browser_support">a great chart that explains which browsers work with which video formats</a>.
200
-
201
- If you were able to make thumbnails using FFMPEG before updating to version 4.2, try disabling in-browser thumbnail creation in the FFMPEG Settings tab of the plugin settings.
202
-
203
- = How can I change the watermark's size or position? =
204
-
205
- The watermark option is a simple image overlay and is styled using CSS. The default styling is
206
-
207
- `.kgvid_watermark img {
208
- display: block;
209
- position: absolute;
210
- bottom: 7%;
211
- right: 5%;
212
- z-index: 1;
213
- margin: 0px;
214
- max-width: 10%;
215
- box-shadow: none;
216
- }`
217
-
218
- You can override any of those settings in either your theme's custom CSS area or using the Jetpack "Custom CSS" module. If you want to make the watermark bigger, try something like
219
-
220
- `.kgvid_watermark img {
221
- max-width: 20%;
222
- }`
223
-
224
- If you want to put it in the upper left instead of the lower right, try something like this:
225
-
226
- `.kgvid_watermark img {
227
- top: 7%;
228
- left: 5%;
229
- }`
230
-
231
- = I'm getting an error message FFMPEG not found at /usr/local/bin/. You can embed existing videos, but video thumbnail generation and Mobile/HTML5 video encoding is not possible without FFMPEG. =
232
-
233
- First off, don't panic.
234
-
235
- This plugin can use FFMPEG or LIBAV to make thumbnails and create alternate video formats. Unfortunately most servers don't have FFMPEG installed and most shared hosting plans don't allow you to install FFMPEG because of the system resources it requires. You're getting this error message because you don't have FFMPEG installed in the most common directory. If you know you have FFMPEG installed on your server, you'll need to find the actual path to the program and enter it in the plugin settings field `Path to applications on server`
236
-
237
- Most of the features of the plugin will work without FFMPEG. You can generate embed shortcodes for your videos and make thumbnails on any host because that part of the plugin is JavaScript running in your browser. But without FFMPEG you won't be able to automatically generate thumbnails or encode alternate formats on the server. If you don't have your own VPS or dedicated server, Dreamhost and Arvixe are two of the few shared hosts I know of that has FFMPEG installed and available for users.
238
-
239
- = How can I encode videos in directories protected by .htaccess passwords? =
240
-
241
- Enter the username & password in the plugin settings "FFMPEG Settings" tab, or use the "Embed from URL" tab and enter the URL in this format http://username:password@yourdomain.com/uploads/2012/01/awesomevid.mp4 in the Video URL field.
242
-
243
- == Screenshots ==
244
-
245
- 1. Thumbnails in the Add Media modal.
246
- 2. Video Options in the Add Media modal.
247
- 3. Encoding Queue.
248
- 4. Shortcode inserted into the post content by the plugin.
249
-
250
- == Changelog ==
251
-
252
- = 4.6.25 - May 28, 2019 =
253
- * Fixed bug that broke pop-up galleries when video title had a space in the name.
254
- * Fixed bug that re-shuffled random gallery order every time a new gallery page was loaded.
255
- * Fixed bug that disabled auto resolution switching when using the WordPress Default video player.
256
- * Removed the built-in WordPress Default video player size limit for better responsive sizing.
257
- * Reduced CPU load when responsive video resizing is enabled.
258
- * Now selectively enqueuing Video.js resolution selector JavaScript file.
259
- * Re-ordered resolution list so when original resolution is unknown, "Full" is at the top, enabled translation of the "Full" menu item and now automatically renaming it when video metadata is loaded.
260
- * Better activation procedure that doesn't generate errors and disables FFMPEG functions if FFMPEG is not found.
261
- * No longer turning on all video encode formats by default.
262
- * Fixed bug that couldn't automatically discover alternate formats of videos on other servers via https.
263
- * Fixed bug that broke tab switching on the settings page when other plugins modified the admin page.
264
- * Code changes to allow for future child formats that aren't videos.
265
-
266
- = 4.6.24 - April 1, 2019 =
267
- * Improved method for assigning Google Analytics Event labels.
268
-
269
- = 4.6.23 - March 26, 2019 =
270
- * Added option to override WordPress built-in [video] shortcodes.
271
- * Fixed bug that prevented generating in-browser thumbnails more than once without reloading the page.
272
- * Stopped deleting existing thumbnails that are selected from the library.
273
- * Changed filename of manually selected thumbnails to thumb1.jpg
274
-
275
- = 4.6.22 - January 30, 2019 =
276
- * Modularized video file formats that can be encoded by the plugin to allow other plugins to modify, delete, or create new formats.
277
- * Added Custom WEBM VP9 format option.
278
- * Renamed WEBM format to WEBM VP8.
279
- * Fixed bug that deleted unfinished video encode queue entries every 24 hours.
280
- * Fixed bug that created duplicate encodes of non-H.264 files in some situations.
281
- * Fixed bug that inconsistently prevented thumbnail generation in the Media Library.
282
- * Fixed bug that disabled embed from URL "insert into post" button if FFMPEG was not set up on server.
283
- * Stopped appending timecode numbers to thumbnail filenames.
284
- * Stopped removing special characters from the end of filenames of generated thumbnails and encoded files.
285
- * Attempting to fix misconfigured locale settings that can sometimes cause video files with diacritics (accent marks, umlauts, etc) to generate "File not found" errors when using FFMPEG.
286
- * Removed old Media Library video thumbnail display functionality that was preventing some Media Libraries from loading.
287
- * Now allowing https FFMPEG input.
288
-
289
- = 4.6.21 - October 6, 2018 =
290
- * Updated Video.js to version 5.20.5
291
- * Added option to constrain video gallery thumbnail aspect ratios when mixed aspect ratios are present in the gallery.
292
- * Added option to use FFMPEG to add a watermark to thumbnails.
293
- * Fixed WordPress Default player default subtitles not enabled on page load.
294
- * Fixed manual thumbnail selection in Media Library page and Safari.
295
- * Added gtag Google Analytics support.
296
- * Restored freeze-frame while resolution switching in WordPress Default player and now maintaining video aspect ratio while in fullscreen mode for both players.
297
- * Added cron check to ensure the rest of the queue encodes when user does not see encoding start.
298
-
299
- = 4.6.20 - November 14, 2017 =
300
- * Updated WordPress Default player resizing methods and speed and resolution selector plugins for the new player included with WordPress 4.9.
301
- * Added 480p resolution option.
302
- * Added option to hide unwanted encode formats from the attachment pages and encode queue.
303
- * Fixed bug that prevented 360p encoding for videos less than 480p.
304
- * Fixed bug that did not automatically select default encoding formats.
305
-
306
- = 4.6.19 - November 2, 2017 =
307
- * Fixed shorthand array declaration to retain compatiblity with versions of PHP older than 5.4.
308
-
309
- = 4.6.18 - November 2, 2017 =
310
- * Updated Video.js to version 5.20.2
311
- * No longer double encoding 360p formats for 360p or lower resolution original videos.
312
- * Enabled subtitles for fullscreen iPhone videos when using the Video.js player.
313
- * Now allowing external URLs without filename extensions.
314
- * Fixed FFMPEG thumbnail generation when embedding videos from external URLs.
315
- * Fixed "Warning illegal string offset 'id'" errors.
316
-
317
- = 4.6.17 - June 10, 2017 =
318
- * Updated Video.js to version 5.19.2
319
- * Better fix for big play button overlay remaining visible on autoplay Video.js videos.
320
-
321
- = 4.6.16 - March 19, 2017 =
322
- * Updated Video.js to version 5.18.4
323
- * Added option for variable playback rates in Video.js and WordPress Default players.
324
- * Fixed bug that didn't save views when quarter counting was enabled (new installations only).
325
- * Fixed bug that allowed big play button to remain on screen when videos autoplayed in Firefox and Edge.
326
- * Fixed query for converting URLs to post IDs when a blank _wp_attached_file is present in the database.
327
-
328
- = 4.6.15 - February 27, 2017 =
329
- * Updated Video.js to version 5.16.0
330
- * Changed source filetype checking to account for URLs with query strings, which allows for signed URLs.
331
- * Changed VP9 encoding CRF value to the H.264 setting. Using the WEBM setting led to unnecessarily high bitrates.
332
- * Removed French translation files from distribution to allow updated language packs.
333
-
334
- = 4.6.14 - January 24, 2017 =
335
- * Updated Video.js to version 5.15.1
336
- * Added option to restrict video player aspect ratio to the default aspect ratio.
337
- * Added option to disable view tracking in the WordPress database.
338
- * Added option to use FFMPEG's auto rotation feature for vertical videos, available in recent versions of FFMPEG and added a rotated video for testing.
339
- * Added check for Video.js version in case another application loads an older version. The resolution selector feature will not load if Video.js is not 5.x or above.
340
- * Added check for a new parent post if a video thumbnail is auto generated before a corresponding post is created. If a new parent exists, the thumbnail is set as the featured image for the new post. This is usually only necessary when used with frontend uploaders.
341
- * Fixed mixed content warnings in galleries with multiple pages.
342
- * Changed all `button-secondary` styles to `button`.
343
- * Added hook for download logging using the single-click download method. An alpha version of a download logging add-on plugin is <a href="https://github.com/kylegilman/file-download-logger">available on GitHub</a>.
344
-
345
- = 4.6.13 - January 5, 2017 =
346
- * Updated Video.js player to version 5.14.1
347
- * Fixed bug that disabled gallery page switching.
348
- * Delayed automatic resolution switching until playback starts and now sorting sources to make the default resolution the first element and prevent unnecessary source switching after the page loads.
349
- * Fixed bug that disabled resolution switching if preload is set to "none"
350
- * Added preload as a shortcode attribute.
351
- * Delayed loading videos in attachment editing page until needed for thumbnail creation.
352
- * Fixed manual thumbnail selection in pop-up Media Library windows.
353
- * Fixed bug that deleted completed same-resolution video files if other video formats were added or removed from the queue before encoding of secondary formats was completed.
354
- * Fixed deprecated class constructor warning in PHP 7.
355
- * Removed unnecessary Video.js player re-initializations.
356
-
357
- = 4.6.12 - September 25, 2016 =
358
- * Restored Video.js resolution selection in pop-up video galleries.
359
- * Fixed thumbnail creation bugs in Chrome browser.
360
- * Fixed missing 'starts' error message when video had never been played.
361
-
362
- = 4.6.11 - September 17, 2016 =
363
- * Fixed broken video galleries in AJAX-loaded pages when the option to always load plugin-related JavaScripts is enabled.
364
- * Fixed untranslated "views" text after video is played.
365
-
366
- = 4.6.10 - September 14, 2016 =
367
- * Updated Video.js to version 5.11.6
368
- * Now forcing Video.js controls to display on mobile devices if the video is not muted. Otherwise autoplay doesn't work and there's no way for the user to start the video.
369
- * Moved native controls z-index in front of watermark overlay and hid Video.js play button on Android when using native controls option.
370
- * Fixed bug that constantly reset checkboxes and prevented removing individual formats from the video encode queue.
371
- * Fixed divide by zero error when video encoding is slower than 1 fps.
372
- * Fixed missing nonce error when clearing video encode queue.
373
-
374
- = 4.6.9 - July 25, 2016 =
375
- * Updated Video.js to version 5.10.7
376
- * Fixed bug that sometimes prevented thumbnail generation.
377
- * Fixed bug that prevented selection of encoding error email setting in Network admin page.
378
- * Added visual feedback while saving manually selected thumbnails.
379
-
380
- = 4.6.8 - June 22, 2016 =
381
- * Added keyboard control of video thumbnail selector. Spacebar to play/pause, arrow keys to move one frame forward or back, and JKL playback control. Reverse playback only works in Safari.
382
- * Added option to pause other videos on the page when starting a new video (or disable it for WP Default player).
383
- * Added option to always load plugin-related JavaScripts to support AJAX page loading.
384
- * Added functionality to dynamically embed attached videos outside of the loop.
385
- * Added check for changed filename extension if a video has been replaced by a different format but is still embedded using the old filename.
386
- * Fixed bug that disabled styling for WordPress Default video players on the page when embedded after an audio file.
387
- * Fixed bug that didn't record Video.js pop-up video gallery views or JW Player quarter playback stats.
388
- * Fixed bug that prevented automatic clearing of old encode queue entries.
389
- * Fixed bug that doubled non-H.264 video source tags.
390
- * Fixed bug that prevented encoding 1080p and 720p H.264 videos if original video is not H.264 and has the same resolution.
391
- * Improved iframe-embedded vertical video resizing.
392
- * Changed iPhone play button to match Video.js button style.
393
- * Tweaked embed code overlay styles.
394
- * Set WordPress Default bottom margin to 0.
395
-
396
- = 4.6.7 - May 26, 2016 =
397
- * Updated Video.js to version 5.10.2
398
- * Fixed bug that set Video.js players to the highest resolution no matter what was set as the default.
399
- * Added a system to change video playback settings via URL query strings.
400
- * Added "start" shortcode attribute to start videos at a particular timecode and an option to set the start time in the embed code overlay.
401
- * Added left/right arrow navigation through video galleries.
402
- * Changed resizing method when responsive video is disabled.
403
- * Delayed autoplay command until metadata is loaded in Video.js player.
404
- * Fixed bug that re-enabled default subtitles in the Video.js player every time play restarted.
405
- * Fixed bug that left room for captions on all gallery videos if the first video had a caption.
406
- * Fixed bug that incorrectly resized pop-up gallery window for vertical videos.
407
-
408
- = 4.6.6 - May 21, 2016 =
409
- * Added support for Yoast's custom Universal Google Analytics variable name.
410
- * Modified resizing method for WordPress Default player container again.
411
- * Updated WordPress Default player's fullscreen resolution calculation to match Video.js change made in v4.6.3
412
- * Added filter hook to modify FFMPEG-generated thumbnail options.
413
- * Increased WordPress Default play button z-index.
414
-
415
- = 4.6.5 - May 13, 2016 =
416
- * Removed anonymous function to allow the plugin to run on PHP versions lower than 5.3.
417
- * Added 25%, 50%, and 75% video view tracking to the WordPress admin area.
418
- * Fixed width="100%" vertical video aspect ratio bug and now allowing other players to work with this still-not-recommended method.
419
- * Modified resizing method for WordPress default player container.
420
- * Fixed temporary thumbnail display when switching resolutions in a Video.js player that is set to a different aspect ratio from the video file.
421
- * Disabled background page rendering request on autosaves and revisions.
422
- * Adjusted title bar CSS again.
423
-
424
- = 4.6.4 - May 5, 2016 =
425
- * Fixed bug that caused an error when feed pages were generated, possibly interrupting autosaves.
426
-
427
- = 4.6.3 - May 5, 2016 =
428
- * Updated Video.js to version 5.9.2
429
- * Changed method for calculating automatic resolution when switching to fullscreen so it's the same as a regular resize event instead of always selecting the highest resolution available.
430
- * Fixed bug that disabled JW Player selection in the plugin settings page.
431
- * Fixed bug that always showed text track type selector as "subtitles" in the attachment edit window.
432
- * Fixed bug that cropped the video title overlay when no sharing icons were enabled.
433
-
434
- = 4.6.2 - May 2, 2016 =
435
- * Fixed bug that disabled subtitles/captions button in the WordPress Default player.
436
- * Fixed bug that broke Video.js players set to width="100%". This has never worked for the WordPress Default player. Using the plugin setting "Set all videos to expand to 100% of their containers" or the shortcode attribute fullwidth="true" is the recommended method, but players will work again for people using width="100%".
437
- * Changed description of fullwidth setting to make it more clear.
438
-
439
- = 4.6.1 - May 1, 2016 =
440
- * Fixed bug that changed the way Video.js players were resized when the specified dimensions did not match the video's actual dimensions.
441
- * Adjusted CSS for video overlay bar and z-index of the Video.js play button.
442
-
443
- = 4.6 - April 29, 2016 =
444
- * Still 100% free. More info in the <a href="https://wordpress.org/support/topic/version-50-will-convert-some-free-features-to-paid-add-ons">support forum</a>.
445
- * Updated Video.js to version 5.5.3 which includes a revised skin.
446
- * Added resolution switching for WordPress Default player.
447
- * Added Twitter Player Cards.
448
- * Added animated GIF video conversion.
449
- * Added option to select a specific video resolution when the page first loads.
450
- * Added option to ignore pixel ratios when calculating automatic resolution selection in order to prioritize lower resolutions on mobile devices.
451
- * Added '-noreplace' filename option to prevent automatic video encoding for some videos.
452
- * Added button to clear the whole video encoding queue.
453
- * Added option to send an email when there is a video encoding error.
454
- * Added Google Analytics Event tracking when users watch 25%, 50%, and 75% of a video.
455
- * Added several filter hooks to facilitate customization of the plugin.
456
- * Added Twitter and Facebook share buttons.
457
- * Significantly redesigned video sharing overlay appearance.
458
- * Moved download link to an icon overlay and stopped inserting unnecessary downloadlink attribute in shortcode for videos in the WordPress database.
459
- * Moved resolution switching icon to the left of the fullscreen button.
460
- * Now showing paused video frame while switching resolutions instead of black frame or thumbnail (browser experience may vary).
461
- * Updated oEmbed system to work with new oEmbed features introduced in WordPress 4.4.
462
- * Revised Facebook Open Graph tags so they actually work on Facebook.
463
- * Changed in-browser base64 thumbnail encoding to JPG in order to reduce data transferred when saving. Should reduce 404 errors.
464
- * Improved user role security to prevent unauthorized users from modifying video settings or deleting encoded videos.
465
- * Now using Yoast SEO or All In One SEO Pack post descriptions for description metadata, when available.
466
- * Removed Spanish translation from the distribution in order to favor the new <a href="https://translate.wordpress.org/projects/wp-plugins/video-embed-thumbnail-generator">WordPress language packs</a>.
467
- * Fixed several multisite encoding queue bugs, particularly when videos have identical post IDs on different sites.
468
- * Fixed bug that broke FFMPEG sample encode output and video rotation when a watermark overlay was enabled.
469
- * Fixed bug that incorrectly interpreted FFMPEG output as an error when the last line came from the AAC encoder.
470
- * Fixed bug that didn't initialize the nativecontrolsfortouch plugin setting.
471
- * Fixed bug that didn't set featured images on some videos uploaded using frontend uploaders.
472
- * Fixed bug that hid the wrong headers on the plugin settings tabs in WordPress 4.4+.
473
- * Fixed bug that disabled the text track remove button when editing videos in the media library.
474
- * Fixed bug that redundantly localized the frontend script every time a video was embedded on a page.
475
-
476
- <a href="http://www.kylegilman.net/2011/01/18/video-embed-thumbnail-generator-wordpress-plugin/">See the full changelog on my website.</a>
477
-
478
- == Upgrade Notice ==
479
-
480
- = 4.6.5 =
481
- The plugin is still completely free until version 5.0. Video.js users will notice an updated player design if updating from 4.5.5.
482
-
483
- = 4.6 =
484
- The plugin is still completely free until version 5.0. Video.js users will notice an updated player design.
 
 
 
 
 
 
 
 
 
 
 
1
+ === Video Embed & Thumbnail Generator ===
2
+ Contributors: kylegilman
3
+ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=kylegilman@gmail.com&item_name=Video%20Embed%20And%20Thumbnail%20Generator%20Plugin%20Donation
4
+ Tags: video, video player, video gallery, video thumbnail, ffmpeg, resolution
5
+ Requires at least: 4.4
6
+ Tested up to: 5.6
7
+ Requires PHP: 5.6.0
8
+ Stable tag: 4.6.26
9
+ License: GPLv2 or later
10
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
+
12
+ Makes video thumbnails, allows resolution switching, and embeds responsive self-hosted videos and galleries.
13
+
14
+ == Description ==
15
+
16
+ = A plugin to make embedding videos, generating thumbnails, and encoding files easier. =
17
+
18
+ Not compatible with the new Block Editor. Please continue to use the <a href="https://wordpress.org/plugins/classic-editor/">Classic Editor</a>.
19
+
20
+ Still 100% free, but some advanced features may be converted to premium add-ons in the future. More info in the <a href="https://wordpress.org/support/topic/version-50-will-convert-some-free-features-to-paid-add-ons">support forum</a>.
21
+
22
+ This plugin adds several fields to any video uploaded to the WordPress Media Library. Just choose a few options, make thumbnails, click "Insert into Post" and you'll get a shortcode in the post editor that will embed a flexible, responsive HTML5 video player with Flash fallback for unsupported browsers.
23
+
24
+ You have the option to use a few different video players:
25
+
26
+ * Video.js (files are included with the plugin)
27
+ * The WordPress default player using MediaElement.js, which was introduced in WordPress version 3.6
28
+ * JW Player 6 (if their old, discontinued plugin is already installed. This plugin does not work with JW Player 7 yet.)
29
+ * Adobe's Strobe Media Playback Flash player (deprecated)
30
+
31
+ No matter which player you use, the video will responsively resize to fit the container it's in. If you provide multiple H.264 resolutions, the plugin can automatically select the one closest to the size of the player or a resolution of your choice, and provide a button for users to select the resolution manually. If you have Google Analytics set up on your site, the plugin will automatically send Google Analytics Events when users start, reach 25%, 50%, 75%, and complete watching your videos.
32
+
33
+ You can also use the plugin to create a popup video gallery. The shortcode uses options similar to the WordPress image gallery shortcode. In its simplest form use the code `[KGVID gallery="true"]` to create a gallery of all videos attached to the post. Thumbnail size and video popup size can be set on the plugin settings page or in the shortcode. To make a custom gallery that includes videos that aren't attached to the current post you'll need to determine the video's ID, which is shown under the Video Stats section when viewing the attachment. Switch the "insert" option from "Single Video" to "Video Gallery" and you'll get a number of additional options (all of which are optional). Add a comma-separated list of video IDs in the "Include" field to create a gallery manually. Note: the "Create Gallery" section of the Add Media window is a built-in WordPress function and is only for making image galleries.
34
+
35
+ If your video can be <a href="http://en.wikipedia.org/wiki/HTML5_video#Browser_support">played natively in your browser</a>, or if you have FFMPEG or LIBAV installed on your server, you can generate thumbnails from your video. Using either the "Generate" or "Randomize" buttons will create an array to choose from. The "Generate" button will always generate thumbnails from the same frames of your video, evenly spaced. If you don't like them, you can randomize the results with the "Randomize" button. If you want to see the first frame of the video, check the "Force 1st Frame Thumbnail" button. You can generate as many or as few as you need (up to 99 at a time). After creating an array of thumbnails you can save them all using the "Save all thumbnails" button.
36
+
37
+ If you know which frame you want to use for your thumbnail, click "Choose from video..." to select it from the video. This will only work for <a href="http://en.wikipedia.org/wiki/HTML5_video#Browser_support">videos that can be played natively in your browser</a>. If you want really fine control you can enter timecode in the "Thumbnail timecode" field. Use `mm:ss` format. Use decimals to approximate frames. For example, `23.5` will generate a thumbnail halfway between the 23rd and 24th seconds in the video. `02:23.25` would be one quarter of the way between the 143rd and 144th seconds.
38
+
39
+ After you select a thumbnail it will be registered in the Wordpress Media Library and added to the video's attachments. Unused thumbnails will be deleted.
40
+
41
+ In the plugin settings you can set the default maximum video width and height based on the dimensions of your particular template and those values will be filled in when you open the window. If you generate thumbnails, the video display dimensions will be adjusted automatically to match the size and aspect ratio of the video file. You can make further adjustments if you want. There are options to always fill the width of the template or to always set videos to the maximum width setting regardless of their resolution.
42
+
43
+ If enabled in the plugin settings, Facebook, Twitter, and Schema.org video search engine metadata will be generated for your videos. If your site supports https, your videos can play directly in the Facebook timeline or on Twitter. Twitter requires whitelisting for each domain that provides player cards so you will be required to request whitelisting using the <a href="https://cards-dev.twitter.com/validator">Twitter Card Validator tool</a>. Once you've installed the plugin and enabled the Twitter Cards setting, go to the Twitter Card Validator, enter a secure URL from your site that has a video embedded using this plugin, click "Preview card" and you'll probably see a warning that your site isn't whitelisted. Request whitelisting and Twitter should approve you fairly quickly. Enabling the Facebook or Twitter metadata options will override Jetpack's corresponding metadata whenever a video is embedded on the page. However, your theme or SEO plugins might generate their own metadata that could conflict with this plugin's.
44
+
45
+ You can add subtitle and caption tracks by choosing properly formatted WebVTT files from the media library or entering a URL directly. Enter the two-letter language code and the label text that will be shown to users. Enabling the "default" option will turn the text track on when the page loads. The WordPress default player does not differentiate between captions and subtitles, but Video.js will show a different icon depending on the selection.
46
+
47
+ I highly recommend using <a href="http://handbrake.fr/">Handbrake</a> to make a file with H.264 video and AAC audio in an MP4 container before uploading. If you're encoding with Handbrake make sure that "Web Optimized" is checked. Using Apple's Compressor, the "Streaming" setting should be "Fast Start" (not Fast Start - Compressed Header).
48
+
49
+ The plugin can use FFMPEG or LIBAV to encode videos and make thumbnails if you have one of them installed on your server. You can choose to generate thumbnails and additional video formats automatically whenever a new video is uploaded to the media library, and there are buttons to generate thumbnails and additional video formats for every video already in the media library. If you want most videos to be re-encoded and replaced with a particular format but sometimes want to keep the original video, you can add the suffix '-noreplace' (awesomevid-noreplace.mp4) to your filename and the uploaded video will not be replaced. Other automatic formats will still encode.
50
+
51
+ By default the plugin looks for FFMPEG in `/usr/local/bin` but if the application is installed in a different place on your server, you can point it to the correct place in the plugin settings. Users running WordPress on Windows servers should try using Linux-style paths (with forward slashes instead of backslashes and a forward slash `/` instead of `C:\`). Multisite Super Admins must set the FFMPEG path in the Network settings page which will enable FFMPEG throughout the network.
52
+
53
+ If you have the proper libraries installed on your server, you can choose to replace your uploaded video with your preferred format, and generate as many as seven additional formats depending on your original source. 1080p, 720p, and 360p H.264, same resolution WEBM (VP9 or VP8) and OGV, and a custom format. Different browsers have different playback capabilities. Most desktop browsers can play H.264, and all modern mobile devices can play at least 360p H.264. If you create multiple H.264 resolutions, the highest resolution supported by the device will be served up automatically. The plugin will not upconvert your video, so if you upload a 720p video, it will not waste your time creating a 1080p version. There was a time when it seemed like a good idea to provide OGV or WEBM for some desktop browsers, but Firefox supports native H.264 playback in most operating systems now. I no longer recommend encoding OGV or WEBM unless you're making an open source principled stand against H.264. However, your needs may vary. VP9 WEBM is a next-generation codec not supported by many browsers, but it can make videos much smaller while still retaining quality.
54
+
55
+ The files will encode in the background and will take some time to complete, depending on your server setup and the length and size of your video. VP9 encoding will take much longer than any other format. The plugin adds a Video Encode Queue menu to the Tools menu. You will see encoding progress, the option to cancel an encoding job, and you should get an error message if something goes wrong. Users on Windows servers may get inconsistent results with the encoding queue.
56
+
57
+ Encoded H.264 files can be fixed for streaming using "movflags faststart" introduced in recent versions of FFMPEG/LIBAV, or qt-faststart or MP4Box if you have one of them installed on your server and select it in the plugin settings. Without one of these options enabled, FFMPEG/LIBAV will place moov atoms at the end of H.264 encoded files, which in some cases forces the entire file to download before playback can start.
58
+
59
+ If you want to make OGV, WEBM, or H.264 files available and can't use the FFMPEG encode button, you can upload your own files to the same directory as the original and the plugin will automatically find them. For example, if your main file is awesomevid.mp4, the plugin will look for awesomevid-1080.mp4, awesomevid-720.mp4, awesomevid-360.mp4, awesomevid.webm, awesomevid-vp9.webm, awesomevid.ogv, and awesomevid-custom.mp4 as well. If your videos don't conform to that naming structure, you can manually assign them from the media library. No matter what format your original video is, you can use it in the shortcode and the plugin will attempt to find all compatible formats related to it. For example, you might have an AVI called awesomevid.avi which is not compatible with any browser, but if you have other formats encoded already, `[KGVID]http://yoursite.com/awesomevid.avi[/KGVID]` will ignore the incompatible AVI file, but find those other formats and embed them.
60
+
61
+ If you want to make it easier for users to save your videos to their computers, you can choose to include a link by checking the "Generate Download Link Below Video" button.
62
+
63
+ Sometimes for various reasons you might need to embed video files that are not saved in the Wordpress Media Library. Maybe your file is too large to upload through the media upload form (if it is, I suggest the excellent "<a href='https://wordpress.org/plugins/add-from-server/'>Add From Server</a>" plugin), or maybe it's hosted on another server. Either way, you can use the tab "Embed Video From URL" in the Add Media window. Just enter the Video URL manually, and all other steps are the same as the Media Library options. The plugin will look for alternate encoded files in the same directory as the original, but this takes a long time when the video is on another server so it will only check for them once.
64
+
65
+ To embed videos on other sites you can use code like this.
66
+
67
+ `<iframe src='http://www.kylegilman.net/?attachment_id=2897&kgvid_video_embed[enable]=true' frameborder='0' scrolling='no' width='640' height='360'></iframe>`
68
+
69
+ If you enable oEmbed provider data in the plugin settings, the URL of a post with a video shortcode in it or the URL of the video's attachment page will be converted to an embedded video on sites that allow oEmbed discovery. For example, http://www.kylegilman.net/2011/01/18/video-embed-thumbnail-generator-wordpress-plugin/ is the URL for this plugin on my website, but it has the oEmbed header for the video embedded in it so the URL will be converted to an embedded video on sites with oEmbed discovery enabled. WordPress limits oEmbed providers to an internal whitelist for security reasons. This plugin has an option to enable oEmbed discovery for users with the unfiltered_html capability.
70
+
71
+ = Once you've filled in all your options, click "Insert into Post" and you'll get a shortcode in the visual editor like this =
72
+
73
+ `[KGVID]http://www.kylegilman.net/wp-content/uploads/2006/09/Reel-2012-05-15-720.mp4[/KGVID]`
74
+
75
+ <em>The JW Player 6 plugin has been removed from the WordPress plugin repository and JW Player 7 uses a very different system for embedding videos. JW Player 7 support is not available in this plugin yet. The Strobe Media Playback option hasn't been updated since 2011 and is not recommended, but I'm keeping it around for longtime users of this plugin who don't want to change. Most features of the plugin will work when using Strobe Media Playback, but new features will not be tested with it. Selecting Strobe Media Playback will default to a Flash video player if you're using a Flash-compatible file (flv, f4v, mp4, mov, or m4v). Otherwise it will use the Video.js player as a fallback.</em>
76
+
77
+ = Translations included: =
78
+
79
+ * Español por Andrew Kurtis de <a href="http://www.webhostinghub.com/">WebHostingHub</a>.
80
+ * Français par F.R. 'Friss' Ferry, friss.designs@gmail.com
81
+ * Българска от Емил Георгиев, svinqvmraka@gmail.com
82
+
83
+ I'm not really a software developer. I'm just a film editor with some time on his hands who wanted to post video for clients and wasn't happy with the current state of any available software. But I want to really make this thing work, so please help me out by posting your feedback on <a href="https://github.com/kylegilman/video-embed-thumbnail-generator/issues?state=open">Github</a>.
84
+
85
+ = If you want to further modify the way the video player works, you can add the following options inside the `[KGVID]` tag. These will override anything you've set in the plugin settings or attachment details. If the plugin is installed on your site, this documentation is also available in the post edit help screen. =
86
+
87
+ * `id="xxx"` video attachment ID (instead of using a URL).
88
+ * `videos="x"` number of attached videos to display if no URL or ID is given.
89
+ * `orderby="menu_order/title/post_date/rand/ID"` criteria for sorting attached videos if no URL or ID is given.
90
+ * `order="ASC/DESC"` sort order.
91
+ * `poster="http://www.example.com/image.jpg"` sets the thumbnail.
92
+ * `endofvideooverlay="http://www.example.com/end_image.jpg` sets the image shown when the video ends.
93
+ * `width="xxx"` preferred maximum width in pixels.
94
+ * `height="xxx"` preferred maximum height in pixels.
95
+ * `fullwidth="true/false"` set video to always expand to 100% of its container.
96
+ * `align="left/right/center"`
97
+ * `inline="true/false"` allow other content on the same line as the video
98
+ * `volume="0.x"` pre-sets the volume for unusually loud videos. Value between 0 and 1.
99
+ * `mute="true/false"` sets the mute button on or off.
100
+ * `controlbar="docked/floating/none"` sets the controlbar position. Video.js only responds to the "none" option.
101
+ * `loop="true/false"`
102
+ * `autoplay="true/false"`
103
+ * `playsinline="true/false"` allows videos to play inline on iPhones.
104
+ * `pauseothervideos="true/false"` video will pause other videos on the page when it starts playing.
105
+ * `preload="metadata/auto/none"` indicate how much of the video should be loaded when the page loads.
106
+ * `start="mm:ss"` video will start playing at this timecode.
107
+ * `watermark="http://www.example.com/image.png"` or `"false"` to disable.
108
+ * `watermark_link_to=home/parent/attachment/download/false"`
109
+ * `watermark_url="http://www.example.com/"` or `"false"` to disable. If this is set, it will override the `watermark_link_to` setting.
110
+ * `title="Video Title"` or `"false"` to disable.
111
+ * `embedcode="html code"` changes text displayed in the embed code overlay in order to provide a custom method for embedding a video or `"false"` to disable.
112
+ * `view_count="true/false"` turns the view count on or off.
113
+ * `caption="Caption"` text that is displayed below the video (not subtitles or closed captioning)
114
+ * `description="Description"` Used for metadata only.
115
+ * `downloadlink="true/false"` generates a link below the video to make it easier for users to save the video file to their computers.
116
+ * `right_click="true/false"` allow or disable right-clicking on the video player.
117
+ * `resize="true/false"` allow or disable responsive resizing.
118
+ * `auto_res="automatic/highest/lowest"` specify the video resolution when the page loads.
119
+ * `pixel_ratio="true/false"` account for high-density (retina) displays when choosing automatic video resolution.
120
+ * `schema="true/false"` allow or disable Schema.org search engine metadata.
121
+
122
+ = These options will add a subtitle/caption track =
123
+
124
+ * `track_src="http://www.example.com/subtitles.vtt_.txt"` URL of the WebVTT file.
125
+ * `track_kind=subtitles/captions/chapters`
126
+ * `track_srclang=xx` the track's two-character language code (en, fr, es, etc)
127
+ * `track_label="Track Label"` text that will be shown to the user when selecting the track.
128
+ * `track_default="true/false"` track is enabled by default.
129
+
130
+ = These options will only affect Video.js playback =
131
+
132
+ * `skin="example-css-class"` Completely change the look of the video player. <a href="http://designer.videojs.com/">Video.js provides a custom skin designer here.</a>
133
+ * `nativecontrolsfortouch="true/false` disable Video.js styling and show the built-in video controls on mobile devices. This will disable the resolution selection button.
134
+
135
+ = These options will only affect Flash playback in Strobe Media Playback video elements. They will have no effect on other players. =
136
+
137
+ * `autohide="true/false"` specify whether to autohide the control bar after a few seconds.
138
+ * `playbutton="true/false"` turns the big play button overlay in the middle of the video on or off.
139
+ * `streamtype="live/recorded/DVR"` I honestly don't know what this is for.
140
+ * `scalemode="letterbox/none/stretch/zoom"` If the video display size isn't the same as the video file, this determines how the video will be scaled.
141
+ * `backgroundcolor="#rrggbb"` set the background color to whatever hex code you want.
142
+ * `configuration="http://www.example.com/config.xml"` Lets you specify all these flashvars in an XML file.
143
+ * `skin="http://www.example.com/skin.xml"` Completely change the look of the video player. <a href="http://www.longtailvideo.com/support/jw-player/jw-player-for-flash-v5/14/building-skins">Instructions here.</a>
144
+
145
+ = These options are available for video galleries (options work the same as standard WordPress image galleries) =
146
+
147
+ * `gallery="true"` turns on the gallery
148
+ * `gallery_thumb="xxx"` width in pixels to display gallery thumbnails
149
+ * `gallery_exclude="15,4322"` comma separated video attachment IDs. Excludes the videos from the gallery.
150
+ * `gallery_include="65,32,1533"` comma separated video attachment IDs. Includes only these videos in the gallery. Please note that include and exclude cannot be used together.
151
+ * `gallery_orderby="menu_order/title/post_date/rand/ID"` criteria for sorting the gallery.
152
+ * `gallery_order="ASC/DESC"` sort order.
153
+ * `gallery_id="241"` post ID to display a gallery made up of videos associated with a different post.
154
+ * `gallery_end="close/next"` either close the pop-up or start playing the next video when the current video finishes playing.
155
+ * `gallery_per_page="xx"` or `"false"` to disable pagination. Number of video thumbnails to show on each gallery page.
156
+ * `gallery_title="true/false"` display the title overlay on gallery thumbnails.
157
+
158
+ = These options can be added to the URL to further customize playback =
159
+
160
+ Using the `kgvid_video_embed` query string any of the following options will modify playback: auto_res, autoplay, default_res, fullwidth, height, mute, nativecontrolsfortouch, pixel_ratio, resize, set_volume, start, width
161
+
162
+ Example: `https://www.kylegilman.net/portfolio-item/bronx-warrants-pilot/?kgvid_video_embed[start]=29&kgvid_video_embed[autoplay]=true` autoplays the embedded video and starts 29 seconds in.
163
+
164
+
165
+ == Installation ==
166
+
167
+ 1. Upload the unzipped folder `video-embed-thumbnail-generator` to the `/wp-content/plugins/` directory.
168
+ 1. Activate the plugin through the 'Plugins' menu in WordPress.
169
+ 1. Make sure you have all your MIME types configured correctly. Many servers don't have .mp4, .m4v, or .ogv configured, and even more don't have .webm. There are a number of ways to do this. In your public_html directory you can edit your .htaccess file and add the following lines:
170
+ `AddType video/ogg .ogv
171
+ AddType video/mp4 .mp4
172
+ AddType video/mp4 .m4v
173
+ AddType video/webm .webm`
174
+ Optional: `AddType video/mp4 .mov` will help with IE playback of .mov files but could interfere with other QuickTime players.
175
+
176
+ == Frequently Asked Questions ==
177
+
178
+ = Why doesn't my video play? =
179
+
180
+ Most of the time your video doesn't play because it's not encoded in the right format. Videos have containers like mp4, mov, ogv, mkv, flv, etc and within those containers there are video and audio codecs like H.264, MPEG-4, VP8, etc. The best option for this plugin is an mp4 container with H.264 video and AAC audio. It's confusing, but there is a codec usually identified simply as "MPEG-4" of "MPEG-4 Visual" which is not the same thing as H.264 even if it's in an mp4 container. mp4s with MPEG-4 video will not play in most browsers, and if you don't use AAC audio you won't get any audio. I highly recommend using <a href="http://handbrake.fr/">Handbrake</a> to make a file with H.264 video and AAC audio in an MP4 container.
181
+
182
+ Use <a href="http://mediaarea.net/en/MediaInfo">MediaInfo</a> to get really detailed information about your media files.
183
+
184
+ If your theme loads FitVids.js, it will break playback in Firefox. If you can figure out how to prevent your theme from loading FitVids.js you will not miss it.
185
+
186
+ = Why does my video have to download completely before it starts playing? =
187
+
188
+ mp4/m4v/mov files have something called a moov atom that gives the video player information about the content of the video (dimensions, duration, codecs, etc). Depending on the program you used to make your video, the moov atom can be at the beginning or the end of the file. Most video players will wait until they find the moov atom before starting playback. Otherwise it doesn't know how to display the information it's downloading. If it's at the beginning of the file, playback starts very soon after the user hits the play button. If it's at the end of the file, the whole video has to download before playback starts.
189
+
190
+ There are a number of ways to fix this problem. Most video encoding programs have an option like "Web optimized," "Streaming," "Fast start," or "Progressive download." Try to find and enable that option in your program. If you can't do that, there are programs designed to move the moov atom to the head of the file. Try <a href="http://renaun.com/blog/code/qtindexswapper/">QTIndexSwapper</a> for Adobe Air (cross platform), <a href="http://www.datagoround.com/lab/">MP4 Faststart</a> for Windows, or <a href="http://mac.softpedia.com/get/Video/QTFastStart.shtml">QTFastStart</a> for Mac.
191
+
192
+ FFMPEG puts the moov atom at the end of the file, so this can be a problem. The plugin will fix this problem on newly encoded H.264 videos if you have a recent version of FFMPEG and enable the "movflags faststart" option in the plugin settings or if you have qt-faststart or MP4Box installed on your server.
193
+
194
+ = Why doesn't this work with YouTube? =
195
+
196
+ WordPress already has <a href="http://codex.wordpress.org/Embeds">a built-in system for embedding videos from YouTube, Vimeo, Dailymotion, etc</a>. Just put the URL into your post and WordPress will automatically convert it to an embedded video using oEmbed. You don't need this plugin to do that. If you're trying to generate new thumbnails from YouTube videos, I'm not going to risk Google's wrath by providing that functionality. I'm not even sure I could figure out how to do it anyway.
197
+
198
+ = Why can't I make thumbnails? =
199
+
200
+ If you're like most users and don't have FFMPEG installed on your server, the plugin relies on your browser's built-in ability to play videos. Google Chrome is best when making thumbnails because it supports the most formats. Wikipedia has <a href="http://en.wikipedia.org/wiki/HTML5_video#Browser_support">a great chart that explains which browsers work with which video formats</a>.
201
+
202
+ If you were able to make thumbnails using FFMPEG before updating to version 4.2, try disabling in-browser thumbnail creation in the FFMPEG Settings tab of the plugin settings.
203
+
204
+ = How can I change the watermark's size or position? =
205
+
206
+ The watermark option is a simple image overlay and is styled using CSS. The default styling is
207
+
208
+ `.kgvid_watermark img {
209
+ display: block;
210
+ position: absolute;
211
+ bottom: 7%;
212
+ right: 5%;
213
+ z-index: 1;
214
+ margin: 0px;
215
+ max-width: 10%;
216
+ box-shadow: none;
217
+ }`
218
+
219
+ You can override any of those settings in either your theme's custom CSS area or using the Jetpack "Custom CSS" module. If you want to make the watermark bigger, try something like
220
+
221
+ `.kgvid_watermark img {
222
+ max-width: 20%;
223
+ }`
224
+
225
+ If you want to put it in the upper left instead of the lower right, try something like this:
226
+
227
+ `.kgvid_watermark img {
228
+ top: 7%;
229
+ left: 5%;
230
+ }`
231
+
232
+ = I'm getting an error message FFMPEG not found at /usr/local/bin/. You can embed existing videos, but video thumbnail generation and Mobile/HTML5 video encoding is not possible without FFMPEG. =
233
+
234
+ First off, don't panic.
235
+
236
+ This plugin can use FFMPEG or LIBAV to make thumbnails and create alternate video formats. Unfortunately most servers don't have FFMPEG installed and most shared hosting plans don't allow you to install FFMPEG because of the system resources it requires. You're getting this error message because you don't have FFMPEG installed in the most common directory. If you know you have FFMPEG installed on your server, you'll need to find the actual path to the program and enter it in the plugin settings field `Path to applications on server`
237
+
238
+ Most of the features of the plugin will work without FFMPEG. You can generate embed shortcodes for your videos and make thumbnails on any host because that part of the plugin is JavaScript running in your browser. But without FFMPEG you won't be able to automatically generate thumbnails or encode alternate formats on the server. If you don't have your own VPS or dedicated server, Dreamhost and Arvixe are two of the few shared hosts I know of that has FFMPEG installed and available for users.
239
+
240
+ = How can I encode videos in directories protected by .htaccess passwords? =
241
+
242
+ Enter the username & password in the plugin settings "FFMPEG Settings" tab, or use the "Embed from URL" tab and enter the URL in this format http://username:password@yourdomain.com/uploads/2012/01/awesomevid.mp4 in the Video URL field.
243
+
244
+ == Screenshots ==
245
+
246
+ 1. Thumbnails in the Add Media modal.
247
+ 2. Video Options in the Add Media modal.
248
+ 3. Encoding Queue.
249
+ 4. Shortcode inserted into the post content by the plugin.
250
+
251
+ == Changelog ==
252
+
253
+ = 4.6.26 - December 28, 2020 =
254
+ * Added option to disable shortcode URL rewriting if WordPress doesn't know your videos are hosted on a CDN.
255
+ * Added playsinline attribute to Video.js videos to allow iPhones to play videos inline on web pages.
256
+ * Added filter to manually rewrite shortcode URLs.
257
+ * Changed code that caused fatal error 'Can't use function return value in write context' on PHP versions before 5.5
258
+ * Made gallery thumbnail images responsive.
259
+ * Stopped using deprecated $user_ID global.
260
+ * Fixed bug that crashed WordPress Default player if text tracks were available but no default track was set.
261
+ * Fixed bugs that caused FFMPEG errors if application path contained a space.
262
+
263
+ = 4.6.25 - May 28, 2019 =
264
+ * Fixed bug that broke pop-up galleries when video title had a space in the name.
265
+ * Fixed bug that re-shuffled random gallery order every time a new gallery page was loaded.
266
+ * Fixed bug that disabled auto resolution switching when using the WordPress Default video player.
267
+ * Removed the built-in WordPress Default video player size limit for better responsive sizing.
268
+ * Reduced CPU load when responsive video resizing is enabled.
269
+ * Now selectively enqueuing Video.js resolution selector JavaScript file.
270
+ * Re-ordered resolution list so when original resolution is unknown, "Full" is at the top, enabled translation of the "Full" menu item and now automatically renaming it when video metadata is loaded.
271
+ * Better activation procedure that doesn't generate errors and disables FFMPEG functions if FFMPEG is not found.
272
+ * No longer turning on all video encode formats by default.
273
+ * Fixed bug that couldn't automatically discover alternate formats of videos on other servers via https.
274
+ * Fixed bug that broke tab switching on the settings page when other plugins modified the admin page.
275
+ * Code changes to allow for future child formats that aren't videos.
276
+
277
+ = 4.6.24 - April 1, 2019 =
278
+ * Improved method for assigning Google Analytics Event labels.
279
+
280
+ = 4.6.23 - March 26, 2019 =
281
+ * Added option to override WordPress built-in [video] shortcodes.
282
+ * Fixed bug that prevented generating in-browser thumbnails more than once without reloading the page.
283
+ * Stopped deleting existing thumbnails that are selected from the library.
284
+ * Changed filename of manually selected thumbnails to thumb1.jpg
285
+
286
+ = 4.6.22 - January 30, 2019 =
287
+ * Modularized video file formats that can be encoded by the plugin to allow other plugins to modify, delete, or create new formats.
288
+ * Added Custom WEBM VP9 format option.
289
+ * Renamed WEBM format to WEBM VP8.
290
+ * Fixed bug that deleted unfinished video encode queue entries every 24 hours.
291
+ * Fixed bug that created duplicate encodes of non-H.264 files in some situations.
292
+ * Fixed bug that inconsistently prevented thumbnail generation in the Media Library.
293
+ * Fixed bug that disabled embed from URL "insert into post" button if FFMPEG was not set up on server.
294
+ * Stopped appending timecode numbers to thumbnail filenames.
295
+ * Stopped removing special characters from the end of filenames of generated thumbnails and encoded files.
296
+ * Attempting to fix misconfigured locale settings that can sometimes cause video files with diacritics (accent marks, umlauts, etc) to generate "File not found" errors when using FFMPEG.
297
+ * Removed old Media Library video thumbnail display functionality that was preventing some Media Libraries from loading.
298
+ * Now allowing https FFMPEG input.
299
+
300
+ = 4.6.21 - October 6, 2018 =
301
+ * Updated Video.js to version 5.20.5
302
+ * Added option to constrain video gallery thumbnail aspect ratios when mixed aspect ratios are present in the gallery.
303
+ * Added option to use FFMPEG to add a watermark to thumbnails.
304
+ * Fixed WordPress Default player default subtitles not enabled on page load.
305
+ * Fixed manual thumbnail selection in Media Library page and Safari.
306
+ * Added gtag Google Analytics support.
307
+ * Restored freeze-frame while resolution switching in WordPress Default player and now maintaining video aspect ratio while in fullscreen mode for both players.
308
+ * Added cron check to ensure the rest of the queue encodes when user does not see encoding start.
309
+
310
+ = 4.6.20 - November 14, 2017 =
311
+ * Updated WordPress Default player resizing methods and speed and resolution selector plugins for the new player included with WordPress 4.9.
312
+ * Added 480p resolution option.
313
+ * Added option to hide unwanted encode formats from the attachment pages and encode queue.
314
+ * Fixed bug that prevented 360p encoding for videos less than 480p.
315
+ * Fixed bug that did not automatically select default encoding formats.
316
+
317
+ = 4.6.19 - November 2, 2017 =
318
+ * Fixed shorthand array declaration to retain compatiblity with versions of PHP older than 5.4.
319
+
320
+ = 4.6.18 - November 2, 2017 =
321
+ * Updated Video.js to version 5.20.2
322
+ * No longer double encoding 360p formats for 360p or lower resolution original videos.
323
+ * Enabled subtitles for fullscreen iPhone videos when using the Video.js player.
324
+ * Now allowing external URLs without filename extensions.
325
+ * Fixed FFMPEG thumbnail generation when embedding videos from external URLs.
326
+ * Fixed "Warning illegal string offset 'id'" errors.
327
+
328
+ = 4.6.17 - June 10, 2017 =
329
+ * Updated Video.js to version 5.19.2
330
+ * Better fix for big play button overlay remaining visible on autoplay Video.js videos.
331
+
332
+ = 4.6.16 - March 19, 2017 =
333
+ * Updated Video.js to version 5.18.4
334
+ * Added option for variable playback rates in Video.js and WordPress Default players.
335
+ * Fixed bug that didn't save views when quarter counting was enabled (new installations only).
336
+ * Fixed bug that allowed big play button to remain on screen when videos autoplayed in Firefox and Edge.
337
+ * Fixed query for converting URLs to post IDs when a blank _wp_attached_file is present in the database.
338
+
339
+ = 4.6.15 - February 27, 2017 =
340
+ * Updated Video.js to version 5.16.0
341
+ * Changed source filetype checking to account for URLs with query strings, which allows for signed URLs.
342
+ * Changed VP9 encoding CRF value to the H.264 setting. Using the WEBM setting led to unnecessarily high bitrates.
343
+ * Removed French translation files from distribution to allow updated language packs.
344
+
345
+ = 4.6.14 - January 24, 2017 =
346
+ * Updated Video.js to version 5.15.1
347
+ * Added option to restrict video player aspect ratio to the default aspect ratio.
348
+ * Added option to disable view tracking in the WordPress database.
349
+ * Added option to use FFMPEG's auto rotation feature for vertical videos, available in recent versions of FFMPEG and added a rotated video for testing.
350
+ * Added check for Video.js version in case another application loads an older version. The resolution selector feature will not load if Video.js is not 5.x or above.
351
+ * Added check for a new parent post if a video thumbnail is auto generated before a corresponding post is created. If a new parent exists, the thumbnail is set as the featured image for the new post. This is usually only necessary when used with frontend uploaders.
352
+ * Fixed mixed content warnings in galleries with multiple pages.
353
+ * Changed all `button-secondary` styles to `button`.
354
+ * Added hook for download logging using the single-click download method. An alpha version of a download logging add-on plugin is <a href="https://github.com/kylegilman/file-download-logger">available on GitHub</a>.
355
+
356
+ = 4.6.13 - January 5, 2017 =
357
+ * Updated Video.js player to version 5.14.1
358
+ * Fixed bug that disabled gallery page switching.
359
+ * Delayed automatic resolution switching until playback starts and now sorting sources to make the default resolution the first element and prevent unnecessary source switching after the page loads.
360
+ * Fixed bug that disabled resolution switching if preload is set to "none"
361
+ * Added preload as a shortcode attribute.
362
+ * Delayed loading videos in attachment editing page until needed for thumbnail creation.
363
+ * Fixed manual thumbnail selection in pop-up Media Library windows.
364
+ * Fixed bug that deleted completed same-resolution video files if other video formats were added or removed from the queue before encoding of secondary formats was completed.
365
+ * Fixed deprecated class constructor warning in PHP 7.
366
+ * Removed unnecessary Video.js player re-initializations.
367
+
368
+ = 4.6.12 - September 25, 2016 =
369
+ * Restored Video.js resolution selection in pop-up video galleries.
370
+ * Fixed thumbnail creation bugs in Chrome browser.
371
+ * Fixed missing 'starts' error message when video had never been played.
372
+
373
+ = 4.6.11 - September 17, 2016 =
374
+ * Fixed broken video galleries in AJAX-loaded pages when the option to always load plugin-related JavaScripts is enabled.
375
+ * Fixed untranslated "views" text after video is played.
376
+
377
+ = 4.6.10 - September 14, 2016 =
378
+ * Updated Video.js to version 5.11.6
379
+ * Now forcing Video.js controls to display on mobile devices if the video is not muted. Otherwise autoplay doesn't work and there's no way for the user to start the video.
380
+ * Moved native controls z-index in front of watermark overlay and hid Video.js play button on Android when using native controls option.
381
+ * Fixed bug that constantly reset checkboxes and prevented removing individual formats from the video encode queue.
382
+ * Fixed divide by zero error when video encoding is slower than 1 fps.
383
+ * Fixed missing nonce error when clearing video encode queue.
384
+
385
+ = 4.6.9 - July 25, 2016 =
386
+ * Updated Video.js to version 5.10.7
387
+ * Fixed bug that sometimes prevented thumbnail generation.
388
+ * Fixed bug that prevented selection of encoding error email setting in Network admin page.
389
+ * Added visual feedback while saving manually selected thumbnails.
390
+
391
+ = 4.6.8 - June 22, 2016 =
392
+ * Added keyboard control of video thumbnail selector. Spacebar to play/pause, arrow keys to move one frame forward or back, and JKL playback control. Reverse playback only works in Safari.
393
+ * Added option to pause other videos on the page when starting a new video (or disable it for WP Default player).
394
+ * Added option to always load plugin-related JavaScripts to support AJAX page loading.
395
+ * Added functionality to dynamically embed attached videos outside of the loop.
396
+ * Added check for changed filename extension if a video has been replaced by a different format but is still embedded using the old filename.
397
+ * Fixed bug that disabled styling for WordPress Default video players on the page when embedded after an audio file.
398
+ * Fixed bug that didn't record Video.js pop-up video gallery views or JW Player quarter playback stats.
399
+ * Fixed bug that prevented automatic clearing of old encode queue entries.
400
+ * Fixed bug that doubled non-H.264 video source tags.
401
+ * Fixed bug that prevented encoding 1080p and 720p H.264 videos if original video is not H.264 and has the same resolution.
402
+ * Improved iframe-embedded vertical video resizing.
403
+ * Changed iPhone play button to match Video.js button style.
404
+ * Tweaked embed code overlay styles.
405
+ * Set WordPress Default bottom margin to 0.
406
+
407
+ = 4.6.7 - May 26, 2016 =
408
+ * Updated Video.js to version 5.10.2
409
+ * Fixed bug that set Video.js players to the highest resolution no matter what was set as the default.
410
+ * Added a system to change video playback settings via URL query strings.
411
+ * Added "start" shortcode attribute to start videos at a particular timecode and an option to set the start time in the embed code overlay.
412
+ * Added left/right arrow navigation through video galleries.
413
+ * Changed resizing method when responsive video is disabled.
414
+ * Delayed autoplay command until metadata is loaded in Video.js player.
415
+ * Fixed bug that re-enabled default subtitles in the Video.js player every time play restarted.
416
+ * Fixed bug that left room for captions on all gallery videos if the first video had a caption.
417
+ * Fixed bug that incorrectly resized pop-up gallery window for vertical videos.
418
+
419
+ = 4.6.6 - May 21, 2016 =
420
+ * Added support for Yoast's custom Universal Google Analytics variable name.
421
+ * Modified resizing method for WordPress Default player container again.
422
+ * Updated WordPress Default player's fullscreen resolution calculation to match Video.js change made in v4.6.3
423
+ * Added filter hook to modify FFMPEG-generated thumbnail options.
424
+ * Increased WordPress Default play button z-index.
425
+
426
+ = 4.6.5 - May 13, 2016 =
427
+ * Removed anonymous function to allow the plugin to run on PHP versions lower than 5.3.
428
+ * Added 25%, 50%, and 75% video view tracking to the WordPress admin area.
429
+ * Fixed width="100%" vertical video aspect ratio bug and now allowing other players to work with this still-not-recommended method.
430
+ * Modified resizing method for WordPress default player container.
431
+ * Fixed temporary thumbnail display when switching resolutions in a Video.js player that is set to a different aspect ratio from the video file.
432
+ * Disabled background page rendering request on autosaves and revisions.
433
+ * Adjusted title bar CSS again.
434
+
435
+ = 4.6.4 - May 5, 2016 =
436
+ * Fixed bug that caused an error when feed pages were generated, possibly interrupting autosaves.
437
+
438
+ = 4.6.3 - May 5, 2016 =
439
+ * Updated Video.js to version 5.9.2
440
+ * Changed method for calculating automatic resolution when switching to fullscreen so it's the same as a regular resize event instead of always selecting the highest resolution available.
441
+ * Fixed bug that disabled JW Player selection in the plugin settings page.
442
+ * Fixed bug that always showed text track type selector as "subtitles" in the attachment edit window.
443
+ * Fixed bug that cropped the video title overlay when no sharing icons were enabled.
444
+
445
+ = 4.6.2 - May 2, 2016 =
446
+ * Fixed bug that disabled subtitles/captions button in the WordPress Default player.
447
+ * Fixed bug that broke Video.js players set to width="100%". This has never worked for the WordPress Default player. Using the plugin setting "Set all videos to expand to 100% of their containers" or the shortcode attribute fullwidth="true" is the recommended method, but players will work again for people using width="100%".
448
+ * Changed description of fullwidth setting to make it more clear.
449
+
450
+ = 4.6.1 - May 1, 2016 =
451
+ * Fixed bug that changed the way Video.js players were resized when the specified dimensions did not match the video's actual dimensions.
452
+ * Adjusted CSS for video overlay bar and z-index of the Video.js play button.
453
+
454
+ = 4.6 - April 29, 2016 =
455
+ * Still 100% free. More info in the <a href="https://wordpress.org/support/topic/version-50-will-convert-some-free-features-to-paid-add-ons">support forum</a>.
456
+ * Updated Video.js to version 5.5.3 which includes a revised skin.
457
+ * Added resolution switching for WordPress Default player.
458
+ * Added Twitter Player Cards.
459
+ * Added animated GIF video conversion.
460
+ * Added option to select a specific video resolution when the page first loads.
461
+ * Added option to ignore pixel ratios when calculating automatic resolution selection in order to prioritize lower resolutions on mobile devices.
462
+ * Added '-noreplace' filename option to prevent automatic video encoding for some videos.
463
+ * Added button to clear the whole video encoding queue.
464
+ * Added option to send an email when there is a video encoding error.
465
+ * Added Google Analytics Event tracking when users watch 25%, 50%, and 75% of a video.
466
+ * Added several filter hooks to facilitate customization of the plugin.
467
+ * Added Twitter and Facebook share buttons.
468
+ * Significantly redesigned video sharing overlay appearance.
469
+ * Moved download link to an icon overlay and stopped inserting unnecessary downloadlink attribute in shortcode for videos in the WordPress database.
470
+ * Moved resolution switching icon to the left of the fullscreen button.
471
+ * Now showing paused video frame while switching resolutions instead of black frame or thumbnail (browser experience may vary).
472
+ * Updated oEmbed system to work with new oEmbed features introduced in WordPress 4.4.
473
+ * Revised Facebook Open Graph tags so they actually work on Facebook.
474
+ * Changed in-browser base64 thumbnail encoding to JPG in order to reduce data transferred when saving. Should reduce 404 errors.
475
+ * Improved user role security to prevent unauthorized users from modifying video settings or deleting encoded videos.
476
+ * Now using Yoast SEO or All In One SEO Pack post descriptions for description metadata, when available.
477
+ * Removed Spanish translation from the distribution in order to favor the new <a href="https://translate.wordpress.org/projects/wp-plugins/video-embed-thumbnail-generator">WordPress language packs</a>.
478
+ * Fixed several multisite encoding queue bugs, particularly when videos have identical post IDs on different sites.
479
+ * Fixed bug that broke FFMPEG sample encode output and video rotation when a watermark overlay was enabled.
480
+ * Fixed bug that incorrectly interpreted FFMPEG output as an error when the last line came from the AAC encoder.
481
+ * Fixed bug that didn't initialize the nativecontrolsfortouch plugin setting.
482
+ * Fixed bug that didn't set featured images on some videos uploaded using frontend uploaders.
483
+ * Fixed bug that hid the wrong headers on the plugin settings tabs in WordPress 4.4+.
484
+ * Fixed bug that disabled the text track remove button when editing videos in the media library.
485
+ * Fixed bug that redundantly localized the frontend script every time a video was embedded on a page.
486
+
487
+ <a href="http://www.kylegilman.net/2011/01/18/video-embed-thumbnail-generator-wordpress-plugin/">See the full changelog on my website.</a>
488
+
489
+ == Upgrade Notice ==
490
+
491
+ = 4.6.5 =
492
+ The plugin is still completely free until version 5.0. Video.js users will notice an updated player design if updating from 4.5.5.
493
+
494
+ = 4.6 =
495
+ The plugin is still completely free until version 5.0. Video.js users will notice an updated player design.
uninstall.php CHANGED
@@ -1,23 +1,23 @@
1
- <?php
2
- if ( !defined( 'WP_UNINSTALL_PLUGIN' ) ) { exit(); }
3
-
4
- if ( !is_multisite() ) {
5
- delete_option('kgvid_video_embed_options');
6
- delete_option('kgvid_video_embed_queue');
7
- }
8
- else {
9
-
10
- delete_site_option( 'kgvid_video_embed_network_options' );
11
- delete_site_option( 'kgvid_video_embed_queue' );
12
-
13
- $sites = wp_get_sites();
14
-
15
- if ( is_array($sites) ) {
16
-
17
- foreach ( $sites as $site ) {
18
- delete_blog_option( $site['blog_id'], 'kgvid_video_embed_options' );
19
- delete_blog_option( $site['blog_id'], 'kgvid_video_embed_queue');
20
- }
21
- }
22
- }
23
- ?>
1
+ <?php
2
+ if ( !defined( 'WP_UNINSTALL_PLUGIN' ) ) { exit(); }
3
+
4
+ if ( !is_multisite() ) {
5
+ delete_option('kgvid_video_embed_options');
6
+ delete_option('kgvid_video_embed_queue');
7
+ }
8
+ else {
9
+
10
+ delete_site_option( 'kgvid_video_embed_network_options' );
11
+ delete_site_option( 'kgvid_video_embed_queue' );
12
+
13
+ $sites = wp_get_sites();
14
+
15
+ if ( is_array($sites) ) {
16
+
17
+ foreach ( $sites as $site ) {
18
+ delete_blog_option( $site['blog_id'], 'kgvid_video_embed_options' );
19
+ delete_blog_option( $site['blog_id'], 'kgvid_video_embed_queue');
20
+ }
21
+ }
22
+ }
23
+ ?>
video-embed-thumbnail-generator.php CHANGED
@@ -1,11 +1,11 @@
1
  <?php
2
  /*
3
  Plugin Name: Video Embed & Thumbnail Generator
4
- Plugin URI: http://www.kylegilman.net/2011/01/18/video-embed-thumbnail-generator-wordpress-plugin/
5
  Description: Generates thumbnails, HTML5-compliant videos, and embed codes for locally hosted videos. Requires FFMPEG or LIBAV for encoding.
6
- Version: 4.6.25
7
  Author: Kyle Gilman
8
- Author URI: http://www.kylegilman.net/
9
  Text Domain: video-embed-thumbnail-generator
10
  Domain Path: /languages
11
 
@@ -60,7 +60,7 @@ function kgvid_default_options_fn() {
60
  $edit_others_capable = kgvid_check_if_capable('edit_others_posts');
61
 
62
  $options = array(
63
- "version" => '4.6.25',
64
  "embed_method" => "Video.js",
65
  "jw_player_id" => "",
66
  "template" => false,
@@ -187,7 +187,8 @@ function kgvid_default_options_fn() {
187
  "simultaneous_encodes" => 1,
188
  "error_email" => "nobody",
189
  "alwaysloadscripts" => false,
190
- "replace_video_shortcode" => false
 
191
  );
192
 
193
  $video_formats = kgvid_video_formats();
@@ -536,7 +537,7 @@ function kgvid_video_formats( $return_replace = false, $return_customs = true, $
536
  "default_encode" => false
537
  ),
538
  "custom_vp9" => array(
539
- "name" => __('Custom VP9 WEBMP', 'video-embed-thumbnail-generator'),
540
  "label" => __('Custom VP9 WEBM', 'video-embed-thumbnail-generator'),
541
  "width" => 0,
542
  "height" => 0,
@@ -708,7 +709,7 @@ function kgvid_plugin_meta_links( $links, $file ) {
708
  if ( $file == $plugin ) {
709
  return array_merge(
710
  $links,
711
- array( '<a href="http://www.kylegilman.net/plugin-donation/">Donate</a>' )
712
  );
713
  }
714
  return $links;
@@ -1136,7 +1137,7 @@ function kgvid_check_ffmpeg_exists($options, $save) {
1136
  $exec_enabled = true;
1137
  $test_path = rtrim($options['app_path'], '/');
1138
  $old_locale = kgvid_set_locale(plugin_dir_path(__FILE__).'images/sample-video-h264.mp4'); //fixes UTF-8 encoding problems
1139
- $cmd = escapeshellcmd($test_path.'/'.$options['video_app'].' -i "'.plugin_dir_path(__FILE__).'images/sample-video-h264.mp4" -vframes 1 -f mjpeg '.$uploads['path'].'/ffmpeg_exists_test.jpg').' 2>&1';
1140
  exec ( $cmd, $output, $returnvalue );
1141
  $restore_locale = setlocale(LC_CTYPE, $old_locale);
1142
  }
@@ -2510,7 +2511,7 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_id) {
2510
  else { // $content is a URL
2511
  // workaround for relative video URL (contributed by Lee Fernandes)
2512
  if(substr($content, 0, 1) == '/') $content = get_bloginfo('url').$content;
2513
- $content = trim($content);
2514
  $id_array[0] = kgvid_url_to_id($content);
2515
  }
2516
 
@@ -2539,20 +2540,31 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_id) {
2539
 
2540
  $attachment_url = wp_get_attachment_url($id);
2541
  if ( $attachment_url == false ) { _e("Invalid video ID", 'video-embed-thumbnail-generator'); continue; }
2542
- $exempt_cdns = array(
2543
- 'amazonaws.com',
2544
- 'rackspace.com',
2545
- 'netdna-cdn.com',
2546
- 'nexcess-cdn.net',
2547
- 'limelight.com'
2548
- ); //don't replace URLs that point to CDNs
2549
- $exempt_url = false;
2550
- foreach ( $exempt_cdns as $exempt_cdn ) {
2551
- if ( strpos($content, $exempt_cdn) !== false ) {
2552
- $exempt_url = true;
 
 
 
 
 
 
 
2553
  }
 
2554
  }
2555
- if ( !$exempt_url ) { $content = $attachment_url; }
 
 
 
2556
 
2557
  $encodevideo_info = kgvid_encodevideo_info($content, $id);
2558
  $attachment_info = get_post( $id );
@@ -2569,7 +2581,11 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_id) {
2569
  if ( !empty($poster_id) ) {
2570
  $poster_image_src = wp_get_attachment_image_src($poster_id, 'full');
2571
  $query_atts['poster'] = $poster_image_src[0];
2572
- if ( strpos($query_atts['width'], '%') === false && intval($query_atts['width']) <= get_option('medium_size_h') ) {
 
 
 
 
2573
  $query_atts['poster'] = kgvid_get_attachment_medium_url($poster_id);
2574
  }
2575
  }
@@ -3029,6 +3045,7 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_id) {
3029
  if ( $options['embed_method'] == "Video.js" || $options['embed_method'] == "Strobe Media Playback" ) {
3030
 
3031
  $code .= "\n\t\t\t\t".'<video id="video_'.$div_suffix.'" ';
 
3032
  if ( $query_atts["loop"] == 'true') { $code .= 'loop '; }
3033
  if ( $query_atts["autoplay"] == 'true') { $code .= 'autoplay '; }
3034
  if ( $query_atts["controlbar"] != 'none') { $code .= 'controls '; }
@@ -3269,6 +3286,7 @@ function kgvid_shortcode_atts($atts) {
3269
  'loop' => $options['loop'],
3270
  'autoplay' => $options['autoplay'],
3271
  'pauseothervideos' => $options['pauseothervideos'],
 
3272
  'streamtype' => $options['stream_type'],
3273
  'scalemode' => $options['scale_mode'],
3274
  'backgroundcolor' => $options['bgcolor'],
@@ -3448,7 +3466,6 @@ function KGVID_shortcode($atts, $content = '') {
3448
  if ( $query_atts['align'] == "left" ) { $aligncode = ' kgvid_textalign_left'; }
3449
  if ( $query_atts['align'] == "center" ) { $aligncode = ' kgvid_textalign_center'; }
3450
  if ( $query_atts['align'] == "right" ) { $aligncode = ' kgvid_textalign_right'; }
3451
- if ( $query_atts['inline'] == "true" ) { $aligncode .= ' kgvid_wrapper_inline'; }
3452
 
3453
  $code .= '<div class="kgvid_gallerywrapper'.$aligncode.'" id="kgvid_gallery_'.$kgvid_gallery_id.'" data-query_atts="'.esc_attr(json_encode($gallery_query_atts)).'">';
3454
  $code .= kgvid_gallery_page(1, $gallery_query_atts);
@@ -3728,7 +3745,7 @@ add_action('wp_ajax_kgvid_generate_encode_checkboxes', 'kgvid_ajax_generate_enco
3728
 
3729
  function kgvid_generate_encode_checkboxes($movieurl, $post_id, $page, $blog_id = false) {
3730
 
3731
- global $user_ID;
3732
 
3733
  $options = kgvid_get_options();
3734
  $video_encode_queue = kgvid_get_encode_queue();
@@ -3853,7 +3870,7 @@ function kgvid_generate_encode_checkboxes($movieurl, $post_id, $page, $blog_id =
3853
 
3854
  foreach ( $video_formats as $format => $format_stats ) {
3855
 
3856
- if ( strpos($post_mime_type, $format) !== false ) { continue; } //skip webm or ogv checkbox if the video is webm or ogv
3857
 
3858
  if ( empty($movieurl) ) { $disabled[$format] = ' disabled title="Please enter a valid video URL"'; }
3859
 
@@ -4523,6 +4540,7 @@ function kgvid_video_embed_options_init() {
4523
  add_settings_field('count_views', __("View counting:", 'video-embed-thumbnail-generator'), 'kgvid_view_counting_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'count_views' ) );
4524
  add_settings_field('replacevideoshortcode', __("Replace video shortcode:", 'video-embed-thumbnail-generator'), 'kgvid_replace_video_shortcode_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'replace_video_shortcode' ) );
4525
  add_settings_field('scriptloading', __("Script loading:", 'video-embed-thumbnail-generator'), 'kgvid_scriptloading_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'alwaysloadscripts' ) );
 
4526
  add_settings_field('generate_thumbs', __('Default number of thumbnails to generate:', 'video-embed-thumbnail-generator'), 'kgvid_generate_thumbs_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'generate_thumbs' ) );
4527
  add_settings_field('featured', __('Featured image:', 'video-embed-thumbnail-generator'), 'kgvid_featured_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'featured' ) );
4528
  add_settings_field('thumb_parent', __('Attach thumbnails to:', 'video-embed-thumbnail-generator'), 'kgvid_thumb_parent_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'thumb_parent' ) );
@@ -4908,6 +4926,11 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
4908
  echo "<input ".checked( $options['alwaysloadscripts'], "on", false )." id='alwaysloadscripts' name='kgvid_video_embed_options[alwaysloadscripts]' type='checkbox' /> <label for='alwaysloadscripts'>".__('Always load plugin-related JavaScripts.', 'video-embed-thumbnail-generator')."</label> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__("Usually the plugin's JavaScripts are only loaded if a video is present on the page. AJAX page loading can cause errors because the JavaScripts aren't loaded with the video content. Enabling this option will make sure the JavaScripts are always loaded.", 'video-embed-thumbnail-generator')."</span></span><br />";
4909
  }
4910
 
 
 
 
 
 
4911
  function kgvid_generate_thumbs_callback() {
4912
  $options = kgvid_get_options();
4913
  echo "<input class='small-text' id='generate_thumbs' name='kgvid_video_embed_options[generate_thumbs]' maxlength='2' type='text' value='".strval($options['generate_thumbs'])."' />\n\t";
@@ -5667,6 +5690,11 @@ function kgvid_update_settings() {
5667
  $options['replace_video_shortcode'] = false;
5668
  }
5669
 
 
 
 
 
 
5670
  if ( $options['version'] != $default_options['version'] ) { $options['version'] = $default_options['version']; }
5671
  if ( $options !== $options_old ) { update_option('kgvid_video_embed_options', $options); }
5672
  }
@@ -6175,8 +6203,7 @@ function kgvid_image_attachment_fields_to_edit($form_fields, $post) {
6175
  wp_enqueue_script( 'kgvid_video_plugin_admin' );
6176
  wp_enqueue_style( 'video_embed_thumbnail_generator_style' );
6177
 
6178
- global $user_ID;
6179
-
6180
  $field_id = kgvid_backwards_compatible($post->ID);
6181
  $movieurl = wp_get_attachment_url($post->ID);
6182
  $moviefile = get_attached_file($post->ID);
@@ -6622,8 +6649,7 @@ add_action('wp_ajax_kgvid_save_thumb', 'kgvid_ajax_save_thumb');
6622
 
6623
  function kgvid_save_thumb($post_id, $post_name, $thumb_url, $index=false) {
6624
 
6625
- global $user_ID;
6626
-
6627
  $options = kgvid_get_options();
6628
  $uploads = wp_upload_dir();
6629
 
@@ -7403,8 +7429,8 @@ function kgvid_make_thumbs($postID, $movieurl, $numberofthumbs, $i, $iincreaser,
7403
  $movieoffset = "0";
7404
  }
7405
 
7406
- $thumbnailfilename[$i] = $jpgpath.$sanitized_url['basename']."_thumb".$i.".jpg";
7407
- $thumbnailfilename[$i] = str_replace(" ", "_", $thumbnailfilename[$i]);
7408
 
7409
  if ( !empty($options['htaccess_login']) && strpos($moviefilepath, 'http://') === 0 ) {
7410
  $moviefilepath = substr_replace($moviefilepath, $options['htaccess_login'].':'.$options['htaccess_password'].'@', 7, 0);
@@ -7967,7 +7993,7 @@ function kgvid_test_ffmpeg() {
7967
  if (!file_exists($uploads['path'].'/thumb_tmp')) { mkdir($uploads['path'].'/thumb_tmp'); }
7968
 
7969
  $old_locale = kgvid_set_locale($uploads['path']."/sample-video-h264".$suffix); //fixes UTF-8 encoding problems
7970
- $cmd = escapeshellcmd($options['app_path'].'/'.$options['video_app'].' -y -i "'.$uploads['path']."/sample-video-h264".$suffix.'" -qscale 1 -vframes 1 -f mjpeg '.$uploads['path'].'/thumb_tmp/watermark_test.jpg');
7971
  exec ( $cmd );
7972
  $restore_locale = setlocale(LC_CTYPE, $old_locale);
7973
  kgvid_schedule_cleanup_generated_files('thumbs');
@@ -8159,7 +8185,7 @@ function kgvid_encode_progress($video_key, $format, $page) {
8159
  $title = $sanitized_url['basename'];
8160
  }
8161
 
8162
- global $user_ID;
8163
  $video_id = kgvid_url_to_id($video_encode_queue[$video_key]['encode_formats'][$format]['url']);
8164
  if ( !$video_id ) {
8165
  $wp_filetype = wp_check_filetype(basename($filepath), null );
@@ -8467,7 +8493,7 @@ add_action('kgvid_cron_replace_video_check', 'kgvid_replace_video', 10, 2);
8467
 
8468
  function kgvid_clear_completed_queue($type, $scope = 'site') {
8469
 
8470
- global $user_ID;
8471
 
8472
  $video_encode_queue = kgvid_get_encode_queue();
8473
 
@@ -8668,7 +8694,7 @@ add_action('wp_ajax_kgvid_delete_video', 'kgvid_ajax_delete_video');
8668
  function kgvid_delete_video_attachment($video_id) {
8669
 
8670
  if ( strpos(get_post_mime_type( $video_id ), 'video') !== false
8671
- || !empty(get_post_meta($video_id, '_kgflashmediaplayer-format', true))
8672
  ) { //only do this for videos or other child formats
8673
 
8674
  $parent_post = get_post($video_id);
@@ -9063,6 +9089,7 @@ function kgvid_add_contextual_help_tab() {
9063
  <li><code>controlbar="docked/floating/none"</code> '.__('sets the controlbar position. "Floating" option only works with Strobe Media Playback.', 'video-embed-thumbnail-generator').'</li>
9064
  <li><code>loop="true/false"</code></li>
9065
  <li><code>autoplay="true/false"</code></li>
 
9066
  <li><code>pauseothervideos="true/false"</code> '.__('video will pause other videos on the page when it starts playing.', 'video-embed-thumbnail-generator').'</li>
9067
  <li><code>preload="metadata/auto/none"</code> '.__('indicate how much of the video should be loaded when the page loads.', 'video-embed-thumbnail-generator').'</li>
9068
  <li><code>start="mm:ss"</code> '.__('video will start playing at this timecode.', 'video-embed-thumbnail-generator').'</li>
1
  <?php
2
  /*
3
  Plugin Name: Video Embed & Thumbnail Generator
4
+ Plugin URI: https://www.kylegilman.net/2011/01/18/video-embed-thumbnail-generator-wordpress-plugin/
5
  Description: Generates thumbnails, HTML5-compliant videos, and embed codes for locally hosted videos. Requires FFMPEG or LIBAV for encoding.
6
+ Version: 4.6.26
7
  Author: Kyle Gilman
8
+ Author URI: https://www.kylegilman.net/
9
  Text Domain: video-embed-thumbnail-generator
10
  Domain Path: /languages
11
 
60
  $edit_others_capable = kgvid_check_if_capable('edit_others_posts');
61
 
62
  $options = array(
63
+ "version" => '4.6.26',
64
  "embed_method" => "Video.js",
65
  "jw_player_id" => "",
66
  "template" => false,
187
  "simultaneous_encodes" => 1,
188
  "error_email" => "nobody",
189
  "alwaysloadscripts" => false,
190
+ "replace_video_shortcode" => false,
191
+ "rewrite_attachment_url" => 'on'
192
  );
193
 
194
  $video_formats = kgvid_video_formats();
537
  "default_encode" => false
538
  ),
539
  "custom_vp9" => array(
540
+ "name" => __('Custom VP9 WEBM', 'video-embed-thumbnail-generator'),
541
  "label" => __('Custom VP9 WEBM', 'video-embed-thumbnail-generator'),
542
  "width" => 0,
543
  "height" => 0,
709
  if ( $file == $plugin ) {
710
  return array_merge(
711
  $links,
712
+ array( '<a href="https://www.kylegilman.net/plugin-donation/">Donate</a>' )
713
  );
714
  }
715
  return $links;
1137
  $exec_enabled = true;
1138
  $test_path = rtrim($options['app_path'], '/');
1139
  $old_locale = kgvid_set_locale(plugin_dir_path(__FILE__).'images/sample-video-h264.mp4'); //fixes UTF-8 encoding problems
1140
+ $cmd = escapeshellcmd($test_path.'/'.$options['video_app'].' -i "'.plugin_dir_path(__FILE__).'images/sample-video-h264.mp4" -vframes 1 -f mjpeg "'.$uploads['path'].'/ffmpeg_exists_test.jpg').'" 2>&1';
1141
  exec ( $cmd, $output, $returnvalue );
1142
  $restore_locale = setlocale(LC_CTYPE, $old_locale);
1143
  }
2511
  else { // $content is a URL
2512
  // workaround for relative video URL (contributed by Lee Fernandes)
2513
  if(substr($content, 0, 1) == '/') $content = get_bloginfo('url').$content;
2514
+ $content = apply_filters('kgvid_filter_url', trim($content));
2515
  $id_array[0] = kgvid_url_to_id($content);
2516
  }
2517
 
2540
 
2541
  $attachment_url = wp_get_attachment_url($id);
2542
  if ( $attachment_url == false ) { _e("Invalid video ID", 'video-embed-thumbnail-generator'); continue; }
2543
+
2544
+ if ( $options['rewrite_attachment_url'] == 'on' ) {
2545
+
2546
+ $rewrite_url = true;
2547
+
2548
+ //in case user doesn't know about this setting still check manually for popular CDNs like we used to
2549
+ $exempt_cdns = array(
2550
+ 'amazonaws.com',
2551
+ 'rackspace.com',
2552
+ 'netdna-cdn.com',
2553
+ 'nexcess-cdn.net',
2554
+ 'limelight.com',
2555
+ 'digitaloceanspaces.com'
2556
+ ); //don't replace URLs that point to CDNs
2557
+ foreach ( $exempt_cdns as $exempt_cdn ) {
2558
+ if ( strpos($content, $exempt_cdn) !== false ) {
2559
+ $rewrite_url = false;
2560
+ }
2561
  }
2562
+
2563
  }
2564
+ else {
2565
+ $rewrite_url = false;
2566
+ }
2567
+ if ( $rewrite_url || $content == '' ) { $content = $attachment_url; }
2568
 
2569
  $encodevideo_info = kgvid_encodevideo_info($content, $id);
2570
  $attachment_info = get_post( $id );
2581
  if ( !empty($poster_id) ) {
2582
  $poster_image_src = wp_get_attachment_image_src($poster_id, 'full');
2583
  $query_atts['poster'] = $poster_image_src[0];
2584
+ if ( strpos($query_atts['width'], '%') === false
2585
+ && $query_atts['resize'] == 'false'
2586
+ && $query_atts['fullwidth'] == 'false'
2587
+ && intval($query_atts['width']) <= get_option('medium_size_h')
2588
+ ) {
2589
  $query_atts['poster'] = kgvid_get_attachment_medium_url($poster_id);
2590
  }
2591
  }
3045
  if ( $options['embed_method'] == "Video.js" || $options['embed_method'] == "Strobe Media Playback" ) {
3046
 
3047
  $code .= "\n\t\t\t\t".'<video id="video_'.$div_suffix.'" ';
3048
+ if ( $query_atts["playsinline"] == 'true' ) { $code .= 'playsinline '; }
3049
  if ( $query_atts["loop"] == 'true') { $code .= 'loop '; }
3050
  if ( $query_atts["autoplay"] == 'true') { $code .= 'autoplay '; }
3051
  if ( $query_atts["controlbar"] != 'none') { $code .= 'controls '; }
3286
  'loop' => $options['loop'],
3287
  'autoplay' => $options['autoplay'],
3288
  'pauseothervideos' => $options['pauseothervideos'],
3289
+ 'playsinline' => 'true',
3290
  'streamtype' => $options['stream_type'],
3291
  'scalemode' => $options['scale_mode'],
3292
  'backgroundcolor' => $options['bgcolor'],
3466
  if ( $query_atts['align'] == "left" ) { $aligncode = ' kgvid_textalign_left'; }
3467
  if ( $query_atts['align'] == "center" ) { $aligncode = ' kgvid_textalign_center'; }
3468
  if ( $query_atts['align'] == "right" ) { $aligncode = ' kgvid_textalign_right'; }
 
3469
 
3470
  $code .= '<div class="kgvid_gallerywrapper'.$aligncode.'" id="kgvid_gallery_'.$kgvid_gallery_id.'" data-query_atts="'.esc_attr(json_encode($gallery_query_atts)).'">';
3471
  $code .= kgvid_gallery_page(1, $gallery_query_atts);
3745
 
3746
  function kgvid_generate_encode_checkboxes($movieurl, $post_id, $page, $blog_id = false) {
3747
 
3748
+ $user_ID = get_current_user_id();
3749
 
3750
  $options = kgvid_get_options();
3751
  $video_encode_queue = kgvid_get_encode_queue();
3870
 
3871
  foreach ( $video_formats as $format => $format_stats ) {
3872
 
3873
+ if ( strpos($post_mime_type, strval($format)) !== false ) { continue; } //skip webm or ogv checkbox if the video is webm or ogv
3874
 
3875
  if ( empty($movieurl) ) { $disabled[$format] = ' disabled title="Please enter a valid video URL"'; }
3876
 
4540
  add_settings_field('count_views', __("View counting:", 'video-embed-thumbnail-generator'), 'kgvid_view_counting_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'count_views' ) );
4541
  add_settings_field('replacevideoshortcode', __("Replace video shortcode:", 'video-embed-thumbnail-generator'), 'kgvid_replace_video_shortcode_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'replace_video_shortcode' ) );
4542
  add_settings_field('scriptloading', __("Script loading:", 'video-embed-thumbnail-generator'), 'kgvid_scriptloading_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'alwaysloadscripts' ) );
4543
+ add_settings_field('rewrite_attachment_url', __("Attachment URL Rewriting:", 'video-embed-thumbnail-generator'), 'kgvid_rewrite_attachment_url_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'rewrite_attachment_url' ) );
4544
  add_settings_field('generate_thumbs', __('Default number of thumbnails to generate:', 'video-embed-thumbnail-generator'), 'kgvid_generate_thumbs_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'generate_thumbs' ) );
4545
  add_settings_field('featured', __('Featured image:', 'video-embed-thumbnail-generator'), 'kgvid_featured_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'featured' ) );
4546
  add_settings_field('thumb_parent', __('Attach thumbnails to:', 'video-embed-thumbnail-generator'), 'kgvid_thumb_parent_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'thumb_parent' ) );
4926
  echo "<input ".checked( $options['alwaysloadscripts'], "on", false )." id='alwaysloadscripts' name='kgvid_video_embed_options[alwaysloadscripts]' type='checkbox' /> <label for='alwaysloadscripts'>".__('Always load plugin-related JavaScripts.', 'video-embed-thumbnail-generator')."</label> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__("Usually the plugin's JavaScripts are only loaded if a video is present on the page. AJAX page loading can cause errors because the JavaScripts aren't loaded with the video content. Enabling this option will make sure the JavaScripts are always loaded.", 'video-embed-thumbnail-generator')."</span></span><br />";
4927
  }
4928
 
4929
+ function kgvid_rewrite_attachment_url_callback() {
4930
+ $options = kgvid_get_options();
4931
+ echo "<input ".checked( $options['rewrite_attachment_url'], "on", false )." id='rewrite_attachment_url' name='kgvid_video_embed_options[rewrite_attachment_url]' type='checkbox' /> <label for='rewrite_attachment_url'>".__("Allow rewriting of WordPress attachment URLs.", 'video-embed-thumbnail-generator')."</label> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__("If your videos are hosted on a CDN, WordPress might return incorrect URLs for attachments in the Media Library. Disable this setting if the plugin is changing your URLs to local files instead of the CDN.", 'video-embed-thumbnail-generator')."</span></span><br />";
4932
+ }
4933
+
4934
  function kgvid_generate_thumbs_callback() {
4935
  $options = kgvid_get_options();
4936
  echo "<input class='small-text' id='generate_thumbs' name='kgvid_video_embed_options[generate_thumbs]' maxlength='2' type='text' value='".strval($options['generate_thumbs'])."' />\n\t";
5690
  $options['replace_video_shortcode'] = false;
5691
  }
5692
 
5693
+ if ( version_compare( $options['version'], '4.6.26', '<' ) ) {
5694
+ $options['version'] = '4.6.26';
5695
+ $options['rewrite_attachment_url'] = 'on';
5696
+ }
5697
+
5698
  if ( $options['version'] != $default_options['version'] ) { $options['version'] = $default_options['version']; }
5699
  if ( $options !== $options_old ) { update_option('kgvid_video_embed_options', $options); }
5700
  }
6203
  wp_enqueue_script( 'kgvid_video_plugin_admin' );
6204
  wp_enqueue_style( 'video_embed_thumbnail_generator_style' );
6205
 
6206
+ $user_ID = get_current_user_id();
 
6207
  $field_id = kgvid_backwards_compatible($post->ID);
6208
  $movieurl = wp_get_attachment_url($post->ID);
6209
  $moviefile = get_attached_file($post->ID);
6649
 
6650
  function kgvid_save_thumb($post_id, $post_name, $thumb_url, $index=false) {
6651
 
6652
+ $user_ID = get_current_user_id();
 
6653
  $options = kgvid_get_options();
6654
  $uploads = wp_upload_dir();
6655
 
7429
  $movieoffset = "0";
7430
  }
7431
 
7432
+ $thumbnailfilename[$i] = str_replace(" ", "_", $sanitized_url['basename']."_thumb".$i.".jpg");
7433
+ $thumbnailfilename[$i] = $jpgpath.$thumbnailfilename[$i];
7434
 
7435
  if ( !empty($options['htaccess_login']) && strpos($moviefilepath, 'http://') === 0 ) {
7436
  $moviefilepath = substr_replace($moviefilepath, $options['htaccess_login'].':'.$options['htaccess_password'].'@', 7, 0);
7993
  if (!file_exists($uploads['path'].'/thumb_tmp')) { mkdir($uploads['path'].'/thumb_tmp'); }
7994
 
7995
  $old_locale = kgvid_set_locale($uploads['path']."/sample-video-h264".$suffix); //fixes UTF-8 encoding problems
7996
+ $cmd = escapeshellcmd($options['app_path'].'/'.$options['video_app'].' -y -i "'.$uploads['path']."/sample-video-h264".$suffix.'" -qscale 1 -vframes 1 -f mjpeg "'.$uploads['path'].'/thumb_tmp/watermark_test.jpg'.'"');
7997
  exec ( $cmd );
7998
  $restore_locale = setlocale(LC_CTYPE, $old_locale);
7999
  kgvid_schedule_cleanup_generated_files('thumbs');
8185
  $title = $sanitized_url['basename'];
8186
  }
8187
 
8188
+ $user_ID = get_current_user_id();
8189
  $video_id = kgvid_url_to_id($video_encode_queue[$video_key]['encode_formats'][$format]['url']);
8190
  if ( !$video_id ) {
8191
  $wp_filetype = wp_check_filetype(basename($filepath), null );
8493
 
8494
  function kgvid_clear_completed_queue($type, $scope = 'site') {
8495
 
8496
+ $user_ID = get_current_user_id();
8497
 
8498
  $video_encode_queue = kgvid_get_encode_queue();
8499
 
8694
  function kgvid_delete_video_attachment($video_id) {
8695
 
8696
  if ( strpos(get_post_mime_type( $video_id ), 'video') !== false
8697
+ || ! (get_post_meta($video_id, '_kgflashmediaplayer-format', true))
8698
  ) { //only do this for videos or other child formats
8699
 
8700
  $parent_post = get_post($video_id);
9089
  <li><code>controlbar="docked/floating/none"</code> '.__('sets the controlbar position. "Floating" option only works with Strobe Media Playback.', 'video-embed-thumbnail-generator').'</li>
9090
  <li><code>loop="true/false"</code></li>
9091
  <li><code>autoplay="true/false"</code></li>
9092
+ <li><code>playsinline="true/false"</code> '.__('allows videos to play inline on iPhones.', 'video-embed-thumbnail-generator').'</li>
9093
  <li><code>pauseothervideos="true/false"</code> '.__('video will pause other videos on the page when it starts playing.', 'video-embed-thumbnail-generator').'</li>
9094
  <li><code>preload="metadata/auto/none"</code> '.__('indicate how much of the video should be loaded when the page loads.', 'video-embed-thumbnail-generator').'</li>
9095
  <li><code>start="mm:ss"</code> '.__('video will start playing at this timecode.', 'video-embed-thumbnail-generator').'</li>
video-js/font/VideoJS.eot CHANGED
File without changes
video-js/font/VideoJS.svg CHANGED
@@ -1,102 +1,102 @@
1
- <?xml version="1.0" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
- <svg xmlns="http://www.w3.org/2000/svg">
4
- <defs>
5
- <font id="VideoJS" horiz-adv-x="1792">
6
- <font-face font-family="VideoJS"
7
- units-per-em="1792" ascent="1792"
8
- descent="0" />
9
- <missing-glyph horiz-adv-x="0" />
10
- <glyph glyph-name="play"
11
- unicode="&#xF101;"
12
- horiz-adv-x="1792" d=" M597.3333333333334 1418.6666666666665V373.3333333333333L1418.6666666666667 896z" />
13
- <glyph glyph-name="play-circle"
14
- unicode="&#xF102;"
15
- horiz-adv-x="1792" d=" M746.6666666666667 560L1194.6666666666667 896L746.6666666666667 1232V560zM896 1642.6666666666667C483.4666666666667 1642.6666666666667 149.3333333333334 1308.5333333333333 149.3333333333334 896S483.4666666666667 149.3333333333333 896 149.3333333333333S1642.6666666666667 483.4666666666667 1642.6666666666667 896S1308.5333333333333 1642.6666666666667 896 1642.6666666666667zM896 298.6666666666665C566.72 298.6666666666665 298.6666666666667 566.7199999999998 298.6666666666667 896S566.72 1493.3333333333333 896 1493.3333333333333S1493.3333333333335 1225.28 1493.3333333333335 896S1225.2800000000002 298.6666666666665 896 298.6666666666665z" />
16
- <glyph glyph-name="pause"
17
- unicode="&#xF103;"
18
- horiz-adv-x="1792" d=" M448 373.3333333333333H746.6666666666667V1418.6666666666665H448V373.3333333333333zM1045.3333333333335 1418.6666666666665V373.3333333333333H1344V1418.6666666666665H1045.3333333333335z" />
19
- <glyph glyph-name="volume-mute"
20
- unicode="&#xF104;"
21
- horiz-adv-x="1792" d=" M1232 896C1232 1027.7866666666666 1155.8400000000001 1141.6533333333332 1045.3333333333335 1196.5333333333333V1031.52L1228.6399999999999 848.2133333333334C1230.88 863.8933333333334 1232 879.9466666666667 1232 896.0000000000001zM1418.6666666666667 896C1418.6666666666667 825.8133333333333 1403.3600000000001 759.7333333333333 1378.3466666666668 698.8799999999999L1491.466666666667 585.7599999999998C1540 678.72 1568 783.9999999999999 1568 896C1568 1215.5733333333333 1344.3733333333334 1482.88 1045.3333333333335 1550.8266666666666V1396.6399999999999C1261.1200000000001 1332.4266666666667 1418.6666666666667 1132.6933333333332 1418.6666666666667 896zM319.2000000000001 1568L224 1472.8L576.8 1120H224V672H522.6666666666667L896 298.6666666666665V800.8L1213.7066666666667 483.0933333333332C1163.68 444.6399999999999 1107.3066666666666 413.6533333333332 1045.3333333333335 394.9866666666665V240.7999999999998C1148 264.32 1241.7066666666667 311.3599999999997 1320.48 375.9466666666663L1472.8000000000002 224L1568 319.1999999999998L896 991.1999999999998L319.2000000000001 1568zM896 1493.3333333333333L739.9466666666667 1337.28L896 1181.2266666666667V1493.3333333333333z" />
22
- <glyph glyph-name="volume-low"
23
- unicode="&#xF105;"
24
- horiz-adv-x="1792" d=" M522.6666666666667 1120V672H821.3333333333334L1194.6666666666667 298.6666666666665V1493.3333333333333L821.3333333333334 1120H522.6666666666667z" />
25
- <glyph glyph-name="volume-mid"
26
- unicode="&#xF106;"
27
- horiz-adv-x="1792" d=" M1381.3333333333335 896C1381.3333333333335 1027.7866666666666 1305.1733333333334 1141.6533333333332 1194.6666666666667 1196.5333333333333V595.0933333333332C1305.1733333333334 650.3466666666666 1381.3333333333335 764.2133333333331 1381.3333333333335 896zM373.3333333333334 1120V672H672L1045.3333333333335 298.6666666666665V1493.3333333333333L672 1120H373.3333333333334z" />
28
- <glyph glyph-name="volume-high"
29
- unicode="&#xF107;"
30
- horiz-adv-x="1792" d=" M224 1120V672H522.6666666666667L896 298.6666666666665V1493.3333333333333L522.6666666666667 1120H224zM1232 896C1232 1027.7866666666666 1155.8400000000001 1141.6533333333332 1045.3333333333335 1196.5333333333333V595.0933333333332C1155.8400000000001 650.3466666666666 1232 764.2133333333331 1232 896zM1045.3333333333335 1550.8266666666666V1396.6399999999999C1261.1200000000001 1332.4266666666667 1418.6666666666667 1132.6933333333332 1418.6666666666667 896S1261.1200000000001 459.5733333333333 1045.3333333333335 395.3600000000002V241.1733333333332C1344.3733333333334 309.1199999999999 1568 576.0533333333333 1568 896S1344.3733333333334 1482.88 1045.3333333333335 1550.8266666666666z" />
31
- <glyph glyph-name="fullscreen-enter"
32
- unicode="&#xF108;"
33
- horiz-adv-x="1792" d=" M522.6666666666667 746.6666666666665H373.3333333333334V373.3333333333333H746.6666666666667V522.6666666666665H522.6666666666667V746.6666666666665zM373.3333333333334 1045.3333333333333H522.6666666666667V1269.3333333333333H746.6666666666667V1418.6666666666665H373.3333333333334V1045.3333333333333zM1269.3333333333335 522.6666666666665H1045.3333333333335V373.3333333333333H1418.6666666666667V746.6666666666665H1269.3333333333335V522.6666666666665zM1045.3333333333335 1418.6666666666665V1269.3333333333333H1269.3333333333335V1045.3333333333333H1418.6666666666667V1418.6666666666665H1045.3333333333335z" />
34
- <glyph glyph-name="fullscreen-exit"
35
- unicode="&#xF109;"
36
- horiz-adv-x="1792" d=" M373.3333333333334 597.3333333333333H597.3333333333334V373.3333333333333H746.6666666666667V746.6666666666665H373.3333333333334V597.3333333333333zM597.3333333333334 1194.6666666666665H373.3333333333334V1045.3333333333333H746.6666666666667V1418.6666666666665H597.3333333333334V1194.6666666666665zM1045.3333333333335 373.3333333333333H1194.6666666666667V597.3333333333333H1418.6666666666667V746.6666666666665H1045.3333333333335V373.3333333333333zM1194.6666666666667 1194.6666666666665V1418.6666666666665H1045.3333333333335V1045.3333333333333H1418.6666666666667V1194.6666666666665H1194.6666666666667z" />
37
- <glyph glyph-name="square"
38
- unicode="&#xF10A;"
39
- horiz-adv-x="1792" d=" M1344 1493.3333333333333H448C365.4933333333334 1493.3333333333333 298.6666666666667 1426.5066666666667 298.6666666666667 1344V448C298.6666666666667 365.4933333333331 365.4933333333334 298.6666666666665 448 298.6666666666665H1344C1426.506666666667 298.6666666666665 1493.3333333333335 365.4933333333331 1493.3333333333335 448V1344C1493.3333333333335 1426.5066666666667 1426.506666666667 1493.3333333333333 1344 1493.3333333333333zM1344 448H448V1344H1344V448z" />
40
- <glyph glyph-name="spinner"
41
- unicode="&#xF10B;"
42
- horiz-adv-x="1792" d=" M701.8666666666668 1008L1057.6533333333334 1624.3733333333334C1005.7600000000002 1635.9466666666667 951.6266666666666 1642.6666666666667 896 1642.6666666666667C716.8000000000001 1642.6666666666667 552.9066666666668 1579.5733333333333 424.1066666666667 1474.2933333333333L697.76 1000.5333333333334L701.8666666666666 1008zM1608.32 1120C1539.6266666666666 1338.4 1373.1200000000001 1512.7466666666667 1160.6933333333332 1593.3866666666668L887.4133333333334 1120H1608.32zM1627.7333333333336 1045.3333333333333H1068.48L1090.1333333333334 1008L1445.92 392C1567.6266666666668 524.9066666666668 1642.6666666666667 701.4933333333333 1642.6666666666667 896C1642.6666666666667 947.1466666666666 1637.44 997.1733333333332 1627.7333333333336 1045.3333333333333zM637.2800000000001 896L346.08 1400C224.3733333333333 1267.0933333333332 149.3333333333334 1090.5066666666667 149.3333333333334 896C149.3333333333334 844.8533333333332 154.56 794.8266666666666 164.2666666666667 746.6666666666665H723.5200000000001L637.2800000000002 896zM183.68 672C252.3733333333334 453.5999999999999 418.88 279.2533333333334 631.3066666666667 198.6133333333332L904.5866666666668 672H183.68zM1025.1733333333334 672L733.9733333333334 167.6266666666666C786.24 156.0533333333333 840.3733333333334 149.3333333333333 896 149.3333333333333C1075.2 149.3333333333333 1239.0933333333332 212.4266666666665 1367.8933333333334 317.7066666666665L1094.24 791.4666666666666L1025.1733333333334 672z" />
43
- <glyph glyph-name="subtitles"
44
- unicode="&#xF10C;"
45
- horiz-adv-x="1792" d=" M1493.3333333333335 1493.3333333333333H298.6666666666667C216.16 1493.3333333333333 149.3333333333334 1426.5066666666667 149.3333333333334 1344V448C149.3333333333334 365.4933333333331 216.16 298.6666666666665 298.6666666666667 298.6666666666665H1493.3333333333335C1575.8400000000001 298.6666666666665 1642.6666666666667 365.4933333333331 1642.6666666666667 448V1344C1642.6666666666667 1426.5066666666667 1575.8400000000001 1493.3333333333333 1493.3333333333335 1493.3333333333333zM298.6666666666667 896H597.3333333333334V746.6666666666665H298.6666666666667V896zM1045.3333333333335 448H298.6666666666667V597.3333333333333H1045.3333333333335V448zM1493.3333333333335 448H1194.6666666666667V597.3333333333333H1493.3333333333335V448zM1493.3333333333335 746.6666666666665H746.6666666666667V896H1493.3333333333335V746.6666666666665z" />
46
- <glyph glyph-name="captions"
47
- unicode="&#xF10D;"
48
- horiz-adv-x="1792" d=" M1418.6666666666667 1493.3333333333333H373.3333333333334C290.8266666666667 1493.3333333333333 224 1426.5066666666667 224 1344V448C224 365.4933333333331 290.8266666666667 298.6666666666665 373.3333333333334 298.6666666666665H1418.6666666666667C1501.1733333333334 298.6666666666665 1568 365.4933333333331 1568 448V1344C1568 1426.5066666666667 1501.1733333333334 1493.3333333333333 1418.6666666666667 1493.3333333333333zM821.3333333333334 970.6666666666666H709.3333333333334V1008H560V783.9999999999999H709.3333333333334V821.3333333333333H821.3333333333334V746.6666666666665C821.3333333333334 705.5999999999999 788.1066666666667 672 746.6666666666667 672H522.6666666666667C481.2266666666667 672 448 705.5999999999999 448 746.6666666666665V1045.3333333333333C448 1086.4 481.2266666666667 1120 522.6666666666667 1120H746.6666666666667C788.1066666666667 1120 821.3333333333334 1086.4 821.3333333333334 1045.3333333333333V970.6666666666666zM1344 970.6666666666666H1232V1008H1082.6666666666667V783.9999999999999H1232V821.3333333333333H1344V746.6666666666665C1344 705.5999999999999 1310.7733333333333 672 1269.3333333333335 672H1045.3333333333335C1003.8933333333334 672 970.6666666666669 705.5999999999999 970.6666666666669 746.6666666666665V1045.3333333333333C970.6666666666669 1086.4 1003.8933333333334 1120 1045.3333333333335 1120H1269.3333333333335C1310.7733333333333 1120 1344 1086.4 1344 1045.3333333333333V970.6666666666666z" />
49
- <glyph glyph-name="chapters"
50
- unicode="&#xF10E;"
51
- horiz-adv-x="1792" d=" M224 821.3333333333333H373.3333333333334V970.6666666666666H224V821.3333333333333zM224 522.6666666666665H373.3333333333334V672H224V522.6666666666665zM224 1120H373.3333333333334V1269.3333333333333H224V1120zM522.6666666666667 821.3333333333333H1568V970.6666666666666H522.6666666666667V821.3333333333333zM522.6666666666667 522.6666666666665H1568V672H522.6666666666667V522.6666666666665zM522.6666666666667 1269.3333333333333V1120H1568V1269.3333333333333H522.6666666666667z" />
52
- <glyph glyph-name="share"
53
- unicode="&#xF10F;"
54
- horiz-adv-x="1792" d=" M1344 590.9866666666665C1287.2533333333333 590.9866666666665 1236.1066666666668 568.9599999999998 1197.2800000000002 533.4933333333331L665.2800000000001 843.7333333333333C669.3866666666667 860.5333333333333 672 878.08 672 896S669.3866666666667 931.4666666666666 665.2800000000001 948.2666666666667L1191.68 1255.52C1231.6266666666668 1218.1866666666665 1285.0133333333335 1195.04 1344 1195.04C1467.5733333333335 1195.04 1568 1295.4666666666665 1568 1419.04S1467.5733333333335 1643.04 1344 1643.04S1120 1542.6133333333332 1120 1419.04C1120 1401.12 1122.6133333333335 1383.5733333333333 1126.72 1366.773333333333L600.3199999999999 1059.5199999999998C560.3733333333333 1096.853333333333 506.9866666666666 1119.9999999999998 448 1119.9999999999998C324.4266666666666 1119.9999999999998 224 1019.5733333333332 224 895.9999999999998S324.4266666666666 671.9999999999998 448 671.9999999999998C506.9866666666666 671.9999999999998 560.3733333333333 695.1466666666665 600.3199999999999 732.4799999999998L1132.32 422.2399999999998C1128.5866666666666 406.5599999999997 1126.3466666666666 390.133333333333 1126.3466666666666 373.3333333333331C1126.3466666666666 253.1199999999997 1223.7866666666669 155.6799999999996 1344 155.6799999999996S1561.6533333333334 253.1199999999997 1561.6533333333334 373.3333333333331S1464.2133333333334 590.9866666666662 1344 590.9866666666662z" />
55
- <glyph glyph-name="cog"
56
- unicode="&#xF110;"
57
- horiz-adv-x="1792" d=" M1450.7733333333333 823.1999999999999C1453.76 847.0933333333334 1456 871.3599999999999 1456 896S1453.76 944.9066666666666 1450.7733333333333 968.8L1608.6933333333336 1092.3733333333332C1622.8800000000003 1103.5733333333333 1626.986666666667 1123.7333333333331 1617.6533333333336 1140.1599999999999L1468.3200000000004 1398.8799999999999C1458.986666666667 1414.9333333333334 1439.5733333333335 1421.6533333333332 1422.7733333333338 1414.9333333333334L1236.8533333333337 1339.8933333333332C1198.4000000000003 1369.3866666666668 1156.2133333333338 1394.3999999999999 1110.6666666666672 1413.44L1082.6666666666667 1611.3066666666666C1079.3066666666668 1628.8533333333332 1064 1642.6666666666667 1045.3333333333335 1642.6666666666667H746.6666666666667C728 1642.6666666666667 712.6933333333334 1628.8533333333332 709.7066666666668 1611.3066666666666L681.7066666666668 1413.44C636.1600000000002 1394.4 593.9733333333335 1369.76 555.5200000000001 1339.8933333333332L369.6 1414.9333333333334C352.8000000000001 1421.28 333.3866666666667 1414.9333333333334 324.0533333333334 1398.88L174.72 1140.1599999999999C165.3866666666667 1124.1066666666666 169.4933333333334 1103.9466666666667 183.68 1092.3733333333332L341.2266666666667 968.8C338.2400000000001 944.9066666666666 336 920.64 336 896S338.2400000000001 847.0933333333334 341.2266666666667 823.1999999999999L183.68 699.6266666666668C169.4933333333334 688.4266666666667 165.3866666666667 668.2666666666667 174.72 651.8399999999999L324.0533333333334 393.1199999999999C333.3866666666667 377.0666666666666 352.8 370.3466666666666 369.6 377.0666666666666L555.5200000000001 452.1066666666666C593.9733333333334 422.6133333333333 636.16 397.5999999999999 681.7066666666668 378.56L709.7066666666668 180.6933333333334C712.6933333333334 163.1466666666668 728 149.3333333333333 746.6666666666667 149.3333333333333H1045.3333333333335C1064 149.3333333333333 1079.3066666666668 163.1466666666665 1082.2933333333333 180.6933333333334L1110.2933333333333 378.56C1155.84 397.5999999999999 1198.0266666666666 422.24 1236.48 452.1066666666666L1422.3999999999999 377.0666666666666C1439.2 370.7199999999998 1458.6133333333332 377.0666666666666 1467.9466666666665 393.1199999999999L1617.2799999999997 651.8399999999999C1626.6133333333332 667.8933333333332 1622.5066666666664 688.0533333333333 1608.3199999999997 699.6266666666668L1450.773333333333 823.1999999999999zM896 634.6666666666665C751.52 634.6666666666665 634.6666666666667 751.52 634.6666666666667 896S751.52 1157.3333333333333 896 1157.3333333333333S1157.3333333333335 1040.48 1157.3333333333335 896S1040.48 634.6666666666665 896 634.6666666666665z" />
58
- <glyph glyph-name="circle"
59
- unicode="&#xF111;"
60
- horiz-adv-x="1792" d=" M149.3333333333334 896C149.3333333333334 483.6273867930074 483.6273867930075 149.3333333333333 896 149.3333333333333C1308.3726132069926 149.3333333333333 1642.6666666666667 483.6273867930074 1642.6666666666667 896C1642.6666666666667 1308.3726132069926 1308.3726132069926 1642.6666666666667 896 1642.6666666666667C483.6273867930075 1642.6666666666667 149.3333333333334 1308.3726132069926 149.3333333333334 896z" />
61
- <glyph glyph-name="circle-outline"
62
- unicode="&#xF112;"
63
- horiz-adv-x="1792" d=" M896 1642.6666666666667C483.4666666666667 1642.6666666666667 149.3333333333334 1308.5333333333333 149.3333333333334 896S483.4666666666667 149.3333333333333 896 149.3333333333333S1642.6666666666667 483.4666666666667 1642.6666666666667 896S1308.5333333333333 1642.6666666666667 896 1642.6666666666667zM896 298.6666666666665C566.72 298.6666666666665 298.6666666666667 566.7199999999998 298.6666666666667 896S566.72 1493.3333333333333 896 1493.3333333333333S1493.3333333333335 1225.28 1493.3333333333335 896S1225.2800000000002 298.6666666666665 896 298.6666666666665z" />
64
- <glyph glyph-name="circle-inner-circle"
65
- unicode="&#xF113;"
66
- horiz-adv-x="1792" d=" M896 1642.6666666666667C484.2133333333334 1642.6666666666667 149.3333333333334 1307.7866666666666 149.3333333333334 896S484.2133333333334 149.3333333333333 896 149.3333333333333S1642.6666666666667 484.2133333333331 1642.6666666666667 896S1307.7866666666669 1642.6666666666667 896 1642.6666666666667zM896 298.6666666666665C566.72 298.6666666666665 298.6666666666667 566.7199999999998 298.6666666666667 896S566.72 1493.3333333333333 896 1493.3333333333333S1493.3333333333335 1225.28 1493.3333333333335 896S1225.2800000000002 298.6666666666665 896 298.6666666666665zM1120 896C1120 772.4266666666666 1019.5733333333334 672 896 672S672 772.4266666666666 672 896S772.4266666666667 1120 896 1120S1120 1019.5733333333332 1120 896z" />
67
- <glyph glyph-name="hd"
68
- unicode="&#xF114;"
69
- horiz-adv-x="1792" d=" M1418.6666666666667 1568H373.3333333333334C290.4533333333333 1568 224 1500.8 224 1418.6666666666665V373.3333333333333C224 291.1999999999998 290.4533333333334 224 373.3333333333334 224H1418.6666666666667C1500.8000000000002 224 1568 291.1999999999998 1568 373.3333333333333V1418.6666666666665C1568 1500.8 1500.8000000000002 1568 1418.6666666666667 1568zM821.3333333333334 672H709.3333333333334V821.3333333333333H560V672H448V1120H560V933.3333333333331H709.3333333333334V1120H821.3333333333334V672zM970.6666666666669 1120H1269.3333333333335C1310.4 1120 1344 1086.4 1344 1045.3333333333333V746.6666666666665C1344 705.5999999999999 1310.4 672 1269.3333333333335 672H970.6666666666669V1120zM1082.6666666666667 783.9999999999999H1232V1008H1082.6666666666667V783.9999999999999z" />
70
- <glyph glyph-name="cancel"
71
- unicode="&#xF115;"
72
- horiz-adv-x="1792" d=" M896 1642.6666666666667C483.4666666666667 1642.6666666666667 149.3333333333334 1308.5333333333333 149.3333333333334 896S483.4666666666667 149.3333333333333 896 149.3333333333333S1642.6666666666667 483.4666666666667 1642.6666666666667 896S1308.5333333333333 1642.6666666666667 896 1642.6666666666667zM1269.3333333333335 628.3199999999999L1163.68 522.6666666666665L896 790.3466666666667L628.3199999999999 522.6666666666665L522.6666666666667 628.3199999999999L790.3466666666668 896L522.6666666666667 1163.68L628.3199999999999 1269.3333333333333L896 1001.6533333333332L1163.68 1269.3333333333333L1269.3333333333335 1163.68L1001.6533333333334 896L1269.3333333333335 628.3199999999999z" />
73
- <glyph glyph-name="replay"
74
- unicode="&#xF116;"
75
- horiz-adv-x="1792" d=" M896 1418.6666666666665V1717.3333333333333L522.6666666666667 1344L896 970.6666666666666V1269.3333333333333C1143.52 1269.3333333333333 1344 1068.8533333333332 1344 821.3333333333333S1143.52 373.3333333333333 896 373.3333333333333S448 573.813333333333 448 821.3333333333333H298.6666666666667C298.6666666666667 491.3066666666664 565.9733333333334 224 896 224S1493.3333333333335 491.3066666666664 1493.3333333333335 821.3333333333333S1226.0266666666669 1418.6666666666665 896 1418.6666666666665z" />
76
- <glyph glyph-name="facebook"
77
- unicode="&#xF117;"
78
- horiz-adv-x="1792" d=" M1343 1780V1516H1186Q1100 1516 1070 1480T1040 1372V1183H1333L1294 887H1040V128H734V887H479V1183H734V1401Q734 1587 838 1689.5T1115 1792Q1262 1792 1343 1780z" />
79
- <glyph glyph-name="gplus"
80
- unicode="&#xF118;"
81
- horiz-adv-x="1792" d=" M799 996Q799 960 831 925.5T908.5 857.5T999 784T1076 680T1108 538Q1108 448 1060 365Q988 243 849 185.5T551 128Q419 128 304.5 169.5T133 307Q96 367 96 438Q96 519 140.5 588T259 703Q390 785 663 803Q631 845 615.5 877T600 950Q600 986 621 1035Q575 1031 553 1031Q405 1031 303.5 1127.5T202 1372Q202 1454 238 1531T337 1662Q414 1728 519.5 1760T737 1792H1155L1017 1704H886Q960 1641 998 1571T1036 1411Q1036 1339 1011.5 1281.5T952.5 1188.5T883 1123.5T823.5 1062T799 996zM653 1092Q691 1092 731 1108.5T797 1152Q850 1209 850 1311Q850 1369 833 1436T784.5 1565.5T700 1669T583 1710Q541 1710 500.5 1690.5T435 1638Q388 1579 388 1478Q388 1432 398 1380.5T429.5 1277.5T481.5 1185T556.5 1118T653 1092zM655 219Q713 219 766.5 232T865.5 271T938.5 344T966 453Q966 478 959 502T944.5 544T917.5 585.5T888 620.5T849.5 655T813 684T771.5 714T735 740Q719 742 687 742Q634 742 582 735T474.5 710T377.5 664T309 589.5T282 484Q282 414 317 360.5T408.5 277.5T527.5 233.5T655 219zM1465 1095H1678V987H1465V768H1360V987H1148V1095H1360V1312H1465V1095z" />
82
- <glyph glyph-name="linkedin"
83
- unicode="&#xF119;"
84
- horiz-adv-x="1792" d=" M477 1167V176H147V1167H477zM498 1473Q499 1400 447.5 1351T312 1302H310Q228 1302 178 1351T128 1473Q128 1547 179.5 1595.5T314 1644T447 1595.5T498 1473zM1664 744V176H1335V706Q1335 811 1294.5 870.5T1168 930Q1105 930 1062.5 895.5T999 810Q988 780 988 729V176H659Q661 575 661 823T660 1119L659 1167H988V1023H986Q1006 1055 1027 1079T1083.5 1131T1170.5 1174.5T1285 1190Q1456 1190 1560 1076.5T1664 744z" />
85
- <glyph glyph-name="twitter"
86
- unicode="&#xF11A;"
87
- horiz-adv-x="1792" d=" M1684 1384Q1617 1286 1522 1217Q1523 1203 1523 1175Q1523 1045 1485 915.5T1369.5 667T1185 456.5T927 310.5T604 256Q333 256 108 401Q143 397 186 397Q411 397 587 535Q482 537 399 599.5T285 759Q318 754 346 754Q389 754 431 765Q319 788 245.5 876.5T172 1082V1086Q240 1048 318 1045Q252 1089 213 1160T174 1314Q174 1402 218 1477Q339 1328 512.5 1238.5T884 1139Q876 1177 876 1213Q876 1347 970.5 1441.5T1199 1536Q1339 1536 1435 1434Q1544 1455 1640 1512Q1603 1397 1498 1334Q1591 1344 1684 1384z" />
88
- <glyph glyph-name="tumblr"
89
- unicode="&#xF11B;"
90
- horiz-adv-x="1792" d=" M1328 463L1408 226Q1385 191 1297 160T1120 128Q1016 126 929.5 154T787 228T692 334T636.5 454T620 572V1116H452V1331Q524 1357 581 1400.5T672 1490.5T730 1592.5T764 1691.5T779 1780Q780 1785 783.5 1788.5T791 1792H1035V1368H1368V1116H1034V598Q1034 568 1040.5 542T1063 489.5T1112.5 448T1194 434Q1272 436 1328 463z" />
91
- <glyph glyph-name="pinterest"
92
- unicode="&#xF11C;"
93
- horiz-adv-x="1792" d=" M1664 896Q1664 687 1561 510.5T1281.5 231T896 128Q785 128 678 160Q737 253 756 324Q765 358 810 535Q830 496 883 467.5T997 439Q1118 439 1213 507.5T1360 696T1412 966Q1412 1080 1352.5 1180T1180 1343T925 1406Q820 1406 729 1377T574.5 1300T465.5 1189.5T398.5 1060T377 926Q377 822 417 743T534 632Q564 620 572 652Q574 659 580 683T588 713Q594 736 577 756Q526 817 526 907Q526 1058 630.5 1166.5T904 1275Q1055 1275 1139.5 1193T1224 980Q1224 810 1155.5 691T980 572Q919 572 882 615.5T859 720Q867 755 885.5 813.5T915.5 916.5T927 992Q927 1042 900 1075T823 1108Q761 1108 718 1051T675 909Q675 836 700 787L601 369Q584 299 588 192Q382 283 255 473T128 896Q128 1105 231 1281.5T510.5 1561T896 1664T1281.5 1561T1561 1281.5T1664 896z" />
94
- <glyph glyph-name="audio-description"
95
- unicode="&#xF11D;"
96
- horiz-adv-x="1792" d=" M795.5138904615 457.270933L795.5138904615 1221.5248286325C971.84576475 1225.085121904 1107.39330415 1232.12360523 1207.223857 1161.5835220499998C1303.033991 1093.8857027 1377.7922305 962.20560625 1364.3373135 792.9476205000001C1350.102593 613.9029365000001 1219.6655764999998 463.4600215 1050.12389545 448.2843645000001C965.8259268 440.7398275000001 798.21890505 448.2843645000001 798.21890505 448.2843645000001C798.21890505 448.2843645000001 795.2791410655 453.016494 795.5138904615 457.270933M966.1564647 649.0863960000001C1076.16084135 644.6767075 1152.385591 707.3020429999999 1163.8910079999998 807.9351875C1179.2994744999999 942.71878505 1089.73043585 1030.3691748 960.74508635 1020.7227954L960.74508635 658.08043C960.6196169500002 652.9482330000001 962.7606933 650.3134680000001 966.1564647 649.0863960000001 M1343.2299685 457.3517725000002C1389.9059734 444.3690160000001 1404.0840274999998 496.0596970000001 1424.48294065 532.2791494999999C1469.0084255 611.2788500000001 1502.5101322 712.8584189999999 1503.0416912 828.9881705C1503.8147453000001 995.5680973 1438.8404296 1117.7973688000002 1378.4383305 1200.62456881045L1348.652139905 1200.62456881045C1346.6001063899998 1187.06858424 1356.44474056 1175.024791325 1362.18395859 1164.6588891000001C1408.2649952 1081.49431985 1450.96645015 966.7230041 1451.57490975 834.9817034999999C1452.27106325 683.8655425000002 1402.00636065 557.5072264999999 1343.2299685 457.3517725000002 M1488.0379675 457.3517725000002C1534.7139723999999 444.3690160000001 1548.8825828 496.0671625 1569.29093965 532.2791494999999C1613.8164245 611.2788500000001 1647.3113856500001 712.8584189999999 1647.8496902000002 828.9881705C1648.6227442999998 995.5680973 1583.6484286 1117.7973688000002 1523.2463295 1200.62456881045L1493.460138905 1200.62456881045C1491.40810539 1187.06858424 1501.250041305 1175.021805755 1506.9919575899999 1164.6588891000001C1553.0729942 1081.49431985 1595.7757984 966.7230041 1596.3829087499998 834.9817034999999C1597.07906225 683.8655425000002 1546.8143596500001 557.5072264999999 1488.0379675 457.3517725000002 M1631.9130380000001 457.3517725000002C1678.5890429 444.3690160000001 1692.7576533 496.0671625 1713.1660101500001 532.2791494999999C1757.691495 611.2788500000001 1791.1864561500001 712.8584189999999 1791.7247607000002 828.9881705C1792.4978148 995.5680973 1727.5234991000002 1117.7973688000002 1667.1214 1200.62456881045L1637.3352094050001 1200.62456881045C1635.28317589 1187.06858424 1645.1251118050002 1175.02329854 1650.86702809 1164.6588891000001C1696.9480647 1081.49431985 1739.64951965 966.7230041 1740.25797925 834.9817034999999C1740.95413275 683.8655425000002 1690.6894301500001 557.5072264999999 1631.9130380000001 457.3517725000002 M15.66796875 451.481947L254.03034755 451.481947L319.0356932 551.1747990000001L543.6261075 551.6487970000001C543.6261075 551.6487970000001 543.8541115 483.7032095 543.8541115 451.481947L714.4993835 451.481947L714.4993835 1230.9210795L508.643051 1230.9210795C488.8579955 1197.5411595 15.66796875 451.481947 15.66796875 451.481947L15.66796875 451.481947zM550.0048155000001 959.9708615L550.0048155000001 710.916297L408.4199 711.8642895L550.0048155000001 959.9708615L550.0048155000001 959.9708615z" />
97
- <glyph glyph-name="audio"
98
- unicode="&#xF11E;"
99
- horiz-adv-x="1792" d=" M896 1717.3333333333333C524.9066666666668 1717.3333333333333 224 1416.4266666666667 224 1045.3333333333333V522.6666666666665C224 399.0933333333333 324.4266666666667 298.6666666666665 448 298.6666666666665H672V896H373.3333333333334V1045.3333333333333C373.3333333333334 1333.92 607.4133333333334 1568 896 1568S1418.6666666666667 1333.92 1418.6666666666667 1045.3333333333333V896H1120V298.6666666666665H1344C1467.5733333333335 298.6666666666665 1568 399.0933333333333 1568 522.6666666666665V1045.3333333333333C1568 1416.4266666666667 1267.0933333333332 1717.3333333333333 896 1717.3333333333333z" />
100
- </font>
101
- </defs>
102
- </svg>
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <defs>
5
+ <font id="VideoJS" horiz-adv-x="1792">
6
+ <font-face font-family="VideoJS"
7
+ units-per-em="1792" ascent="1792"
8
+ descent="0" />
9
+ <missing-glyph horiz-adv-x="0" />
10
+ <glyph glyph-name="play"
11
+ unicode="&#xF101;"
12
+ horiz-adv-x="1792" d=" M597.3333333333334 1418.6666666666665V373.3333333333333L1418.6666666666667 896z" />
13
+ <glyph glyph-name="play-circle"
14
+ unicode="&#xF102;"
15
+ horiz-adv-x="1792" d=" M746.6666666666667 560L1194.6666666666667 896L746.6666666666667 1232V560zM896 1642.6666666666667C483.4666666666667 1642.6666666666667 149.3333333333334 1308.5333333333333 149.3333333333334 896S483.4666666666667 149.3333333333333 896 149.3333333333333S1642.6666666666667 483.4666666666667 1642.6666666666667 896S1308.5333333333333 1642.6666666666667 896 1642.6666666666667zM896 298.6666666666665C566.72 298.6666666666665 298.6666666666667 566.7199999999998 298.6666666666667 896S566.72 1493.3333333333333 896 1493.3333333333333S1493.3333333333335 1225.28 1493.3333333333335 896S1225.2800000000002 298.6666666666665 896 298.6666666666665z" />
16
+ <glyph glyph-name="pause"
17
+ unicode="&#xF103;"
18
+ horiz-adv-x="1792" d=" M448 373.3333333333333H746.6666666666667V1418.6666666666665H448V373.3333333333333zM1045.3333333333335 1418.6666666666665V373.3333333333333H1344V1418.6666666666665H1045.3333333333335z" />
19
+ <glyph glyph-name="volume-mute"
20
+ unicode="&#xF104;"
21
+ horiz-adv-x="1792" d=" M1232 896C1232 1027.7866666666666 1155.8400000000001 1141.6533333333332 1045.3333333333335 1196.5333333333333V1031.52L1228.6399999999999 848.2133333333334C1230.88 863.8933333333334 1232 879.9466666666667 1232 896.0000000000001zM1418.6666666666667 896C1418.6666666666667 825.8133333333333 1403.3600000000001 759.7333333333333 1378.3466666666668 698.8799999999999L1491.466666666667 585.7599999999998C1540 678.72 1568 783.9999999999999 1568 896C1568 1215.5733333333333 1344.3733333333334 1482.88 1045.3333333333335 1550.8266666666666V1396.6399999999999C1261.1200000000001 1332.4266666666667 1418.6666666666667 1132.6933333333332 1418.6666666666667 896zM319.2000000000001 1568L224 1472.8L576.8 1120H224V672H522.6666666666667L896 298.6666666666665V800.8L1213.7066666666667 483.0933333333332C1163.68 444.6399999999999 1107.3066666666666 413.6533333333332 1045.3333333333335 394.9866666666665V240.7999999999998C1148 264.32 1241.7066666666667 311.3599999999997 1320.48 375.9466666666663L1472.8000000000002 224L1568 319.1999999999998L896 991.1999999999998L319.2000000000001 1568zM896 1493.3333333333333L739.9466666666667 1337.28L896 1181.2266666666667V1493.3333333333333z" />
22
+ <glyph glyph-name="volume-low"
23
+ unicode="&#xF105;"
24
+ horiz-adv-x="1792" d=" M522.6666666666667 1120V672H821.3333333333334L1194.6666666666667 298.6666666666665V1493.3333333333333L821.3333333333334 1120H522.6666666666667z" />
25
+ <glyph glyph-name="volume-mid"
26
+ unicode="&#xF106;"
27
+ horiz-adv-x="1792" d=" M1381.3333333333335 896C1381.3333333333335 1027.7866666666666 1305.1733333333334 1141.6533333333332 1194.6666666666667 1196.5333333333333V595.0933333333332C1305.1733333333334 650.3466666666666 1381.3333333333335 764.2133333333331 1381.3333333333335 896zM373.3333333333334 1120V672H672L1045.3333333333335 298.6666666666665V1493.3333333333333L672 1120H373.3333333333334z" />
28
+ <glyph glyph-name="volume-high"
29
+ unicode="&#xF107;"
30
+ horiz-adv-x="1792" d=" M224 1120V672H522.6666666666667L896 298.6666666666665V1493.3333333333333L522.6666666666667 1120H224zM1232 896C1232 1027.7866666666666 1155.8400000000001 1141.6533333333332 1045.3333333333335 1196.5333333333333V595.0933333333332C1155.8400000000001 650.3466666666666 1232 764.2133333333331 1232 896zM1045.3333333333335 1550.8266666666666V1396.6399999999999C1261.1200000000001 1332.4266666666667 1418.6666666666667 1132.6933333333332 1418.6666666666667 896S1261.1200000000001 459.5733333333333 1045.3333333333335 395.3600000000002V241.1733333333332C1344.3733333333334 309.1199999999999 1568 576.0533333333333 1568 896S1344.3733333333334 1482.88 1045.3333333333335 1550.8266666666666z" />
31
+ <glyph glyph-name="fullscreen-enter"
32
+ unicode="&#xF108;"
33
+ horiz-adv-x="1792" d=" M522.6666666666667 746.6666666666665H373.3333333333334V373.3333333333333H746.6666666666667V522.6666666666665H522.6666666666667V746.6666666666665zM373.3333333333334 1045.3333333333333H522.6666666666667V1269.3333333333333H746.6666666666667V1418.6666666666665H373.3333333333334V1045.3333333333333zM1269.3333333333335 522.6666666666665H1045.3333333333335V373.3333333333333H1418.6666666666667V746.6666666666665H1269.3333333333335V522.6666666666665zM1045.3333333333335 1418.6666666666665V1269.3333333333333H1269.3333333333335V1045.3333333333333H1418.6666666666667V1418.6666666666665H1045.3333333333335z" />
34
+ <glyph glyph-name="fullscreen-exit"
35
+ unicode="&#xF109;"
36
+ horiz-adv-x="1792" d=" M373.3333333333334 597.3333333333333H597.3333333333334V373.3333333333333H746.6666666666667V746.6666666666665H373.3333333333334V597.3333333333333zM597.3333333333334 1194.6666666666665H373.3333333333334V1045.3333333333333H746.6666666666667V1418.6666666666665H597.3333333333334V1194.6666666666665zM1045.3333333333335 373.3333333333333H1194.6666666666667V597.3333333333333H1418.6666666666667V746.6666666666665H1045.3333333333335V373.3333333333333zM1194.6666666666667 1194.6666666666665V1418.6666666666665H1045.3333333333335V1045.3333333333333H1418.6666666666667V1194.6666666666665H1194.6666666666667z" />
37
+ <glyph glyph-name="square"
38
+ unicode="&#xF10A;"
39
+ horiz-adv-x="1792" d=" M1344 1493.3333333333333H448C365.4933333333334 1493.3333333333333 298.6666666666667 1426.5066666666667 298.6666666666667 1344V448C298.6666666666667 365.4933333333331 365.4933333333334 298.6666666666665 448 298.6666666666665H1344C1426.506666666667 298.6666666666665 1493.3333333333335 365.4933333333331 1493.3333333333335 448V1344C1493.3333333333335 1426.5066666666667 1426.506666666667 1493.3333333333333 1344 1493.3333333333333zM1344 448H448V1344H1344V448z" />
40
+ <glyph glyph-name="spinner"
41
+ unicode="&#xF10B;"
42
+ horiz-adv-x="1792" d=" M701.8666666666668 1008L1057.6533333333334 1624.3733333333334C1005.7600000000002 1635.9466666666667 951.6266666666666 1642.6666666666667 896 1642.6666666666667C716.8000000000001 1642.6666666666667 552.9066666666668 1579.5733333333333 424.1066666666667 1474.2933333333333L697.76 1000.5333333333334L701.8666666666666 1008zM1608.32 1120C1539.6266666666666 1338.4 1373.1200000000001 1512.7466666666667 1160.6933333333332 1593.3866666666668L887.4133333333334 1120H1608.32zM1627.7333333333336 1045.3333333333333H1068.48L1090.1333333333334 1008L1445.92 392C1567.6266666666668 524.9066666666668 1642.6666666666667 701.4933333333333 1642.6666666666667 896C1642.6666666666667 947.1466666666666 1637.44 997.1733333333332 1627.7333333333336 1045.3333333333333zM637.2800000000001 896L346.08 1400C224.3733333333333 1267.0933333333332 149.3333333333334 1090.5066666666667 149.3333333333334 896C149.3333333333334 844.8533333333332 154.56 794.8266666666666 164.2666666666667 746.6666666666665H723.5200000000001L637.2800000000002 896zM183.68 672C252.3733333333334 453.5999999999999 418.88 279.2533333333334 631.3066666666667 198.6133333333332L904.5866666666668 672H183.68zM1025.1733333333334 672L733.9733333333334 167.6266666666666C786.24 156.0533333333333 840.3733333333334 149.3333333333333 896 149.3333333333333C1075.2 149.3333333333333 1239.0933333333332 212.4266666666665 1367.8933333333334 317.7066666666665L1094.24 791.4666666666666L1025.1733333333334 672z" />
43
+ <glyph glyph-name="subtitles"
44
+ unicode="&#xF10C;"
45
+ horiz-adv-x="1792" d=" M1493.3333333333335 1493.3333333333333H298.6666666666667C216.16 1493.3333333333333 149.3333333333334 1426.5066666666667 149.3333333333334 1344V448C149.3333333333334 365.4933333333331 216.16 298.6666666666665 298.6666666666667 298.6666666666665H1493.3333333333335C1575.8400000000001 298.6666666666665 1642.6666666666667 365.4933333333331 1642.6666666666667 448V1344C1642.6666666666667 1426.5066666666667 1575.8400000000001 1493.3333333333333 1493.3333333333335 1493.3333333333333zM298.6666666666667 896H597.3333333333334V746.6666666666665H298.6666666666667V896zM1045.3333333333335 448H298.6666666666667V597.3333333333333H1045.3333333333335V448zM1493.3333333333335 448H1194.6666666666667V597.3333333333333H1493.3333333333335V448zM1493.3333333333335 746.6666666666665H746.6666666666667V896H1493.3333333333335V746.6666666666665z" />
46
+ <glyph glyph-name="captions"
47
+ unicode="&#xF10D;"
48
+ horiz-adv-x="1792" d=" M1418.6666666666667 1493.3333333333333H373.3333333333334C290.8266666666667 1493.3333333333333 224 1426.5066666666667 224 1344V448C224 365.4933333333331 290.8266666666667 298.6666666666665 373.3333333333334 298.6666666666665H1418.6666666666667C1501.1733333333334 298.6666666666665 1568 365.4933333333331 1568 448V1344C1568 1426.5066666666667 1501.1733333333334 1493.3333333333333 1418.6666666666667 1493.3333333333333zM821.3333333333334 970.6666666666666H709.3333333333334V1008H560V783.9999999999999H709.3333333333334V821.3333333333333H821.3333333333334V746.6666666666665C821.3333333333334 705.5999999999999 788.1066666666667 672 746.6666666666667 672H522.6666666666667C481.2266666666667 672 448 705.5999999999999 448 746.6666666666665V1045.3333333333333C448 1086.4 481.2266666666667 1120 522.6666666666667 1120H746.6666666666667C788.1066666666667 1120 821.3333333333334 1086.4 821.3333333333334 1045.3333333333333V970.6666666666666zM1344 970.6666666666666H1232V1008H1082.6666666666667V783.9999999999999H1232V821.3333333333333H1344V746.6666666666665C1344 705.5999999999999 1310.7733333333333 672 1269.3333333333335 672H1045.3333333333335C1003.8933333333334 672 970.6666666666669 705.5999999999999 970.6666666666669 746.6666666666665V1045.3333333333333C970.6666666666669 1086.4 1003.8933333333334 1120 1045.3333333333335 1120H1269.3333333333335C1310.7733333333333 1120 1344 1086.4 1344 1045.3333333333333V970.6666666666666z" />
49
+ <glyph glyph-name="chapters"
50
+ unicode="&#xF10E;"
51
+ horiz-adv-x="1792" d=" M224 821.3333333333333H373.3333333333334V970.6666666666666H224V821.3333333333333zM224 522.6666666666665H373.3333333333334V672H224V522.6666666666665zM224 1120H373.3333333333334V1269.3333333333333H224V1120zM522.6666666666667 821.3333333333333H1568V970.6666666666666H522.6666666666667V821.3333333333333zM522.6666666666667 522.6666666666665H1568V672H522.6666666666667V522.6666666666665zM522.6666666666667 1269.3333333333333V1120H1568V1269.3333333333333H522.6666666666667z" />
52
+ <glyph glyph-name="share"
53
+ unicode="&#xF10F;"
54
+ horiz-adv-x="1792" d=" M1344 590.9866666666665C1287.2533333333333 590.9866666666665 1236.1066666666668 568.9599999999998 1197.2800000000002 533.4933333333331L665.2800000000001 843.7333333333333C669.3866666666667 860.5333333333333 672 878.08 672 896S669.3866666666667 931.4666666666666 665.2800000000001 948.2666666666667L1191.68 1255.52C1231.6266666666668 1218.1866666666665 1285.0133333333335 1195.04 1344 1195.04C1467.5733333333335 1195.04 1568 1295.4666666666665 1568 1419.04S1467.5733333333335 1643.04 1344 1643.04S1120 1542.6133333333332 1120 1419.04C1120 1401.12 1122.6133333333335 1383.5733333333333 1126.72 1366.773333333333L600.3199999999999 1059.5199999999998C560.3733333333333 1096.853333333333 506.9866666666666 1119.9999999999998 448 1119.9999999999998C324.4266666666666 1119.9999999999998 224 1019.5733333333332 224 895.9999999999998S324.4266666666666 671.9999999999998 448 671.9999999999998C506.9866666666666 671.9999999999998 560.3733333333333 695.1466666666665 600.3199999999999 732.4799999999998L1132.32 422.2399999999998C1128.5866666666666 406.5599999999997 1126.3466666666666 390.133333333333 1126.3466666666666 373.3333333333331C1126.3466666666666 253.1199999999997 1223.7866666666669 155.6799999999996 1344 155.6799999999996S1561.6533333333334 253.1199999999997 1561.6533333333334 373.3333333333331S1464.2133333333334 590.9866666666662 1344 590.9866666666662z" />
55
+ <glyph glyph-name="cog"
56
+ unicode="&#xF110;"
57
+ horiz-adv-x="1792" d=" M1450.7733333333333 823.1999999999999C1453.76 847.0933333333334 1456 871.3599999999999 1456 896S1453.76 944.9066666666666 1450.7733333333333 968.8L1608.6933333333336 1092.3733333333332C1622.8800000000003 1103.5733333333333 1626.986666666667 1123.7333333333331 1617.6533333333336 1140.1599999999999L1468.3200000000004 1398.8799999999999C1458.986666666667 1414.9333333333334 1439.5733333333335 1421.6533333333332 1422.7733333333338 1414.9333333333334L1236.8533333333337 1339.8933333333332C1198.4000000000003 1369.3866666666668 1156.2133333333338 1394.3999999999999 1110.6666666666672 1413.44L1082.6666666666667 1611.3066666666666C1079.3066666666668 1628.8533333333332 1064 1642.6666666666667 1045.3333333333335 1642.6666666666667H746.6666666666667C728 1642.6666666666667 712.6933333333334 1628.8533333333332 709.7066666666668 1611.3066666666666L681.7066666666668 1413.44C636.1600000000002 1394.4 593.9733333333335 1369.76 555.5200000000001 1339.8933333333332L369.6 1414.9333333333334C352.8000000000001 1421.28 333.3866666666667 1414.9333333333334 324.0533333333334 1398.88L174.72 1140.1599999999999C165.3866666666667 1124.1066666666666 169.4933333333334 1103.9466666666667 183.68 1092.3733333333332L341.2266666666667 968.8C338.2400000000001 944.9066666666666 336 920.64 336 896S338.2400000000001 847.0933333333334 341.2266666666667 823.1999999999999L183.68 699.6266666666668C169.4933333333334 688.4266666666667 165.3866666666667 668.2666666666667 174.72 651.8399999999999L324.0533333333334 393.1199999999999C333.3866666666667 377.0666666666666 352.8 370.3466666666666 369.6 377.0666666666666L555.5200000000001 452.1066666666666C593.9733333333334 422.6133333333333 636.16 397.5999999999999 681.7066666666668 378.56L709.7066666666668 180.6933333333334C712.6933333333334 163.1466666666668 728 149.3333333333333 746.6666666666667 149.3333333333333H1045.3333333333335C1064 149.3333333333333 1079.3066666666668 163.1466666666665 1082.2933333333333 180.6933333333334L1110.2933333333333 378.56C1155.84 397.5999999999999 1198.0266666666666 422.24 1236.48 452.1066666666666L1422.3999999999999 377.0666666666666C1439.2 370.7199999999998 1458.6133333333332 377.0666666666666 1467.9466666666665 393.1199999999999L1617.2799999999997 651.8399999999999C1626.6133333333332 667.8933333333332 1622.5066666666664 688.0533333333333 1608.3199999999997 699.6266666666668L1450.773333333333 823.1999999999999zM896 634.6666666666665C751.52 634.6666666666665 634.6666666666667 751.52 634.6666666666667 896S751.52 1157.3333333333333 896 1157.3333333333333S1157.3333333333335 1040.48 1157.3333333333335 896S1040.48 634.6666666666665 896 634.6666666666665z" />
58
+ <glyph glyph-name="circle"
59
+ unicode="&#xF111;"
60
+ horiz-adv-x="1792" d=" M149.3333333333334 896C149.3333333333334 483.6273867930074 483.6273867930075 149.3333333333333 896 149.3333333333333C1308.3726132069926 149.3333333333333 1642.6666666666667 483.6273867930074 1642.6666666666667 896C1642.6666666666667 1308.3726132069926 1308.3726132069926 1642.6666666666667 896 1642.6666666666667C483.6273867930075 1642.6666666666667 149.3333333333334 1308.3726132069926 149.3333333333334 896z" />
61
+ <glyph glyph-name="circle-outline"
62
+ unicode="&#xF112;"
63
+ horiz-adv-x="1792" d=" M896 1642.6666666666667C483.4666666666667 1642.6666666666667 149.3333333333334 1308.5333333333333 149.3333333333334 896S483.4666666666667 149.3333333333333 896 149.3333333333333S1642.6666666666667 483.4666666666667 1642.6666666666667 896S1308.5333333333333 1642.6666666666667 896 1642.6666666666667zM896 298.6666666666665C566.72 298.6666666666665 298.6666666666667 566.7199999999998 298.6666666666667 896S566.72 1493.3333333333333 896 1493.3333333333333S1493.3333333333335 1225.28 1493.3333333333335 896S1225.2800000000002 298.6666666666665 896 298.6666666666665z" />
64
+ <glyph glyph-name="circle-inner-circle"
65
+ unicode="&#xF113;"
66
+ horiz-adv-x="1792" d=" M896 1642.6666666666667C484.2133333333334 1642.6666666666667 149.3333333333334 1307.7866666666666 149.3333333333334 896S484.2133333333334 149.3333333333333 896 149.3333333333333S1642.6666666666667 484.2133333333331 1642.6666666666667 896S1307.7866666666669 1642.6666666666667 896 1642.6666666666667zM896 298.6666666666665C566.72 298.6666666666665 298.6666666666667 566.7199999999998 298.6666666666667 896S566.72 1493.3333333333333 896 1493.3333333333333S1493.3333333333335 1225.28 1493.3333333333335 896S1225.2800000000002 298.6666666666665 896 298.6666666666665zM1120 896C1120 772.4266666666666 1019.5733333333334 672 896 672S672 772.4266666666666 672 896S772.4266666666667 1120 896 1120S1120 1019.5733333333332 1120 896z" />
67
+ <glyph glyph-name="hd"
68
+ unicode="&#xF114;"
69
+ horiz-adv-x="1792" d=" M1418.6666666666667 1568H373.3333333333334C290.4533333333333 1568 224 1500.8 224 1418.6666666666665V373.3333333333333C224 291.1999999999998 290.4533333333334 224 373.3333333333334 224H1418.6666666666667C1500.8000000000002 224 1568 291.1999999999998 1568 373.3333333333333V1418.6666666666665C1568 1500.8 1500.8000000000002 1568 1418.6666666666667 1568zM821.3333333333334 672H709.3333333333334V821.3333333333333H560V672H448V1120H560V933.3333333333331H709.3333333333334V1120H821.3333333333334V672zM970.6666666666669 1120H1269.3333333333335C1310.4 1120 1344 1086.4 1344 1045.3333333333333V746.6666666666665C1344 705.5999999999999 1310.4 672 1269.3333333333335 672H970.6666666666669V1120zM1082.6666666666667 783.9999999999999H1232V1008H1082.6666666666667V783.9999999999999z" />
70
+ <glyph glyph-name="cancel"
71
+ unicode="&#xF115;"
72
+ horiz-adv-x="1792" d=" M896 1642.6666666666667C483.4666666666667 1642.6666666666667 149.3333333333334 1308.5333333333333 149.3333333333334 896S483.4666666666667 149.3333333333333 896 149.3333333333333S1642.6666666666667 483.4666666666667 1642.6666666666667 896S1308.5333333333333 1642.6666666666667 896 1642.6666666666667zM1269.3333333333335 628.3199999999999L1163.68 522.6666666666665L896 790.3466666666667L628.3199999999999 522.6666666666665L522.6666666666667 628.3199999999999L790.3466666666668 896L522.6666666666667 1163.68L628.3199999999999 1269.3333333333333L896 1001.6533333333332L1163.68 1269.3333333333333L1269.3333333333335 1163.68L1001.6533333333334 896L1269.3333333333335 628.3199999999999z" />
73
+ <glyph glyph-name="replay"
74
+ unicode="&#xF116;"
75
+ horiz-adv-x="1792" d=" M896 1418.6666666666665V1717.3333333333333L522.6666666666667 1344L896 970.6666666666666V1269.3333333333333C1143.52 1269.3333333333333 1344 1068.8533333333332 1344 821.3333333333333S1143.52 373.3333333333333 896 373.3333333333333S448 573.813333333333 448 821.3333333333333H298.6666666666667C298.6666666666667 491.3066666666664 565.9733333333334 224 896 224S1493.3333333333335 491.3066666666664 1493.3333333333335 821.3333333333333S1226.0266666666669 1418.6666666666665 896 1418.6666666666665z" />
76
+ <glyph glyph-name="facebook"
77
+ unicode="&#xF117;"
78
+ horiz-adv-x="1792" d=" M1343 1780V1516H1186Q1100 1516 1070 1480T1040 1372V1183H1333L1294 887H1040V128H734V887H479V1183H734V1401Q734 1587 838 1689.5T1115 1792Q1262 1792 1343 1780z" />
79
+ <glyph glyph-name="gplus"
80
+ unicode="&#xF118;"
81
+ horiz-adv-x="1792" d=" M799 996Q799 960 831 925.5T908.5 857.5T999 784T1076 680T1108 538Q1108 448 1060 365Q988 243 849 185.5T551 128Q419 128 304.5 169.5T133 307Q96 367 96 438Q96 519 140.5 588T259 703Q390 785 663 803Q631 845 615.5 877T600 950Q600 986 621 1035Q575 1031 553 1031Q405 1031 303.5 1127.5T202 1372Q202 1454 238 1531T337 1662Q414 1728 519.5 1760T737 1792H1155L1017 1704H886Q960 1641 998 1571T1036 1411Q1036 1339 1011.5 1281.5T952.5 1188.5T883 1123.5T823.5 1062T799 996zM653 1092Q691 1092 731 1108.5T797 1152Q850 1209 850 1311Q850 1369 833 1436T784.5 1565.5T700 1669T583 1710Q541 1710 500.5 1690.5T435 1638Q388 1579 388 1478Q388 1432 398 1380.5T429.5 1277.5T481.5 1185T556.5 1118T653 1092zM655 219Q713 219 766.5 232T865.5 271T938.5 344T966 453Q966 478 959 502T944.5 544T917.5 585.5T888 620.5T849.5 655T813 684T771.5 714T735 740Q719 742 687 742Q634 742 582 735T474.5 710T377.5 664T309 589.5T282 484Q282 414 317 360.5T408.5 277.5T527.5 233.5T655 219zM1465 1095H1678V987H1465V768H1360V987H1148V1095H1360V1312H1465V1095z" />
82
+ <glyph glyph-name="linkedin"
83
+ unicode="&#xF119;"
84
+ horiz-adv-x="1792" d=" M477 1167V176H147V1167H477zM498 1473Q499 1400 447.5 1351T312 1302H310Q228 1302 178 1351T128 1473Q128 1547 179.5 1595.5T314 1644T447 1595.5T498 1473zM1664 744V176H1335V706Q1335 811 1294.5 870.5T1168 930Q1105 930 1062.5 895.5T999 810Q988 780 988 729V176H659Q661 575 661 823T660 1119L659 1167H988V1023H986Q1006 1055 1027 1079T1083.5 1131T1170.5 1174.5T1285 1190Q1456 1190 1560 1076.5T1664 744z" />
85
+ <glyph glyph-name="twitter"
86
+ unicode="&#xF11A;"
87
+ horiz-adv-x="1792" d=" M1684 1384Q1617 1286 1522 1217Q1523 1203 1523 1175Q1523 1045 1485 915.5T1369.5 667T1185 456.5T927 310.5T604 256Q333 256 108 401Q143 397 186 397Q411 397 587 535Q482 537 399 599.5T285 759Q318 754 346 754Q389 754 431 765Q319 788 245.5 876.5T172 1082V1086Q240 1048 318 1045Q252 1089 213 1160T174 1314Q174 1402 218 1477Q339 1328 512.5 1238.5T884 1139Q876 1177 876 1213Q876 1347 970.5 1441.5T1199 1536Q1339 1536 1435 1434Q1544 1455 1640 1512Q1603 1397 1498 1334Q1591 1344 1684 1384z" />
88
+ <glyph glyph-name="tumblr"
89
+ unicode="&#xF11B;"
90
+ horiz-adv-x="1792" d=" M1328 463L1408 226Q1385 191 1297 160T1120 128Q1016 126 929.5 154T787 228T692 334T636.5 454T620 572V1116H452V1331Q524 1357 581 1400.5T672 1490.5T730 1592.5T764 1691.5T779 1780Q780 1785 783.5 1788.5T791 1792H1035V1368H1368V1116H1034V598Q1034 568 1040.5 542T1063 489.5T1112.5 448T1194 434Q1272 436 1328 463z" />
91
+ <glyph glyph-name="pinterest"
92
+ unicode="&#xF11C;"
93
+ horiz-adv-x="1792" d=" M1664 896Q1664 687 1561 510.5T1281.5 231T896 128Q785 128 678 160Q737 253 756 324Q765 358 810 535Q830 496 883 467.5T997 439Q1118 439 1213 507.5T1360 696T1412 966Q1412 1080 1352.5 1180T1180 1343T925 1406Q820 1406 729 1377T574.5 1300T465.5 1189.5T398.5 1060T377 926Q377 822 417 743T534 632Q564 620 572 652Q574 659 580 683T588 713Q594 736 577 756Q526 817 526 907Q526 1058 630.5 1166.5T904 1275Q1055 1275 1139.5 1193T1224 980Q1224 810 1155.5 691T980 572Q919 572 882 615.5T859 720Q867 755 885.5 813.5T915.5 916.5T927 992Q927 1042 900 1075T823 1108Q761 1108 718 1051T675 909Q675 836 700 787L601 369Q584 299 588 192Q382 283 255 473T128 896Q128 1105 231 1281.5T510.5 1561T896 1664T1281.5 1561T1561 1281.5T1664 896z" />
94
+ <glyph glyph-name="audio-description"
95
+ unicode="&#xF11D;"
96
+ horiz-adv-x="1792" d=" M795.5138904615 457.270933L795.5138904615 1221.5248286325C971.84576475 1225.085121904 1107.39330415 1232.12360523 1207.223857 1161.5835220499998C1303.033991 1093.8857027 1377.7922305 962.20560625 1364.3373135 792.9476205000001C1350.102593 613.9029365000001 1219.6655764999998 463.4600215 1050.12389545 448.2843645000001C965.8259268 440.7398275000001 798.21890505 448.2843645000001 798.21890505 448.2843645000001C798.21890505 448.2843645000001 795.2791410655 453.016494 795.5138904615 457.270933M966.1564647 649.0863960000001C1076.16084135 644.6767075 1152.385591 707.3020429999999 1163.8910079999998 807.9351875C1179.2994744999999 942.71878505 1089.73043585 1030.3691748 960.74508635 1020.7227954L960.74508635 658.08043C960.6196169500002 652.9482330000001 962.7606933 650.3134680000001 966.1564647 649.0863960000001 M1343.2299685 457.3517725000002C1389.9059734 444.3690160000001 1404.0840274999998 496.0596970000001 1424.48294065 532.2791494999999C1469.0084255 611.2788500000001 1502.5101322 712.8584189999999 1503.0416912 828.9881705C1503.8147453000001 995.5680973 1438.8404296 1117.7973688000002 1378.4383305 1200.62456881045L1348.652139905 1200.62456881045C1346.6001063899998 1187.06858424 1356.44474056 1175.024791325 1362.18395859 1164.6588891000001C1408.2649952 1081.49431985 1450.96645015 966.7230041 1451.57490975 834.9817034999999C1452.27106325 683.8655425000002 1402.00636065 557.5072264999999 1343.2299685 457.3517725000002 M1488.0379675 457.3517725000002C1534.7139723999999 444.3690160000001 1548.8825828 496.0671625 1569.29093965 532.2791494999999C1613.8164245 611.2788500000001 1647.3113856500001 712.8584189999999 1647.8496902000002 828.9881705C1648.6227442999998 995.5680973 1583.6484286 1117.7973688000002 1523.2463295 1200.62456881045L1493.460138905 1200.62456881045C1491.40810539 1187.06858424 1501.250041305 1175.021805755 1506.9919575899999 1164.6588891000001C1553.0729942 1081.49431985 1595.7757984 966.7230041 1596.3829087499998 834.9817034999999C1597.07906225 683.8655425000002 1546.8143596500001 557.5072264999999 1488.0379675 457.3517725000002 M1631.9130380000001 457.3517725000002C1678.5890429 444.3690160000001 1692.7576533 496.0671625 1713.1660101500001 532.2791494999999C1757.691495 611.2788500000001 1791.1864561500001 712.8584189999999 1791.7247607000002 828.9881705C1792.4978148 995.5680973 1727.5234991000002 1117.7973688000002 1667.1214 1200.62456881045L1637.3352094050001 1200.62456881045C1635.28317589 1187.06858424 1645.1251118050002 1175.02329854 1650.86702809 1164.6588891000001C1696.9480647 1081.49431985 1739.64951965 966.7230041 1740.25797925 834.9817034999999C1740.95413275 683.8655425000002 1690.6894301500001 557.5072264999999 1631.9130380000001 457.3517725000002 M15.66796875 451.481947L254.03034755 451.481947L319.0356932 551.1747990000001L543.6261075 551.6487970000001C543.6261075 551.6487970000001 543.8541115 483.7032095 543.8541115 451.481947L714.4993835 451.481947L714.4993835 1230.9210795L508.643051 1230.9210795C488.8579955 1197.5411595 15.66796875 451.481947 15.66796875 451.481947L15.66796875 451.481947zM550.0048155000001 959.9708615L550.0048155000001 710.916297L408.4199 711.8642895L550.0048155000001 959.9708615L550.0048155000001 959.9708615z" />
97
+ <glyph glyph-name="audio"
98
+ unicode="&#xF11E;"
99
+ horiz-adv-x="1792" d=" M896 1717.3333333333333C524.9066666666668 1717.3333333333333 224 1416.4266666666667 224 1045.3333333333333V522.6666666666665C224 399.0933333333333 324.4266666666667 298.6666666666665 448 298.6666666666665H672V896H373.3333333333334V1045.3333333333333C373.3333333333334 1333.92 607.4133333333334 1568 896 1568S1418.6666666666667 1333.92 1418.6666666666667 1045.3333333333333V896H1120V298.6666666666665H1344C1467.5733333333335 298.6666666666665 1568 399.0933333333333 1568 522.6666666666665V1045.3333333333333C1568 1416.4266666666667 1267.0933333333332 1717.3333333333333 896 1717.3333333333333z" />
100
+ </font>
101
+ </defs>
102
+ </svg>
video-js/font/VideoJS.ttf CHANGED
File without changes
video-js/font/VideoJS.woff CHANGED
File without changes
video-js/kg-video-js-skin.css CHANGED
@@ -1,106 +1,106 @@
1
- /*
2
- Player Skin Designer for Video.js
3
- http://videojs.com
4
-
5
- To customize the player skin edit
6
- the CSS below. Click "details"
7
- below to add comments or questions.
8
- This file uses some SCSS. Learn more
9
- at http://sass-lang.com/guide)
10
-
11
- This designer can be linked to at:
12
- http://codepen.io/heff/pen/EarCt/left/?editors=010
13
- */
14
- .kg-video-js-skin {
15
- /* The base font size controls the size of everything, not just text.
16
- All dimensions use em-based sizes so that the scale along with the font size.
17
- Try increasing it to 15px and see what happens. */
18
- font-size: 10px;
19
- /* The main font color changes the ICON COLORS as well as the text */
20
- color: #fff;
21
- }
22
-
23
- /* The "Big Play Button" is the play button that shows before the video plays.
24
- To center it set the align values to center and middle. The typical location
25
- of the button is the center, but there is trend towards moving it to a corner
26
- where it gets out of the way of valuable content in the poster image.*/
27
- .kg-video-js-skin .vjs-big-play-button {
28
- /* The font size is what makes the big play button...big.
29
- All width/height values use ems, which are a multiple of the font size.
30
- If the .kg-video-js-skin font-size is 10px, then 3em equals 30px.*/
31
- font-size: 3em;
32
- /* We're using SCSS vars here because the values are used in multiple places.
33
- Now that font size is set, the following em values will be a multiple of the
34
- new font size. If the font-size is 3em (30px), then setting any of
35
- the following values to 3em would equal 30px. 3 * font-size. */
36
- /* 1.5em = 45px default */
37
- line-height: 3em;
38
- height: 3em;
39
- width: 3em;
40
- /* 0.06666em = 2px default */
41
- border: 0.16666em solid #fff;
42
- /* 0.3em = 9px default */
43
- border-radius: 3em;
44
- /* Align center */
45
- left: 50%;
46
- top: 50%;
47
- margin-left: -1.5em;
48
- margin-top: -1.5em;
49
- position: absolute;
50
-
51
- box-sizing: border-box;
52
- z-index: 2;
53
- }
54
-
55
- /* The default color of control backgrounds is mostly black but with a little
56
- bit of blue so it can still be seen on all-black video frames, which are common. */
57
- .kg-video-js-skin .vjs-control-bar,
58
- .kg-video-js-skin .vjs-big-play-button,
59
- .kg-video-js-skin .vjs-menu-button .vjs-menu-content {
60
- /* IE8 - has no alpha support */
61
- background-color: #2B333F;
62
- /* Opacity: 1.0 = 100%, 0.0 = 0% */
63
- background-color: rgba(40, 40, 40, 0.75);
64
- }
65
-
66
- /* Slider - used for Volume bar and Progress bar */
67
- .kg-video-js-skin .vjs-slider {
68
- background-color: #73859f;
69
- background-color: rgba(115, 133, 159, 0.5);
70
- }
71
-
72
- /* The slider bar color is used for the progress bar and the volume bar
73
- (the first two can be removed after a fix that's coming) */
74
- .kg-video-js-skin .vjs-volume-level,
75
- .kg-video-js-skin .vjs-play-progress,
76
- .kg-video-js-skin .vjs-slider-bar {
77
- background: #fff;
78
- }
79
-
80
- /* The main progress bar also has a bar that shows how much has been loaded. */
81
- .kg-video-js-skin .vjs-load-progress {
82
- /* For IE8 we'll lighten the color */
83
- background: ligthen(#73859f, 25%);
84
- /* Otherwise we'll rely on stacked opacities */
85
- background: rgba(115, 133, 159, 0.5);
86
- }
87
-
88
- /* The load progress bar also has internal divs that represent
89
- smaller disconnected loaded time ranges */
90
- .kg-video-js-skin .vjs-load-progress div {
91
- /* For IE8 we'll lighten the color */
92
- background: ligthen(#73859f, 50%);
93
- /* Otherwise we'll rely on stacked opacities */
94
- background: rgba(115, 133, 159, 0.75);
95
- }
96
-
97
- .kg-video-js-skin .vjs-big-play-button::before {
98
- content: '\f101';
99
- font-size: 2.1em;
100
- font-family: 'Videojs';
101
- text-align: center;
102
- width: 100%;
103
- height: 100%;
104
- position: absolute;
105
- line-height: 1.3em;
106
- }
1
+ /*
2
+ Player Skin Designer for Video.js
3
+ http://videojs.com
4
+
5
+ To customize the player skin edit
6
+ the CSS below. Click "details"
7
+ below to add comments or questions.
8
+ This file uses some SCSS. Learn more
9
+ at http://sass-lang.com/guide)
10
+
11
+ This designer can be linked to at:
12
+ http://codepen.io/heff/pen/EarCt/left/?editors=010
13
+ */
14
+ .kg-video-js-skin {
15
+ /* The base font size controls the size of everything, not just text.
16
+ All dimensions use em-based sizes so that the scale along with the font size.
17
+ Try increasing it to 15px and see what happens. */
18
+ font-size: 10px;
19
+ /* The main font color changes the ICON COLORS as well as the text */
20
+ color: #fff;
21
+ }
22
+
23
+ /* The "Big Play Button" is the play button that shows before the video plays.
24
+ To center it set the align values to center and middle. The typical location
25
+ of the button is the center, but there is trend towards moving it to a corner
26
+ where it gets out of the way of valuable content in the poster image.*/
27
+ .kg-video-js-skin .vjs-big-play-button {
28
+ /* The font size is what makes the big play button...big.
29
+ All width/height values use ems, which are a multiple of the font size.
30
+ If the .kg-video-js-skin font-size is 10px, then 3em equals 30px.*/
31
+ font-size: 3em;
32
+ /* We're using SCSS vars here because the values are used in multiple places.
33
+ Now that font size is set, the following em values will be a multiple of the
34
+ new font size. If the font-size is 3em (30px), then setting any of
35
+ the following values to 3em would equal 30px. 3 * font-size. */
36
+ /* 1.5em = 45px default */
37
+ line-height: 3em;
38
+ height: 3em;
39
+ width: 3em;
40
+ /* 0.06666em = 2px default */
41
+ border: 0.16666em solid #fff;
42
+ /* 0.3em = 9px default */
43
+ border-radius: 3em;
44
+ /* Align center */
45
+ left: 50%;
46
+ top: 50%;
47
+ margin-left: -1.5em;
48
+ margin-top: -1.5em;
49
+ position: absolute;
50
+ text-align: left;
51
+ box-sizing: border-box;
52
+ z-index: 2;
53
+ }
54
+
55
+ /* The default color of control backgrounds is mostly black but with a little
56
+ bit of blue so it can still be seen on all-black video frames, which are common. */
57
+ .kg-video-js-skin .vjs-control-bar,
58
+ .kg-video-js-skin .vjs-big-play-button,
59
+ .kg-video-js-skin .vjs-menu-button .vjs-menu-content {
60
+ /* IE8 - has no alpha support */
61
+ background-color: #2B333F;
62
+ /* Opacity: 1.0 = 100%, 0.0 = 0% */
63
+ background-color: rgba(40, 40, 40, 0.75);
64
+ }
65
+
66
+ /* Slider - used for Volume bar and Progress bar */
67
+ .kg-video-js-skin .vjs-slider {
68
+ background-color: #73859f;
69
+ background-color: rgba(115, 133, 159, 0.5);
70
+ }
71
+
72
+ /* The slider bar color is used for the progress bar and the volume bar
73
+ (the first two can be removed after a fix that's coming) */
74
+ .kg-video-js-skin .vjs-volume-level,
75
+ .kg-video-js-skin .vjs-play-progress,
76
+ .kg-video-js-skin .vjs-slider-bar {
77
+ background: #fff;
78
+ }
79
+
80
+ /* The main progress bar also has a bar that shows how much has been loaded. */
81
+ .kg-video-js-skin .vjs-load-progress {
82
+ /* For IE8 we'll lighten the color */
83
+ background: ligthen(#73859f, 25%);
84
+ /* Otherwise we'll rely on stacked opacities */
85
+ background: rgba(115, 133, 159, 0.5);
86
+ }
87
+
88
+ /* The load progress bar also has internal divs that represent
89
+ smaller disconnected loaded time ranges */
90
+ .kg-video-js-skin .vjs-load-progress div {
91
+ /* For IE8 we'll lighten the color */
92
+ background: ligthen(#73859f, 50%);
93
+ /* Otherwise we'll rely on stacked opacities */
94
+ background: rgba(115, 133, 159, 0.75);
95
+ }
96
+
97
+ .kg-video-js-skin .vjs-big-play-button::before {
98
+ content: '\f101';
99
+ font-size: 2.1em;
100
+ font-family: 'Videojs';
101
+ text-align: center;
102
+ width: 100%;
103
+ height: 100%;
104
+ position: absolute;
105
+ line-height: 1.3em;
106
+ }
video-js/lang/ar.js CHANGED
@@ -1,34 +1,34 @@
1
- videojs.addLanguage("ar",{
2
- "Play": "تشغيل",
3
- "Pause": "ايقاف",
4
- "Current Time": "الوقت الحالي",
5
- "Duration Time": "Dauer",
6
- "Remaining Time": "الوقت المتبقي",
7
- "Stream Type": "نوع التيار",
8
- "LIVE": "مباشر",
9
- "Loaded": "تم التحميل",
10
- "Progress": "التقدم",
11
- "Fullscreen": "ملء الشاشة",
12
- "Non-Fullscreen": "غير ملء الشاشة",
13
- "Mute": "صامت",
14
- "Unmute": "غير الصامت",
15
- "Playback Rate": "معدل التشغيل",
16
- "Subtitles": "الترجمة",
17
- "subtitles off": "ايقاف الترجمة",
18
- "Captions": "التعليقات",
19
- "captions off": "ايقاف التعليقات",
20
- "Chapters": "فصول",
21
- "You aborted the media playback": "لقد ألغيت تشغيل الفيديو",
22
- "A network error caused the media download to fail part-way.": "تسبب خطأ في الشبكة بفشل تحميل الفيديو بالكامل.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "لا يمكن تحميل الفيديو بسبب فشل في الخادم أو الشبكة ، أو فشل بسبب عدم امكانية قراءة تنسيق الفيديو.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "تم ايقاف تشغيل الفيديو بسبب مشكلة فساد أو لأن الفيديو المستخدم يستخدم ميزات غير مدعومة من متصفحك.",
25
- "No compatible source was found for this media.": "فشل العثور على أي مصدر متوافق مع هذا الفيديو.",
26
- "Play Video": "تشغيل الفيديو",
27
- "Close": "أغلق",
28
- "Modal Window": "نافذة مشروطة",
29
- "This is a modal window": "هذه نافذة مشروطة",
30
- "This modal can be closed by pressing the Escape key or activating the close button.": "يمكن غلق هذه النافذة المشروطة عن طريق الضغط على زر الخروج أو تفعيل زر الإغلاق",
31
- ", opens captions settings dialog": ", تفتح نافذة خيارات التعليقات",
32
- ", opens subtitles settings dialog": ", تفتح نافذة خيارات الترجمة",
33
- ", selected": ", مختار"
34
  });
1
+ videojs.addLanguage("ar",{
2
+ "Play": "تشغيل",
3
+ "Pause": "ايقاف",
4
+ "Current Time": "الوقت الحالي",
5
+ "Duration Time": "Dauer",
6
+ "Remaining Time": "الوقت المتبقي",
7
+ "Stream Type": "نوع التيار",
8
+ "LIVE": "مباشر",
9
+ "Loaded": "تم التحميل",
10
+ "Progress": "التقدم",
11
+ "Fullscreen": "ملء الشاشة",
12
+ "Non-Fullscreen": "غير ملء الشاشة",
13
+ "Mute": "صامت",
14
+ "Unmute": "غير الصامت",
15
+ "Playback Rate": "معدل التشغيل",
16
+ "Subtitles": "الترجمة",
17
+ "subtitles off": "ايقاف الترجمة",
18
+ "Captions": "التعليقات",
19
+ "captions off": "ايقاف التعليقات",
20
+ "Chapters": "فصول",
21
+ "You aborted the media playback": "لقد ألغيت تشغيل الفيديو",
22
+ "A network error caused the media download to fail part-way.": "تسبب خطأ في الشبكة بفشل تحميل الفيديو بالكامل.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "لا يمكن تحميل الفيديو بسبب فشل في الخادم أو الشبكة ، أو فشل بسبب عدم امكانية قراءة تنسيق الفيديو.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "تم ايقاف تشغيل الفيديو بسبب مشكلة فساد أو لأن الفيديو المستخدم يستخدم ميزات غير مدعومة من متصفحك.",
25
+ "No compatible source was found for this media.": "فشل العثور على أي مصدر متوافق مع هذا الفيديو.",
26
+ "Play Video": "تشغيل الفيديو",
27
+ "Close": "أغلق",
28
+ "Modal Window": "نافذة مشروطة",
29
+ "This is a modal window": "هذه نافذة مشروطة",
30
+ "This modal can be closed by pressing the Escape key or activating the close button.": "يمكن غلق هذه النافذة المشروطة عن طريق الضغط على زر الخروج أو تفعيل زر الإغلاق",
31
+ ", opens captions settings dialog": ", تفتح نافذة خيارات التعليقات",
32
+ ", opens subtitles settings dialog": ", تفتح نافذة خيارات الترجمة",
33
+ ", selected": ", مختار"
34
  });
video-js/lang/ba.js CHANGED
@@ -1,26 +1,26 @@
1
- videojs.addLanguage("ba",{
2
- "Play": "Pusti",
3
- "Pause": "Pauza",
4
- "Current Time": "Trenutno vrijeme",
5
- "Duration Time": "Vrijeme trajanja",
6
- "Remaining Time": "Preostalo vrijeme",
7
- "Stream Type": "Način strimovanja",
8
- "LIVE": "UŽIVO",
9
- "Loaded": "Učitan",
10
- "Progress": "Progres",
11
- "Fullscreen": "Puni ekran",
12
- "Non-Fullscreen": "Mali ekran",
13
- "Mute": "Prigušen",
14
- "Unmute": "Ne-prigušen",
15
- "Playback Rate": "Stopa reprodukcije",
16
- "Subtitles": "Podnaslov",
17
- "subtitles off": "Podnaslov deaktiviran",
18
- "Captions": "Titlovi",
19
- "captions off": "Titlovi deaktivirani",
20
- "Chapters": "Poglavlja",
21
- "You aborted the media playback": "Isključili ste reprodukciju videa.",
22
- "A network error caused the media download to fail part-way.": "Video se prestao preuzimati zbog greške na mreži.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video se ne može reproducirati zbog servera, greške u mreži ili je format ne podržan.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Reprodukcija videa je zaustavljenja zbog greške u formatu ili zbog verzije vašeg pretraživača.",
25
- "No compatible source was found for this media.": "Nije nađen nijedan kompatibilan izvor ovog videa."
26
  });
1
+ videojs.addLanguage("ba",{
2
+ "Play": "Pusti",
3
+ "Pause": "Pauza",
4
+ "Current Time": "Trenutno vrijeme",
5
+ "Duration Time": "Vrijeme trajanja",
6
+ "Remaining Time": "Preostalo vrijeme",
7
+ "Stream Type": "Način strimovanja",
8
+ "LIVE": "UŽIVO",
9
+ "Loaded": "Učitan",
10
+ "Progress": "Progres",
11
+ "Fullscreen": "Puni ekran",
12
+ "Non-Fullscreen": "Mali ekran",
13
+ "Mute": "Prigušen",
14
+ "Unmute": "Ne-prigušen",
15
+ "Playback Rate": "Stopa reprodukcije",
16
+ "Subtitles": "Podnaslov",
17
+ "subtitles off": "Podnaslov deaktiviran",
18
+ "Captions": "Titlovi",
19
+ "captions off": "Titlovi deaktivirani",
20
+ "Chapters": "Poglavlja",
21
+ "You aborted the media playback": "Isključili ste reprodukciju videa.",
22
+ "A network error caused the media download to fail part-way.": "Video se prestao preuzimati zbog greške na mreži.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video se ne može reproducirati zbog servera, greške u mreži ili je format ne podržan.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Reprodukcija videa je zaustavljenja zbog greške u formatu ili zbog verzije vašeg pretraživača.",
25
+ "No compatible source was found for this media.": "Nije nađen nijedan kompatibilan izvor ovog videa."
26
  });
video-js/lang/bg.js CHANGED
@@ -1,26 +1,26 @@
1
- videojs.addLanguage("bg",{
2
- "Play": "Възпроизвеждане",
3
- "Pause": "Пауза",
4
- "Current Time": "Текущо време",
5
- "Duration Time": "Продължителност",
6
- "Remaining Time": "Оставащо време",
7
- "Stream Type": "Тип на потока",
8
- "LIVE": "НА ЖИВО",
9
- "Loaded": "Заредено",
10
- "Progress": "Прогрес",
11
- "Fullscreen": "Цял екран",
12
- "Non-Fullscreen": "Спиране на цял екран",
13
- "Mute": "Без звук",
14
- "Unmute": "Със звук",
15
- "Playback Rate": "Скорост на възпроизвеждане",
16
- "Subtitles": "Субтитри",
17
- "subtitles off": "Спряни субтитри",
18
- "Captions": "Аудио надписи",
19
- "captions off": "Спряни аудио надписи",
20
- "Chapters": "Глави",
21
- "You aborted the media playback": "Спряхте възпроизвеждането на видеото",
22
- "A network error caused the media download to fail part-way.": "Грешка в мрежата провали изтеглянето на видеото.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Видеото не може да бъде заредено заради проблем със сървъра или мрежата или защото този формат не е поддържан.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Възпроизвеждането на видеото беше прекъснато заради проблем с файла или защото видеото използва опции които браузърът Ви не поддържа.",
25
- "No compatible source was found for this media.": "Не беше намерен съвместим източник за това видео."
26
  });
1
+ videojs.addLanguage("bg",{
2
+ "Play": "Възпроизвеждане",
3
+ "Pause": "Пауза",
4
+ "Current Time": "Текущо време",
5
+ "Duration Time": "Продължителност",
6
+ "Remaining Time": "Оставащо време",
7
+ "Stream Type": "Тип на потока",
8
+ "LIVE": "НА ЖИВО",
9
+ "Loaded": "Заредено",
10
+ "Progress": "Прогрес",
11
+ "Fullscreen": "Цял екран",
12
+ "Non-Fullscreen": "Спиране на цял екран",
13
+ "Mute": "Без звук",
14
+ "Unmute": "Със звук",
15
+ "Playback Rate": "Скорост на възпроизвеждане",
16
+ "Subtitles": "Субтитри",
17
+ "subtitles off": "Спряни субтитри",
18
+ "Captions": "Аудио надписи",
19
+ "captions off": "Спряни аудио надписи",
20
+ "Chapters": "Глави",
21
+ "You aborted the media playback": "Спряхте възпроизвеждането на видеото",
22
+ "A network error caused the media download to fail part-way.": "Грешка в мрежата провали изтеглянето на видеото.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Видеото не може да бъде заредено заради проблем със сървъра или мрежата или защото този формат не е поддържан.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Възпроизвеждането на видеото беше прекъснато заради проблем с файла или защото видеото използва опции които браузърът Ви не поддържа.",
25
+ "No compatible source was found for this media.": "Не беше намерен съвместим източник за това видео."
26
  });
video-js/lang/ca.js CHANGED
@@ -1,26 +1,26 @@
1
- videojs.addLanguage("ca",{
2
- "Play": "Reproducció",
3
- "Pause": "Pausa",
4
- "Current Time": "Temps reproduït",
5
- "Duration Time": "Durada total",
6
- "Remaining Time": "Temps restant",
7
- "Stream Type": "Tipus de seqüència",
8
- "LIVE": "EN DIRECTE",
9
- "Loaded": "Carregat",
10
- "Progress": "Progrés",
11
- "Fullscreen": "Pantalla completa",
12
- "Non-Fullscreen": "Pantalla no completa",
13
- "Mute": "Silencia",
14
- "Unmute": "Amb so",
15
- "Playback Rate": "Velocitat de reproducció",
16
- "Subtitles": "Subtítols",
17
- "subtitles off": "Subtítols desactivats",
18
- "Captions": "Llegendes",
19
- "captions off": "Llegendes desactivades",
20
- "Chapters": "Capítols",
21
- "You aborted the media playback": "Heu interromput la reproducció del vídeo.",
22
- "A network error caused the media download to fail part-way.": "Un error de la xarxa ha interromput la baixada del vídeo.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "No s'ha pogut carregar el vídeo perquè el servidor o la xarxa han fallat, o bé perquè el seu format no és compatible.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La reproducció de vídeo s'ha interrumput per un problema de corrupció de dades o bé perquè el vídeo demanava funcions que el vostre navegador no ofereix.",
25
- "No compatible source was found for this media.": "No s'ha trobat cap font compatible amb el vídeo."
26
  });
1
+ videojs.addLanguage("ca",{
2
+ "Play": "Reproducció",
3
+ "Pause": "Pausa",
4
+ "Current Time": "Temps reproduït",
5
+ "Duration Time": "Durada total",
6
+ "Remaining Time": "Temps restant",
7
+ "Stream Type": "Tipus de seqüència",
8
+ "LIVE": "EN DIRECTE",
9
+ "Loaded": "Carregat",
10
+ "Progress": "Progrés",
11
+ "Fullscreen": "Pantalla completa",
12
+ "Non-Fullscreen": "Pantalla no completa",
13
+ "Mute": "Silencia",
14
+ "Unmute": "Amb so",
15
+ "Playback Rate": "Velocitat de reproducció",
16
+ "Subtitles": "Subtítols",
17
+ "subtitles off": "Subtítols desactivats",
18
+ "Captions": "Llegendes",
19
+ "captions off": "Llegendes desactivades",
20
+ "Chapters": "Capítols",
21
+ "You aborted the media playback": "Heu interromput la reproducció del vídeo.",
22
+ "A network error caused the media download to fail part-way.": "Un error de la xarxa ha interromput la baixada del vídeo.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "No s'ha pogut carregar el vídeo perquè el servidor o la xarxa han fallat, o bé perquè el seu format no és compatible.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La reproducció de vídeo s'ha interrumput per un problema de corrupció de dades o bé perquè el vídeo demanava funcions que el vostre navegador no ofereix.",
25
+ "No compatible source was found for this media.": "No s'ha trobat cap font compatible amb el vídeo."
26
  });
video-js/lang/cs.js CHANGED
@@ -1,26 +1,26 @@
1
- videojs.addLanguage("cs",{
2
- "Play": "Přehrát",
3
- "Pause": "Pauza",
4
- "Current Time": "Aktuální čas",
5
- "Duration Time": "Doba trvání",
6
- "Remaining Time": "Zbývající čas",
7
- "Stream Type": "Stream Type",
8
- "LIVE": "ŽIVĚ",
9
- "Loaded": "Načteno",
10
- "Progress": "Stav",
11
- "Fullscreen": "Celá obrazovka",
12
- "Non-Fullscreen": "Zmenšená obrazovka",
13
- "Mute": "Ztlumit zvuk",
14
- "Unmute": "Přehrát zvuk",
15
- "Playback Rate": "Rychlost přehrávání",
16
- "Subtitles": "Titulky",
17
- "subtitles off": "Titulky vypnuty",
18
- "Captions": "Popisky",
19
- "captions off": "Popisky vypnuty",
20
- "Chapters": "Kapitoly",
21
- "You aborted the media playback": "Přehrávání videa je přerušeno.",
22
- "A network error caused the media download to fail part-way.": "Video nemohlo být načteno, kvůli chybě v síti.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video nemohlo být načteno, buď kvůli chybě serveru nebo sítě nebo proto, že daný formát není podporován.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Váš prohlížeč nepodporuje formát videa.",
25
- "No compatible source was found for this media.": "Špatně zadaný zdroj videa."
26
  });
1
+ videojs.addLanguage("cs",{
2
+ "Play": "Přehrát",
3
+ "Pause": "Pauza",
4
+ "Current Time": "Aktuální čas",
5
+ "Duration Time": "Doba trvání",
6
+ "Remaining Time": "Zbývající čas",
7
+ "Stream Type": "Stream Type",
8
+ "LIVE": "ŽIVĚ",
9
+ "Loaded": "Načteno",
10
+ "Progress": "Stav",
11
+ "Fullscreen": "Celá obrazovka",
12
+ "Non-Fullscreen": "Zmenšená obrazovka",
13
+ "Mute": "Ztlumit zvuk",
14
+ "Unmute": "Přehrát zvuk",
15
+ "Playback Rate": "Rychlost přehrávání",
16
+ "Subtitles": "Titulky",
17
+ "subtitles off": "Titulky vypnuty",
18
+ "Captions": "Popisky",
19
+ "captions off": "Popisky vypnuty",
20
+ "Chapters": "Kapitoly",
21
+ "You aborted the media playback": "Přehrávání videa je přerušeno.",
22
+ "A network error caused the media download to fail part-way.": "Video nemohlo být načteno, kvůli chybě v síti.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video nemohlo být načteno, buď kvůli chybě serveru nebo sítě nebo proto, že daný formát není podporován.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Váš prohlížeč nepodporuje formát videa.",
25
+ "No compatible source was found for this media.": "Špatně zadaný zdroj videa."
26
  });
video-js/lang/da.js CHANGED
@@ -1,26 +1,26 @@
1
- videojs.addLanguage("da",{
2
- "Play": "Afspil",
3
- "Pause": "Pause",
4
- "Current Time": "Aktuel tid",
5
- "Duration Time": "Varighed",
6
- "Remaining Time": "Resterende tid",
7
- "Stream Type": "Stream-type",
8
- "LIVE": "LIVE",
9
- "Loaded": "Indlæst",
10
- "Progress": "Status",
11
- "Fullscreen": "Fuldskærm",
12
- "Non-Fullscreen": "Luk fuldskærm",
13
- "Mute": "Uden lyd",
14
- "Unmute": "Med lyd",
15
- "Playback Rate": "Afspilningsrate",
16
- "Subtitles": "Undertekster",
17
- "subtitles off": "Uden undertekster",
18
- "Captions": "Undertekster for hørehæmmede",
19
- "captions off": "Uden undertekster for hørehæmmede",
20
- "Chapters": "Kapitler",
21
- "You aborted the media playback": "Du afbrød videoafspilningen.",
22
- "A network error caused the media download to fail part-way.": "En netværksfejl fik download af videoen til at fejle.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikke indlæses, enten fordi serveren eller netværket fejlede, eller fordi formatet ikke er understøttet.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoafspilningen blev afbrudt på grund af ødelagte data eller fordi videoen benyttede faciliteter som din browser ikke understøtter.",
25
- "No compatible source was found for this media.": "Fandt ikke en kompatibel kilde for denne media."
26
  });
1
+ videojs.addLanguage("da",{
2
+ "Play": "Afspil",
3
+ "Pause": "Pause",
4
+ "Current Time": "Aktuel tid",
5
+ "Duration Time": "Varighed",
6
+ "Remaining Time": "Resterende tid",
7
+ "Stream Type": "Stream-type",
8
+ "LIVE": "LIVE",
9
+ "Loaded": "Indlæst",
10
+ "Progress": "Status",
11
+ "Fullscreen": "Fuldskærm",
12
+ "Non-Fullscreen": "Luk fuldskærm",
13
+ "Mute": "Uden lyd",
14
+ "Unmute": "Med lyd",
15
+ "Playback Rate": "Afspilningsrate",
16
+ "Subtitles": "Undertekster",
17
+ "subtitles off": "Uden undertekster",
18
+ "Captions": "Undertekster for hørehæmmede",
19
+ "captions off": "Uden undertekster for hørehæmmede",
20
+ "Chapters": "Kapitler",
21
+ "You aborted the media playback": "Du afbrød videoafspilningen.",
22
+ "A network error caused the media download to fail part-way.": "En netværksfejl fik download af videoen til at fejle.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikke indlæses, enten fordi serveren eller netværket fejlede, eller fordi formatet ikke er understøttet.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoafspilningen blev afbrudt på grund af ødelagte data eller fordi videoen benyttede faciliteter som din browser ikke understøtter.",
25
+ "No compatible source was found for this media.": "Fandt ikke en kompatibel kilde for denne media."
26
  });
video-js/lang/de.js CHANGED
@@ -1,40 +1,40 @@
1
- videojs.addLanguage("de",{
2
- "Play": "Wiedergabe",
3
- "Pause": "Pause",
4
- "Current Time": "Aktueller Zeitpunkt",
5
- "Duration Time": "Dauer",
6
- "Remaining Time": "Verbleibende Zeit",
7
- "Stream Type": "Streamtyp",
8
- "LIVE": "LIVE",
9
- "Loaded": "Geladen",
10
- "Progress": "Status",
11
- "Fullscreen": "Vollbild",
12
- "Non-Fullscreen": "Kein Vollbild",
13
- "Mute": "Ton aus",
14
- "Unmute": "Ton ein",
15
- "Playback Rate": "Wiedergabegeschwindigkeit",
16
- "Subtitles": "Untertitel",
17
- "subtitles off": "Untertitel aus",
18
- "Captions": "Untertitel",
19
- "captions off": "Untertitel aus",
20
- "Chapters": "Kapitel",
21
- "You aborted the media playback": "Sie haben die Videowiedergabe abgebrochen.",
22
- "A network error caused the media download to fail part-way.": "Der Videodownload ist aufgrund eines Netzwerkfehlers fehlgeschlagen.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Die Videowiedergabe wurde entweder wegen eines Problems mit einem beschädigten Video oder wegen verwendeten Funktionen, die vom Browser nicht unterstützt werden, abgebrochen.",
25
- "No compatible source was found for this media.": "Für dieses Video wurde keine kompatible Quelle gefunden.",
26
- "Play Video": "Video abspielen",
27
- "Close": "Schließen",
28
- "Modal Window": "Modales Fenster",
29
- "This is a modal window": "Dies ist ein modales Fenster",
30
- "This modal can be closed by pressing the Escape key or activating the close button.": "Durch Drücken der Esc-Taste bzw. Betätigung der Schaltfläche \"Schließen\" wird dieses modale Fenster geschlossen.",
31
- ", opens captions settings dialog": ", öffnet Einstellungen für Untertitel",
32
- ", opens subtitles settings dialog": ", öffnet Einstellungen für Untertitel",
33
- ", selected": ", ausgewählt",
34
- "Close Modal Dialog": "Modales Fenster schließen",
35
- "Descriptions": "Beschreibungen",
36
- "descriptions off": "Beschreibungen aus",
37
- "The media is encrypted and we do not have the keys to decrypt it.": "Die Entschlüsselungsschlüssel für den verschlüsselten Medieninhalt sind nicht verfügbar.",
38
- ", opens descriptions settings dialog": ", öffnet Einstellungen für Beschreibungen",
39
- "Audio Track": "Tonspur"
40
  });
1
+ videojs.addLanguage("de",{
2
+ "Play": "Wiedergabe",
3
+ "Pause": "Pause",
4
+ "Current Time": "Aktueller Zeitpunkt",
5
+ "Duration Time": "Dauer",
6
+ "Remaining Time": "Verbleibende Zeit",
7
+ "Stream Type": "Streamtyp",
8
+ "LIVE": "LIVE",
9
+ "Loaded": "Geladen",
10
+ "Progress": "Status",
11
+ "Fullscreen": "Vollbild",
12
+ "Non-Fullscreen": "Kein Vollbild",
13
+ "Mute": "Ton aus",
14
+ "Unmute": "Ton ein",
15
+ "Playback Rate": "Wiedergabegeschwindigkeit",
16
+ "Subtitles": "Untertitel",
17
+ "subtitles off": "Untertitel aus",
18
+ "Captions": "Untertitel",
19
+ "captions off": "Untertitel aus",
20
+ "Chapters": "Kapitel",
21
+ "You aborted the media playback": "Sie haben die Videowiedergabe abgebrochen.",
22
+ "A network error caused the media download to fail part-way.": "Der Videodownload ist aufgrund eines Netzwerkfehlers fehlgeschlagen.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Die Videowiedergabe wurde entweder wegen eines Problems mit einem beschädigten Video oder wegen verwendeten Funktionen, die vom Browser nicht unterstützt werden, abgebrochen.",
25
+ "No compatible source was found for this media.": "Für dieses Video wurde keine kompatible Quelle gefunden.",
26
+ "Play Video": "Video abspielen",
27
+ "Close": "Schließen",
28
+ "Modal Window": "Modales Fenster",
29
+ "This is a modal window": "Dies ist ein modales Fenster",
30
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Durch Drücken der Esc-Taste bzw. Betätigung der Schaltfläche \"Schließen\" wird dieses modale Fenster geschlossen.",
31
+ ", opens captions settings dialog": ", öffnet Einstellungen für Untertitel",
32
+ ", opens subtitles settings dialog": ", öffnet Einstellungen für Untertitel",
33
+ ", selected": ", ausgewählt",
34
+ "Close Modal Dialog": "Modales Fenster schließen",
35
+ "Descriptions": "Beschreibungen",
36
+ "descriptions off": "Beschreibungen aus",
37
+ "The media is encrypted and we do not have the keys to decrypt it.": "Die Entschlüsselungsschlüssel für den verschlüsselten Medieninhalt sind nicht verfügbar.",
38
+ ", opens descriptions settings dialog": ", öffnet Einstellungen für Beschreibungen",
39
+ "Audio Track": "Tonspur"
40
  });
video-js/lang/el.js CHANGED
@@ -1,40 +1,40 @@
1
- videojs.addLanguage("el",{
2
- "Play": "Aναπαραγωγή",
3
- "Pause": "Παύση",
4
- "Current Time": "Τρέχων χρόνος",
5
- "Duration Time": "Συνολικός χρόνος",
6
- "Remaining Time": "Υπολοιπόμενος χρόνος",
7
- "Stream Type": "Τύπος ροής",
8
- "LIVE": "ΖΩΝΤΑΝΑ",
9
- "Loaded": "Φόρτωση επιτυχής",
10
- "Progress": "Πρόοδος",
11
- "Fullscreen": "Πλήρης οθόνη",
12
- "Non-Fullscreen": "Έξοδος από πλήρη οθόνη",
13
- "Mute": "Σίγαση",
14
- "Unmute": "Kατάργηση σίγασης",
15
- "Playback Rate": "Ρυθμός αναπαραγωγής",
16
- "Subtitles": "Υπότιτλοι",
17
- "subtitles off": "απόκρυψη υπότιτλων",
18
- "Captions": "Λεζάντες",
19
- "captions off": "απόκρυψη λεζάντων",
20
- "Chapters": "Κεφάλαια",
21
- "Close Modal Dialog": "Κλείσιμο παραθύρου",
22
- "Descriptions": "Περιγραφές",
23
- "descriptions off": "απόκρυψη περιγραφών",
24
- "Audio Track": "Ροή ήχου",
25
- "You aborted the media playback": "Ακυρώσατε την αναπαραγωγή",
26
- "A network error caused the media download to fail part-way.": "Ένα σφάλμα δικτύου προκάλεσε την αποτυχία μεταφόρτωσης του αρχείου προς αναπαραγωγή.",
27
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Το αρχείο προς αναπαραγωγή δεν ήταν δυνατό να φορτωθεί είτε γιατί υπήρξε σφάλμα στον διακομιστή ή το δίκτυο, είτε γιατί ο τύπος του αρχείου δεν υποστηρίζεται.",
28
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Η αναπαραγωγή ακυρώθηκε είτε λόγω κατεστραμμένου αρχείου, είτε γιατί το αρχείο απαιτεί λειτουργίες που δεν υποστηρίζονται από το πρόγραμμα περιήγησης που χρησιμοποιείτε.",
29
- "No compatible source was found for this media.": "Δεν βρέθηκε συμβατή πηγή αναπαραγωγής για το συγκεκριμένο αρχείο.",
30
- "The media is encrypted and we do not have the keys to decrypt it.": "Το αρχείο προς αναπαραγωγή είναι κρυπτογραφημένo και δεν υπάρχουν τα απαραίτητα κλειδιά αποκρυπτογράφησης.",
31
- "Play Video": "Αναπαραγωγή βίντεο",
32
- "Close": "Κλείσιμο",
33
- "Modal Window": "Aναδυόμενο παράθυρο",
34
- "This is a modal window": "Το παρών είναι ένα αναδυόμενο παράθυρο",
35
- "This modal can be closed by pressing the Escape key or activating the close button.": "Αυτό το παράθυρο μπορεί να εξαφανιστεί πατώντας το πλήκτρο Escape ή πατώντας το κουμπί κλεισίματος.",
36
- ", opens captions settings dialog": ", εμφανίζει τις ρυθμίσεις για τις λεζάντες",
37
- ", opens subtitles settings dialog": ", εμφανίζει τις ρυθμίσεις για τους υπότιτλους",
38
- ", opens descriptions settings dialog": ", εμφανίζει τις ρυθμίσεις για τις περιγραφές",
39
- ", selected": ", επιλεγμένο"
40
  });
1
+ videojs.addLanguage("el",{
2
+ "Play": "Aναπαραγωγή",
3
+ "Pause": "Παύση",
4
+ "Current Time": "Τρέχων χρόνος",
5
+ "Duration Time": "Συνολικός χρόνος",
6
+ "Remaining Time": "Υπολοιπόμενος χρόνος",
7
+ "Stream Type": "Τύπος ροής",
8
+ "LIVE": "ΖΩΝΤΑΝΑ",
9
+ "Loaded": "Φόρτωση επιτυχής",
10
+ "Progress": "Πρόοδος",
11
+ "Fullscreen": "Πλήρης οθόνη",
12
+ "Non-Fullscreen": "Έξοδος από πλήρη οθόνη",
13
+ "Mute": "Σίγαση",
14
+ "Unmute": "Kατάργηση σίγασης",
15
+ "Playback Rate": "Ρυθμός αναπαραγωγής",
16
+ "Subtitles": "Υπότιτλοι",
17
+ "subtitles off": "απόκρυψη υπότιτλων",
18
+ "Captions": "Λεζάντες",
19
+ "captions off": "απόκρυψη λεζάντων",
20
+ "Chapters": "Κεφάλαια",
21
+ "Close Modal Dialog": "Κλείσιμο παραθύρου",
22
+ "Descriptions": "Περιγραφές",
23
+ "descriptions off": "απόκρυψη περιγραφών",
24
+ "Audio Track": "Ροή ήχου",
25
+ "You aborted the media playback": "Ακυρώσατε την αναπαραγωγή",
26
+ "A network error caused the media download to fail part-way.": "Ένα σφάλμα δικτύου προκάλεσε την αποτυχία μεταφόρτωσης του αρχείου προς αναπαραγωγή.",
27
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Το αρχείο προς αναπαραγωγή δεν ήταν δυνατό να φορτωθεί είτε γιατί υπήρξε σφάλμα στον διακομιστή ή το δίκτυο, είτε γιατί ο τύπος του αρχείου δεν υποστηρίζεται.",
28
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Η αναπαραγωγή ακυρώθηκε είτε λόγω κατεστραμμένου αρχείου, είτε γιατί το αρχείο απαιτεί λειτουργίες που δεν υποστηρίζονται από το πρόγραμμα περιήγησης που χρησιμοποιείτε.",
29
+ "No compatible source was found for this media.": "Δεν βρέθηκε συμβατή πηγή αναπαραγωγής για το συγκεκριμένο αρχείο.",
30
+ "The media is encrypted and we do not have the keys to decrypt it.": "Το αρχείο προς αναπαραγωγή είναι κρυπτογραφημένo και δεν υπάρχουν τα απαραίτητα κλειδιά αποκρυπτογράφησης.",
31
+ "Play Video": "Αναπαραγωγή βίντεο",
32
+ "Close": "Κλείσιμο",
33
+ "Modal Window": "Aναδυόμενο παράθυρο",
34
+ "This is a modal window": "Το παρών είναι ένα αναδυόμενο παράθυρο",
35
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Αυτό το παράθυρο μπορεί να εξαφανιστεί πατώντας το πλήκτρο Escape ή πατώντας το κουμπί κλεισίματος.",
36
+ ", opens captions settings dialog": ", εμφανίζει τις ρυθμίσεις για τις λεζάντες",
37
+ ", opens subtitles settings dialog": ", εμφανίζει τις ρυθμίσεις για τους υπότιτλους",
38
+ ", opens descriptions settings dialog": ", εμφανίζει τις ρυθμίσεις για τις περιγραφές",
39
+ ", selected": ", επιλεγμένο"
40
  });
video-js/lang/en.js CHANGED
@@ -1,40 +1,40 @@
1
- videojs.addLanguage("en",{
2
- "Play": "Play",
3
- "Pause": "Pause",
4
- "Current Time": "Current Time",
5
- "Duration Time": "Duration Time",
6
- "Remaining Time": "Remaining Time",
7
- "Stream Type": "Stream Type",
8
- "LIVE": "LIVE",
9
- "Loaded": "Loaded",
10
- "Progress": "Progress",
11
- "Fullscreen": "Fullscreen",
12
- "Non-Fullscreen": "Non-Fullscreen",
13
- "Mute": "Mute",
14
- "Unmute": "Unmute",
15
- "Playback Rate": "Playback Rate",
16
- "Subtitles": "Subtitles",
17
- "subtitles off": "subtitles off",
18
- "Captions": "Captions",
19
- "captions off": "captions off",
20
- "Chapters": "Chapters",
21
- "Close Modal Dialog": "Close Modal Dialog",
22
- "Descriptions": "Descriptions",
23
- "descriptions off": "descriptions off",
24
- "Audio Track": "Audio Track",
25
- "You aborted the media playback": "You aborted the media playback",
26
- "A network error caused the media download to fail part-way.": "A network error caused the media download to fail part-way.",
27
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "The media could not be loaded, either because the server or network failed or because the format is not supported.",
28
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.",
29
- "No compatible source was found for this media.": "No compatible source was found for this media.",
30
- "The media is encrypted and we do not have the keys to decrypt it.": "The media is encrypted and we do not have the keys to decrypt it.",
31
- "Play Video": "Play Video",
32
- "Close": "Close",
33
- "Modal Window": "Modal Window",
34
- "This is a modal window": "This is a modal window",
35
- "This modal can be closed by pressing the Escape key or activating the close button.": "This modal can be closed by pressing the Escape key or activating the close button.",
36
- ", opens captions settings dialog": ", opens captions settings dialog",
37
- ", opens subtitles settings dialog": ", opens subtitles settings dialog",
38
- ", opens descriptions settings dialog": ", opens descriptions settings dialog",
39
- ", selected": ", selected"
40
  });
1
+ videojs.addLanguage("en",{
2
+ "Play": "Play",
3
+ "Pause": "Pause",
4
+ "Current Time": "Current Time",
5
+ "Duration Time": "Duration Time",
6
+ "Remaining Time": "Remaining Time",
7
+ "Stream Type": "Stream Type",
8
+ "LIVE": "LIVE",
9
+ "Loaded": "Loaded",
10
+ "Progress": "Progress",
11
+ "Fullscreen": "Fullscreen",
12
+ "Non-Fullscreen": "Non-Fullscreen",
13
+ "Mute": "Mute",
14
+ "Unmute": "Unmute",
15
+ "Playback Rate": "Playback Rate",
16
+ "Subtitles": "Subtitles",
17
+ "subtitles off": "subtitles off",
18
+ "Captions": "Captions",
19
+ "captions off": "captions off",
20
+ "Chapters": "Chapters",
21
+ "Close Modal Dialog": "Close Modal Dialog",
22
+ "Descriptions": "Descriptions",
23
+ "descriptions off": "descriptions off",
24
+ "Audio Track": "Audio Track",
25
+ "You aborted the media playback": "You aborted the media playback",
26
+ "A network error caused the media download to fail part-way.": "A network error caused the media download to fail part-way.",
27
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "The media could not be loaded, either because the server or network failed or because the format is not supported.",
28
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.",
29
+ "No compatible source was found for this media.": "No compatible source was found for this media.",
30
+ "The media is encrypted and we do not have the keys to decrypt it.": "The media is encrypted and we do not have the keys to decrypt it.",
31
+ "Play Video": "Play Video",
32
+ "Close": "Close",
33
+ "Modal Window": "Modal Window",
34
+ "This is a modal window": "This is a modal window",
35
+ "This modal can be closed by pressing the Escape key or activating the close button.": "This modal can be closed by pressing the Escape key or activating the close button.",
36
+ ", opens captions settings dialog": ", opens captions settings dialog",
37
+ ", opens subtitles settings dialog": ", opens subtitles settings dialog",
38
+ ", opens descriptions settings dialog": ", opens descriptions settings dialog",
39
+ ", selected": ", selected"
40
  });
video-js/lang/es.js CHANGED
@@ -1,26 +1,26 @@
1
- videojs.addLanguage("es",{
2
- "Play": "Reproducción",
3
- "Pause": "Pausa",
4
- "Current Time": "Tiempo reproducido",
5
- "Duration Time": "Duración total",
6
- "Remaining Time": "Tiempo restante",
7
- "Stream Type": "Tipo de secuencia",
8
- "LIVE": "DIRECTO",
9
- "Loaded": "Cargado",
10
- "Progress": "Progreso",
11
- "Fullscreen": "Pantalla completa",
12
- "Non-Fullscreen": "Pantalla no completa",
13
- "Mute": "Silenciar",
14
- "Unmute": "No silenciado",
15
- "Playback Rate": "Velocidad de reproducción",
16
- "Subtitles": "Subtítulos",
17
- "subtitles off": "Subtítulos desactivados",
18
- "Captions": "Subtítulos especiales",
19
- "captions off": "Subtítulos especiales desactivados",
20
- "Chapters": "Capítulos",
21
- "You aborted the media playback": "Ha interrumpido la reproducción del vídeo.",
22
- "A network error caused the media download to fail part-way.": "Un error de red ha interrumpido la descarga del vídeo.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "No se ha podido cargar el vídeo debido a un fallo de red o del servidor o porque el formato es incompatible.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La reproducción de vídeo se ha interrumpido por un problema de corrupción de datos o porque el vídeo precisa funciones que su navegador no ofrece.",
25
- "No compatible source was found for this media.": "No se ha encontrado ninguna fuente compatible con este vídeo."
26
  });
1
+ videojs.addLanguage("es",{
2
+ "Play": "Reproducción",
3
+ "Pause": "Pausa",
4
+ "Current Time": "Tiempo reproducido",
5
+ "Duration Time": "Duración total",
6
+ "Remaining Time": "Tiempo restante",
7
+ "Stream Type": "Tipo de secuencia",
8
+ "LIVE": "DIRECTO",
9
+ "Loaded": "Cargado",
10
+ "Progress": "Progreso",
11
+ "Fullscreen": "Pantalla completa",
12
+ "Non-Fullscreen": "Pantalla no completa",
13
+ "Mute": "Silenciar",
14
+ "Unmute": "No silenciado",
15
+ "Playback Rate": "Velocidad de reproducción",
16
+ "Subtitles": "Subtítulos",
17
+ "subtitles off": "Subtítulos desactivados",
18
+ "Captions": "Subtítulos especiales",
19
+ "captions off": "Subtítulos especiales desactivados",
20
+ "Chapters": "Capítulos",
21
+ "You aborted the media playback": "Ha interrumpido la reproducción del vídeo.",
22
+ "A network error caused the media download to fail part-way.": "Un error de red ha interrumpido la descarga del vídeo.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "No se ha podido cargar el vídeo debido a un fallo de red o del servidor o porque el formato es incompatible.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La reproducción de vídeo se ha interrumpido por un problema de corrupción de datos o porque el vídeo precisa funciones que su navegador no ofrece.",
25
+ "No compatible source was found for this media.": "No se ha encontrado ninguna fuente compatible con este vídeo."
26
  });
video-js/lang/fa.js CHANGED
@@ -1,26 +1,26 @@
1
- videojs.addLanguage("fa",{
2
- "Play": "پخش",
3
- "Pause": "وقفه",
4
- "Current Time": "زمان کنونی",
5
- "Duration Time": "مدت زمان",
6
- "Remaining Time": "زمان باقیمانده",
7
- "Stream Type": "نوع استریم",
8
- "LIVE": "زنده",
9
- "Loaded": "فراخوانی شده",
10
- "Progress": "پیشرفت",
11
- "Fullscreen": "تمام صفحه",
12
- "Non-Fullscreen": "نمایش عادی",
13
- "Mute": "بی صدا",
14
- "Unmute": "بهمراه صدا",
15
- "Playback Rate": "سرعت پخش",
16
- "Subtitles": "زیرنویس",
17
- "subtitles off": "بدون زیرنویس",
18
- "Captions": "عنوان",
19
- "captions off": "بدون عنوان",
20
- "Chapters": "فصل",
21
- "You aborted the media playback": "شما پخش را متوقف کردید.",
22
- "A network error caused the media download to fail part-way.": "مشکل در دریافت ویدئو ...",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "فرمت پشتیبانی نمیشود یا خطایی روی داده است.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "مشکل در دریافت ویدئو ...",
25
- "No compatible source was found for this media.": "هیچ ورودی ای برای این رسانه شناسایی نشد."
26
  });
1
+ videojs.addLanguage("fa",{
2
+ "Play": "پخش",
3
+ "Pause": "وقفه",
4
+ "Current Time": "زمان کنونی",
5
+ "Duration Time": "مدت زمان",
6
+ "Remaining Time": "زمان باقیمانده",
7
+ "Stream Type": "نوع استریم",
8
+ "LIVE": "زنده",
9
+ "Loaded": "فراخوانی شده",
10
+ "Progress": "پیشرفت",
11
+ "Fullscreen": "تمام صفحه",
12
+ "Non-Fullscreen": "نمایش عادی",
13
+ "Mute": "بی صدا",
14
+ "Unmute": "بهمراه صدا",
15
+ "Playback Rate": "سرعت پخش",
16
+ "Subtitles": "زیرنویس",
17
+ "subtitles off": "بدون زیرنویس",
18
+ "Captions": "عنوان",
19
+ "captions off": "بدون عنوان",
20
+ "Chapters": "فصل",
21
+ "You aborted the media playback": "شما پخش را متوقف کردید.",
22
+ "A network error caused the media download to fail part-way.": "مشکل در دریافت ویدئو ...",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "فرمت پشتیبانی نمیشود یا خطایی روی داده است.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "مشکل در دریافت ویدئو ...",
25
+ "No compatible source was found for this media.": "هیچ ورودی ای برای این رسانه شناسایی نشد."
26
  });
video-js/lang/fi.js CHANGED
@@ -1,26 +1,26 @@
1
- videojs.addLanguage("fi",{
2
- "Play": "Toisto",
3
- "Pause": "Tauko",
4
- "Current Time": "Tämänhetkinen aika",
5
- "Duration Time": "Kokonaisaika",
6
- "Remaining Time": "Jäljellä oleva aika",
7
- "Stream Type": "Lähetystyyppi",
8
- "LIVE": "LIVE",
9
- "Loaded": "Ladattu",
10
- "Progress": "Edistyminen",
11
- "Fullscreen": "Koko näyttö",
12
- "Non-Fullscreen": "Koko näyttö pois",
13
- "Mute": "Ääni pois",
14
- "Unmute": "Ääni päällä",
15
- "Playback Rate": "Toistonopeus",
16
- "Subtitles": "Tekstitys",
17
- "subtitles off": "Tekstitys pois",
18
- "Captions": "Tekstitys",
19
- "captions off": "Tekstitys pois",
20
- "Chapters": "Kappaleet",
21
- "You aborted the media playback": "Olet keskeyttänyt videotoiston.",
22
- "A network error caused the media download to fail part-way.": "Verkkovirhe keskeytti videon latauksen.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videon lataus ei onnistunut joko palvelin- tai verkkovirheestä tai väärästä formaatista johtuen.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videon toisto keskeytyi, koska media on vaurioitunut tai käyttää käyttää toimintoja, joita selaimesi ei tue.",
25
- "No compatible source was found for this media.": "Tälle videolle ei löytynyt yhteensopivaa lähdettä."
26
  });
1
+ videojs.addLanguage("fi",{
2
+ "Play": "Toisto",
3
+ "Pause": "Tauko",
4
+ "Current Time": "Tämänhetkinen aika",
5
+ "Duration Time": "Kokonaisaika",
6
+ "Remaining Time": "Jäljellä oleva aika",
7
+ "Stream Type": "Lähetystyyppi",
8
+ "LIVE": "LIVE",
9
+ "Loaded": "Ladattu",
10
+ "Progress": "Edistyminen",
11
+ "Fullscreen": "Koko näyttö",
12
+ "Non-Fullscreen": "Koko näyttö pois",
13
+ "Mute": "Ääni pois",
14
+ "Unmute": "Ääni päällä",
15
+ "Playback Rate": "Toistonopeus",
16
+ "Subtitles": "Tekstitys",
17
+ "subtitles off": "Tekstitys pois",
18
+ "Captions": "Tekstitys",
19
+ "captions off": "Tekstitys pois",
20
+ "Chapters": "Kappaleet",
21
+ "You aborted the media playback": "Olet keskeyttänyt videotoiston.",
22
+ "A network error caused the media download to fail part-way.": "Verkkovirhe keskeytti videon latauksen.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videon lataus ei onnistunut joko palvelin- tai verkkovirheestä tai väärästä formaatista johtuen.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videon toisto keskeytyi, koska media on vaurioitunut tai käyttää käyttää toimintoja, joita selaimesi ei tue.",
25
+ "No compatible source was found for this media.": "Tälle videolle ei löytynyt yhteensopivaa lähdettä."
26
  });
video-js/lang/fr.js CHANGED
@@ -1,40 +1,40 @@
1
- videojs.addLanguage("fr",{
2
- "Play": "Lecture",
3
- "Pause": "Pause",
4
- "Current Time": "Temps actuel",
5
- "Duration Time": "Durée",
6
- "Remaining Time": "Temps restant",
7
- "Stream Type": "Type de flux",
8
- "LIVE": "EN DIRECT",
9
- "Loaded": "Chargé",
10
- "Progress": "Progression",
11
- "Fullscreen": "Plein écran",
12
- "Non-Fullscreen": "Fenêtré",
13
- "Mute": "Sourdine",
14
- "Unmute": "Son activé",
15
- "Playback Rate": "Vitesse de lecture",
16
- "Subtitles": "Sous-titres",
17
- "subtitles off": "Sous-titres désactivés",
18
- "Captions": "Sous-titres transcrits",
19
- "captions off": "Sous-titres transcrits désactivés",
20
- "Chapters": "Chapitres",
21
- "Close Modal Dialog": "Fermer la boîte de dialogue modale",
22
- "Descriptions": "Descriptions",
23
- "descriptions off": "descriptions désactivées",
24
- "Audio Track": "Piste audio",
25
- "You aborted the media playback": "Vous avez interrompu la lecture de la vidéo.",
26
- "A network error caused the media download to fail part-way.": "Une erreur de réseau a interrompu le téléchargement de la vidéo.",
27
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Cette vidéo n'a pas pu être chargée, soit parce que le serveur ou le réseau a échoué ou parce que le format n'est pas reconnu.",
28
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La lecture de la vidéo a été interrompue à cause d'un problème de corruption ou parce que la vidéo utilise des fonctionnalités non prises en charge par votre navigateur.",
29
- "No compatible source was found for this media.": "Aucune source compatible n'a été trouvée pour cette vidéo.",
30
- "The media is encrypted and we do not have the keys to decrypt it.": "Le média est chiffré et nous n'avons pas les clés pour le déchiffrer.",
31
- "Play Video": "Lire la vidéo",
32
- "Close": "Fermer",
33
- "Modal Window": "Fenêtre modale",
34
- "This is a modal window": "Ceci est une fenêtre modale",
35
- "This modal can be closed by pressing the Escape key or activating the close button.": "Ce modal peut être fermé en appuyant sur la touche Échap ou activer le bouton de fermeture.",
36
- ", opens captions settings dialog": ", ouvrir les paramètres des sous-titres transcrits",
37
- ", opens subtitles settings dialog": ", ouvrir les paramètres des sous-titres",
38
- ", opens descriptions settings dialog": ", ouvrir les paramètres des descriptions",
39
- ", selected": ", sélectionné"
40
  });
1
+ videojs.addLanguage("fr",{
2
+ "Play": "Lecture",
3
+ "Pause": "Pause",
4
+ "Current Time": "Temps actuel",
5
+ "Duration Time": "Durée",
6
+ "Remaining Time": "Temps restant",
7
+ "Stream Type": "Type de flux",
8
+ "LIVE": "EN DIRECT",
9
+ "Loaded": "Chargé",
10
+ "Progress": "Progression",
11
+ "Fullscreen": "Plein écran",
12
+ "Non-Fullscreen": "Fenêtré",
13
+ "Mute": "Sourdine",
14
+ "Unmute": "Son activé",
15
+ "Playback Rate": "Vitesse de lecture",
16
+ "Subtitles": "Sous-titres",
17
+ "subtitles off": "Sous-titres désactivés",
18
+ "Captions": "Sous-titres transcrits",
19
+ "captions off": "Sous-titres transcrits désactivés",
20
+ "Chapters": "Chapitres",
21
+ "Close Modal Dialog": "Fermer la boîte de dialogue modale",
22
+ "Descriptions": "Descriptions",
23
+ "descriptions off": "descriptions désactivées",
24
+ "Audio Track": "Piste audio",
25
+ "You aborted the media playback": "Vous avez interrompu la lecture de la vidéo.",
26
+ "A network error caused the media download to fail part-way.": "Une erreur de réseau a interrompu le téléchargement de la vidéo.",
27
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Cette vidéo n'a pas pu être chargée, soit parce que le serveur ou le réseau a échoué ou parce que le format n'est pas reconnu.",
28
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La lecture de la vidéo a été interrompue à cause d'un problème de corruption ou parce que la vidéo utilise des fonctionnalités non prises en charge par votre navigateur.",
29
+ "No compatible source was found for this media.": "Aucune source compatible n'a été trouvée pour cette vidéo.",
30
+ "The media is encrypted and we do not have the keys to decrypt it.": "Le média est chiffré et nous n'avons pas les clés pour le déchiffrer.",
31
+ "Play Video": "Lire la vidéo",
32
+ "Close": "Fermer",
33
+ "Modal Window": "Fenêtre modale",
34
+ "This is a modal window": "Ceci est une fenêtre modale",
35
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Ce modal peut être fermé en appuyant sur la touche Échap ou activer le bouton de fermeture.",
36
+ ", opens captions settings dialog": ", ouvrir les paramètres des sous-titres transcrits",
37
+ ", opens subtitles settings dialog": ", ouvrir les paramètres des sous-titres",
38
+ ", opens descriptions settings dialog": ", ouvrir les paramètres des descriptions",
39
+ ", selected": ", sélectionné"
40
  });
video-js/lang/hr.js CHANGED
@@ -1,26 +1,26 @@
1
- videojs.addLanguage("hr",{
2
- "Play": "Pusti",
3
- "Pause": "Pauza",
4
- "Current Time": "Trenutno vrijeme",
5
- "Duration Time": "Vrijeme trajanja",
6
- "Remaining Time": "Preostalo vrijeme",
7
- "Stream Type": "Način strimovanja",
8
- "LIVE": "UŽIVO",
9
- "Loaded": "Učitan",
10
- "Progress": "Progres",
11
- "Fullscreen": "Puni ekran",
12
- "Non-Fullscreen": "Mali ekran",
13
- "Mute": "Prigušen",
14
- "Unmute": "Ne-prigušen",
15
- "Playback Rate": "Stopa reprodukcije",
16
- "Subtitles": "Podnaslov",
17
- "subtitles off": "Podnaslov deaktiviran",
18
- "Captions": "Titlovi",
19
- "captions off": "Titlovi deaktivirani",
20
- "Chapters": "Poglavlja",
21
- "You aborted the media playback": "Isključili ste reprodukciju videa.",
22
- "A network error caused the media download to fail part-way.": "Video se prestao preuzimati zbog greške na mreži.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video se ne može reproducirati zbog servera, greške u mreži ili je format ne podržan.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Reprodukcija videa je zaustavljenja zbog greške u formatu ili zbog verzije vašeg pretraživača.",
25
- "No compatible source was found for this media.": "Nije nađen nijedan kompatibilan izvor ovog videa."
26
  });
1
+ videojs.addLanguage("hr",{
2
+ "Play": "Pusti",
3
+ "Pause": "Pauza",
4
+ "Current Time": "Trenutno vrijeme",
5
+ "Duration Time": "Vrijeme trajanja",
6
+ "Remaining Time": "Preostalo vrijeme",
7
+ "Stream Type": "Način strimovanja",
8
+ "LIVE": "UŽIVO",
9
+ "Loaded": "Učitan",
10
+ "Progress": "Progres",
11
+ "Fullscreen": "Puni ekran",
12
+ "Non-Fullscreen": "Mali ekran",
13
+ "Mute": "Prigušen",
14
+ "Unmute": "Ne-prigušen",
15
+ "Playback Rate": "Stopa reprodukcije",
16
+ "Subtitles": "Podnaslov",
17
+ "subtitles off": "Podnaslov deaktiviran",
18
+ "Captions": "Titlovi",
19
+ "captions off": "Titlovi deaktivirani",
20
+ "Chapters": "Poglavlja",
21
+ "You aborted the media playback": "Isključili ste reprodukciju videa.",
22
+ "A network error caused the media download to fail part-way.": "Video se prestao preuzimati zbog greške na mreži.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video se ne može reproducirati zbog servera, greške u mreži ili je format ne podržan.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Reprodukcija videa je zaustavljenja zbog greške u formatu ili zbog verzije vašeg pretraživača.",
25
+ "No compatible source was found for this media.": "Nije nađen nijedan kompatibilan izvor ovog videa."
26
  });
video-js/lang/hu.js CHANGED
@@ -1,26 +1,26 @@
1
- videojs.addLanguage("hu",{
2
- "Play": "Lejátszás",
3
- "Pause": "Szünet",
4
- "Current Time": "Aktuális időpont",
5
- "Duration Time": "Hossz",
6
- "Remaining Time": "Hátralévő idő",
7
- "Stream Type": "Adatfolyam típusa",
8
- "LIVE": "ÉLŐ",
9
- "Loaded": "Betöltve",
10
- "Progress": "Állapot",
11
- "Fullscreen": "Teljes képernyő",
12
- "Non-Fullscreen": "Normál méret",
13
- "Mute": "Némítás",
14
- "Unmute": "Némítás kikapcsolva",
15
- "Playback Rate": "Lejátszási sebesség",
16
- "Subtitles": "Feliratok",
17
- "subtitles off": "Feliratok kikapcsolva",
18
- "Captions": "Magyarázó szöveg",
19
- "captions off": "Magyarázó szöveg kikapcsolva",
20
- "Chapters": "Fejezetek",
21
- "You aborted the media playback": "Leállította a lejátszást",
22
- "A network error caused the media download to fail part-way.": "Hálózati hiba miatt a videó részlegesen töltődött le.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "A videó nem tölthető be hálózati vagy kiszolgálói hiba miatt, vagy a formátuma nem támogatott.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "A lejátszás adatsérülés miatt leállt, vagy a videó egyes tulajdonságait a böngészője nem támogatja.",
25
- "No compatible source was found for this media.": "Nincs kompatibilis forrás ehhez a videóhoz."
26
  });
1
+ videojs.addLanguage("hu",{
2
+ "Play": "Lejátszás",
3
+ "Pause": "Szünet",
4
+ "Current Time": "Aktuális időpont",
5
+ "Duration Time": "Hossz",
6
+ "Remaining Time": "Hátralévő idő",
7
+ "Stream Type": "Adatfolyam típusa",
8
+ "LIVE": "ÉLŐ",
9
+ "Loaded": "Betöltve",
10
+ "Progress": "Állapot",
11
+ "Fullscreen": "Teljes képernyő",
12
+ "Non-Fullscreen": "Normál méret",
13
+ "Mute": "Némítás",
14
+ "Unmute": "Némítás kikapcsolva",
15
+ "Playback Rate": "Lejátszási sebesség",
16
+ "Subtitles": "Feliratok",
17
+ "subtitles off": "Feliratok kikapcsolva",
18
+ "Captions": "Magyarázó szöveg",
19
+ "captions off": "Magyarázó szöveg kikapcsolva",
20
+ "Chapters": "Fejezetek",
21
+ "You aborted the media playback": "Leállította a lejátszást",
22
+ "A network error caused the media download to fail part-way.": "Hálózati hiba miatt a videó részlegesen töltődött le.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "A videó nem tölthető be hálózati vagy kiszolgálói hiba miatt, vagy a formátuma nem támogatott.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "A lejátszás adatsérülés miatt leállt, vagy a videó egyes tulajdonságait a böngészője nem támogatja.",
25
+ "No compatible source was found for this media.": "Nincs kompatibilis forrás ehhez a videóhoz."
26
  });
video-js/lang/it.js CHANGED
@@ -1,26 +1,26 @@
1
- videojs.addLanguage("it",{
2
- "Play": "Play",
3
- "Pause": "Pausa",
4
- "Current Time": "Orario attuale",
5
- "Duration Time": "Durata",
6
- "Remaining Time": "Tempo rimanente",
7
- "Stream Type": "Tipo del Streaming",
8
- "LIVE": "LIVE",
9
- "Loaded": "Caricato",
10
- "Progress": "Stato",
11
- "Fullscreen": "Schermo intero",
12
- "Non-Fullscreen": "Chiudi schermo intero",
13
- "Mute": "Muto",
14
- "Unmute": "Audio",
15
- "Playback Rate": "Tasso di riproduzione",
16
- "Subtitles": "Sottotitoli",
17
- "subtitles off": "Senza sottotitoli",
18
- "Captions": "Sottotitoli non udenti",
19
- "captions off": "Senza sottotitoli non udenti",
20
- "Chapters": "Capitolo",
21
- "You aborted the media playback": "La riproduzione del filmato è stata interrotta.",
22
- "A network error caused the media download to fail part-way.": "Il download del filmato è stato interrotto a causa di un problema rete.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Il filmato non può essere caricato a causa di un errore nel server o nella rete o perché il formato non viene supportato.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La riproduzione del filmato è stata interrotta a causa di un file danneggiato o per l’utilizzo di impostazioni non supportate dal browser.",
25
- "No compatible source was found for this media.": "Non ci sono fonti compatibili per questo filmato."
26
  });
1
+ videojs.addLanguage("it",{
2
+ "Play": "Play",
3
+ "Pause": "Pausa",
4
+ "Current Time": "Orario attuale",
5
+ "Duration Time": "Durata",
6
+ "Remaining Time": "Tempo rimanente",
7
+ "Stream Type": "Tipo del Streaming",
8
+ "LIVE": "LIVE",
9
+ "Loaded": "Caricato",
10
+ "Progress": "Stato",
11
+ "Fullscreen": "Schermo intero",
12
+ "Non-Fullscreen": "Chiudi schermo intero",
13
+ "Mute": "Muto",
14
+ "Unmute": "Audio",
15
+ "Playback Rate": "Tasso di riproduzione",
16
+ "Subtitles": "Sottotitoli",
17
+ "subtitles off": "Senza sottotitoli",
18
+ "Captions": "Sottotitoli non udenti",
19
+ "captions off": "Senza sottotitoli non udenti",
20
+ "Chapters": "Capitolo",
21
+ "You aborted the media playback": "La riproduzione del filmato è stata interrotta.",
22
+ "A network error caused the media download to fail part-way.": "Il download del filmato è stato interrotto a causa di un problema rete.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Il filmato non può essere caricato a causa di un errore nel server o nella rete o perché il formato non viene supportato.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La riproduzione del filmato è stata interrotta a causa di un file danneggiato o per l’utilizzo di impostazioni non supportate dal browser.",
25
+ "No compatible source was found for this media.": "Non ci sono fonti compatibili per questo filmato."
26
  });
video-js/lang/ja.js CHANGED
@@ -1,26 +1,26 @@
1
- videojs.addLanguage("ja",{
2
- "Play": "再生",
3
- "Pause": "一時停止",
4
- "Current Time": "現在の時間",
5
- "Duration Time": "長さ",
6
- "Remaining Time": "残りの時間",
7
- "Stream Type": "ストリームの種類",
8
- "LIVE": "ライブ",
9
- "Loaded": "ロード済み",
10
- "Progress": "進行状況",
11
- "Fullscreen": "フルスクリーン",
12
- "Non-Fullscreen": "フルスクリーン以外",
13
- "Mute": "ミュート",
14
- "Unmute": "ミュート解除",
15
- "Playback Rate": "再生レート",
16
- "Subtitles": "サブタイトル",
17
- "subtitles off": "サブタイトル オフ",
18
- "Captions": "キャプション",
19
- "captions off": "キャプション オフ",
20
- "Chapters": "チャプター",
21
- "You aborted the media playback": "動画再生を中止しました",
22
- "A network error caused the media download to fail part-way.": "ネットワーク エラーにより動画のダウンロードが途中で失敗しました",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "サーバーまたはネットワークのエラー、またはフォーマットがサポートされていないため、動画をロードできませんでした",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "破損の問題、またはお使いのブラウザがサポートしていない機能が動画に使用されていたため、動画の再生が中止されました",
25
- "No compatible source was found for this media.": "この動画に対して互換性のあるソースが見つかりませんでした"
26
  });
1
+ videojs.addLanguage("ja",{
2
+ "Play": "再生",
3
+ "Pause": "一時停止",
4
+ "Current Time": "現在の時間",
5
+ "Duration Time": "長さ",
6
+ "Remaining Time": "残りの時間",
7
+ "Stream Type": "ストリームの種類",
8
+ "LIVE": "ライブ",
9
+ "Loaded": "ロード済み",
10
+ "Progress": "進行状況",
11
+ "Fullscreen": "フルスクリーン",
12
+ "Non-Fullscreen": "フルスクリーン以外",
13
+ "Mute": "ミュート",
14
+ "Unmute": "ミュート解除",
15
+ "Playback Rate": "再生レート",
16
+ "Subtitles": "サブタイトル",
17
+ "subtitles off": "サブタイトル オフ",
18
+ "Captions": "キャプション",
19
+ "captions off": "キャプション オフ",
20
+ "Chapters": "チャプター",
21
+ "You aborted the media playback": "動画再生を中止しました",
22
+ "A network error caused the media download to fail part-way.": "ネットワーク エラーにより動画のダウンロードが途中で失敗しました",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "サーバーまたはネットワークのエラー、またはフォーマットがサポートされていないため、動画をロードできませんでした",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "破損の問題、またはお使いのブラウザがサポートしていない機能が動画に使用されていたため、動画の再生が中止されました",
25
+ "No compatible source was found for this media.": "この動画に対して互換性のあるソースが見つかりませんでした"
26
  });
video-js/lang/ko.js CHANGED
@@ -1,26 +1,26 @@
1
- videojs.addLanguage("ko",{
2
- "Play": "재생",
3
- "Pause": "일시중지",
4
- "Current Time": "현재 시간",
5
- "Duration Time": "지정 기간",
6
- "Remaining Time": "남은 시간",
7
- "Stream Type": "스트리밍 유형",
8
- "LIVE": "라이브",
9
- "Loaded": "로드됨",
10
- "Progress": "진행",
11
- "Fullscreen": "전체 화면",
12
- "Non-Fullscreen": "전체 화면 해제",
13
- "Mute": "음소거",
14
- "Unmute": "음소거 해제",
15
- "Playback Rate": "재생 비율",
16
- "Subtitles": "서브타이틀",
17
- "subtitles off": "서브타이틀 끄기",
18
- "Captions": "자막",
19
- "captions off": "자막 끄기",
20
- "Chapters": "챕터",
21
- "You aborted the media playback": "비디오 재생을 취소했습니다.",
22
- "A network error caused the media download to fail part-way.": "네트워크 오류로 인하여 비디오 일부를 다운로드하지 못 했습니다.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "비디오를 로드할 수 없습니다. 서버 혹은 네트워크 오류 때문이거나 지원되지 않는 형식 때문일 수 있습니다.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "비디오 재생이 취소됐습니다. 비디오가 손상되었거나 비디오가 사용하는 기능을 브라우저에서 지원하지 않는 것 같습니다.",
25
- "No compatible source was found for this media.": "비디오에 호환되지 않는 소스가 있습니다."
26
  });
1
+ videojs.addLanguage("ko",{
2
+ "Play": "재생",
3
+ "Pause": "일시중지",
4
+ "Current Time": "현재 시간",
5
+ "Duration Time": "지정 기간",
6
+ "Remaining Time": "남은 시간",
7
+ "Stream Type": "스트리밍 유형",
8
+ "LIVE": "라이브",
9
+ "Loaded": "로드됨",
10
+ "Progress": "진행",
11
+ "Fullscreen": "전체 화면",
12
+ "Non-Fullscreen": "전체 화면 해제",
13
+ "Mute": "음소거",
14
+ "Unmute": "음소거 해제",
15
+ "Playback Rate": "재생 비율",
16
+ "Subtitles": "서브타이틀",
17
+ "subtitles off": "서브타이틀 끄기",
18
+ "Captions": "자막",
19
+ "captions off": "자막 끄기",
20
+ "Chapters": "챕터",
21
+ "You aborted the media playback": "비디오 재생을 취소했습니다.",
22
+ "A network error caused the media download to fail part-way.": "네트워크 오류로 인하여 비디오 일부를 다운로드하지 못 했습니다.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "비디오를 로드할 수 없습니다. 서버 혹은 네트워크 오류 때문이거나 지원되지 않는 형식 때문일 수 있습니다.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "비디오 재생이 취소됐습니다. 비디오가 손상되었거나 비디오가 사용하는 기능을 브라우저에서 지원하지 않는 것 같습니다.",
25
+ "No compatible source was found for this media.": "비디오에 호환되지 않는 소스가 있습니다."
26
  });
video-js/lang/nb.js CHANGED
@@ -1,26 +1,26 @@
1
- videojs.addLanguage("nb",{
2
- "Play": "Spill",
3
- "Pause": "Pause",
4
- "Current Time": "Aktuell tid",
5
- "Duration Time": "Varighet",
6
- "Remaining Time": "Gjenstående tid",
7
- "Stream Type": "Type strøm",
8
- "LIVE": "DIREKTE",
9
- "Loaded": "Lastet inn",
10
- "Progress": "Status",
11
- "Fullscreen": "Fullskjerm",
12
- "Non-Fullscreen": "Lukk fullskjerm",
13
- "Mute": "Lyd av",
14
- "Unmute": "Lyd på",
15
- "Playback Rate": "Avspillingsrate",
16
- "Subtitles": "Undertekst på",
17
- "subtitles off": "Undertekst av",
18
- "Captions": "Undertekst for hørselshemmede på",
19
- "captions off": "Undertekst for hørselshemmede av",
20
- "Chapters": "Kapitler",
21
- "You aborted the media playback": "Du avbrøt avspillingen.",
22
- "A network error caused the media download to fail part-way.": "En nettverksfeil avbrøt nedlasting av videoen.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikke lastes ned, på grunn av nettverksfeil eller serverfeil, eller fordi formatet ikke er støttet.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoavspillingen ble avbrudt på grunn av ødelagte data eller fordi videoen ville gjøre noe som nettleseren din ikke har støtte for.",
25
- "No compatible source was found for this media.": "Fant ikke en kompatibel kilde for dette mediainnholdet."
26
  });
1
+ videojs.addLanguage("nb",{
2
+ "Play": "Spill",
3
+ "Pause": "Pause",
4
+ "Current Time": "Aktuell tid",
5
+ "Duration Time": "Varighet",
6
+ "Remaining Time": "Gjenstående tid",
7
+ "Stream Type": "Type strøm",
8
+ "LIVE": "DIREKTE",
9
+ "Loaded": "Lastet inn",
10
+ "Progress": "Status",
11
+ "Fullscreen": "Fullskjerm",
12
+ "Non-Fullscreen": "Lukk fullskjerm",
13
+ "Mute": "Lyd av",
14
+ "Unmute": "Lyd på",
15
+ "Playback Rate": "Avspillingsrate",
16
+ "Subtitles": "Undertekst på",
17
+ "subtitles off": "Undertekst av",
18
+ "Captions": "Undertekst for hørselshemmede på",
19
+ "captions off": "Undertekst for hørselshemmede av",
20
+ "Chapters": "Kapitler",
21
+ "You aborted the media playback": "Du avbrøt avspillingen.",
22
+ "A network error caused the media download to fail part-way.": "En nettverksfeil avbrøt nedlasting av videoen.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikke lastes ned, på grunn av nettverksfeil eller serverfeil, eller fordi formatet ikke er støttet.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoavspillingen ble avbrudt på grunn av ødelagte data eller fordi videoen ville gjøre noe som nettleseren din ikke har støtte for.",
25
+ "No compatible source was found for this media.": "Fant ikke en kompatibel kilde for dette mediainnholdet."
26
  });
video-js/lang/nl.js CHANGED
@@ -1,37 +1,37 @@
1
- videojs.addLanguage("nl",{
2
- "Play": "Afspelen",
3
- "Pause": "Pauze",
4
- "Current Time": "Huidige tijd",
5
- "Duration Time": "Looptijd",
6
- "Remaining Time": "Resterende tijd",
7
- "Stream Type": "Streamtype",
8
- "LIVE": "LIVE",
9
- "Loaded": "Geladen",
10
- "Progress": "Status",
11
- "Fullscreen": "Volledig scherm",
12
- "Non-Fullscreen": "Geen volledig scherm",
13
- "Mute": "Geluid uit",
14
- "Unmute": "Geluid aan",
15
- "Playback Rate": "Weergavesnelheid",
16
- "Subtitles": "Ondertiteling",
17
- "subtitles off": "ondertiteling uit",
18
- "Captions": "Bijschriften",
19
- "captions off": "bijschriften uit",
20
- "Chapters": "Hoofdstukken",
21
- "Descriptions": "Beschrijvingen",
22
- "descriptions off": "beschrijvingen off",
23
- "You aborted the media playback": "U hebt de mediaweergave afgebroken.",
24
- "A network error caused the media download to fail part-way.": "De mediadownload is mislukt door een netwerkfout.",
25
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "De media kon niet worden geladen, vanwege een server- of netwerkfout of doordat het formaat niet wordt ondersteund.",
26
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "De mediaweergave is afgebroken vanwege beschadigde data of het mediabestand gebruikt functies die niet door uw browser worden ondersteund.",
27
- "No compatible source was found for this media.": "Voor deze media is geen ondersteunde bron gevonden.",
28
- "Play Video": "Video Afspelen",
29
- "Close": "Sluiten",
30
- "Modal Window": "Modal Venster",
31
- "This is a modal window": "Dit is een modaal venster",
32
- "This modal can be closed by pressing the Escape key or activating the close button.": "Dit modaal venster kan gesloten worden door op Escape te drukken of de 'sluiten' knop te activeren.",
33
- ", opens captions settings dialog": ", opent bijschriften instellingen venster",
34
- ", opens subtitles settings dialog": ", opent ondertiteling instellingen venster",
35
- ", opens descriptions settings dialog": ", opent beschrijvingen instellingen venster",
36
- ", selected": ", selected"
37
  });
1
+ videojs.addLanguage("nl",{
2
+ "Play": "Afspelen",
3
+ "Pause": "Pauze",
4
+ "Current Time": "Huidige tijd",
5
+ "Duration Time": "Looptijd",
6
+ "Remaining Time": "Resterende tijd",
7
+ "Stream Type": "Streamtype",
8
+ "LIVE": "LIVE",
9
+ "Loaded": "Geladen",
10
+ "Progress": "Status",
11
+ "Fullscreen": "Volledig scherm",
12
+ "Non-Fullscreen": "Geen volledig scherm",
13
+ "Mute": "Geluid uit",
14
+ "Unmute": "Geluid aan",
15
+ "Playback Rate": "Weergavesnelheid",
16
+ "Subtitles": "Ondertiteling",
17
+ "subtitles off": "ondertiteling uit",
18
+ "Captions": "Bijschriften",
19
+ "captions off": "bijschriften uit",
20
+ "Chapters": "Hoofdstukken",
21
+ "Descriptions": "Beschrijvingen",
22
+ "descriptions off": "beschrijvingen off",
23
+ "You aborted the media playback": "U hebt de mediaweergave afgebroken.",
24
+ "A network error caused the media download to fail part-way.": "De mediadownload is mislukt door een netwerkfout.",
25
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "De media kon niet worden geladen, vanwege een server- of netwerkfout of doordat het formaat niet wordt ondersteund.",
26
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "De mediaweergave is afgebroken vanwege beschadigde data of het mediabestand gebruikt functies die niet door uw browser worden ondersteund.",
27
+ "No compatible source was found for this media.": "Voor deze media is geen ondersteunde bron gevonden.",
28
+ "Play Video": "Video Afspelen",
29
+ "Close": "Sluiten",
30
+ "Modal Window": "Modal Venster",
31
+ "This is a modal window": "Dit is een modaal venster",
32
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Dit modaal venster kan gesloten worden door op Escape te drukken of de 'sluiten' knop te activeren.",
33
+ ", opens captions settings dialog": ", opent bijschriften instellingen venster",
34
+ ", opens subtitles settings dialog": ", opent ondertiteling instellingen venster",
35
+ ", opens descriptions settings dialog": ", opent beschrijvingen instellingen venster",
36
+ ", selected": ", selected"
37
  });
video-js/lang/nn.js CHANGED
@@ -1,26 +1,26 @@
1
- videojs.addLanguage("nn",{
2
- "Play": "Spel",
3
- "Pause": "Pause",
4
- "Current Time": "Aktuell tid",
5
- "Duration Time": "Varigheit",
6
- "Remaining Time": "Tid attende",
7
- "Stream Type": "Type straum",
8
- "LIVE": "DIREKTE",
9
- "Loaded": "Lasta inn",
10
- "Progress": "Status",
11
- "Fullscreen": "Fullskjerm",
12
- "Non-Fullscreen": "Stenga fullskjerm",
13
- "Mute": "Ljod av",
14
- "Unmute": "Ljod på",
15
- "Playback Rate": "Avspelingsrate",
16
- "Subtitles": "Teksting på",
17
- "subtitles off": "Teksting av",
18
- "Captions": "Teksting for høyrselshemma på",
19
- "captions off": "Teksting for høyrselshemma av",
20
- "Chapters": "Kapitel",
21
- "You aborted the media playback": "Du avbraut avspelinga.",
22
- "A network error caused the media download to fail part-way.": "Ein nettverksfeil avbraut nedlasting av videoen.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikkje lastas ned, på grunn av ein nettverksfeil eller serverfeil, eller av di formatet ikkje er stoda.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoavspelinga blei broten på grunn av øydelagde data eller av di videoen ville gjera noe som nettlesaren din ikkje stodar.",
25
- "No compatible source was found for this media.": "Fant ikke en kompatibel kilde for dette mediainnholdet."
26
  });
1
+ videojs.addLanguage("nn",{
2
+ "Play": "Spel",
3
+ "Pause": "Pause",
4
+ "Current Time": "Aktuell tid",
5
+ "Duration Time": "Varigheit",
6
+ "Remaining Time": "Tid attende",
7
+ "Stream Type": "Type straum",
8
+ "LIVE": "DIREKTE",
9
+ "Loaded": "Lasta inn",
10
+ "Progress": "Status",
11
+ "Fullscreen": "Fullskjerm",
12
+ "Non-Fullscreen": "Stenga fullskjerm",
13
+ "Mute": "Ljod av",
14
+ "Unmute": "Ljod på",
15
+ "Playback Rate": "Avspelingsrate",
16
+ "Subtitles": "Teksting på",
17
+ "subtitles off": "Teksting av",
18
+ "Captions": "Teksting for høyrselshemma på",
19
+ "captions off": "Teksting for høyrselshemma av",
20
+ "Chapters": "Kapitel",
21
+ "You aborted the media playback": "Du avbraut avspelinga.",
22
+ "A network error caused the media download to fail part-way.": "Ein nettverksfeil avbraut nedlasting av videoen.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikkje lastas ned, på grunn av ein nettverksfeil eller serverfeil, eller av di formatet ikkje er stoda.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoavspelinga blei broten på grunn av øydelagde data eller av di videoen ville gjera noe som nettlesaren din ikkje stodar.",
25
+ "No compatible source was found for this media.": "Fant ikke en kompatibel kilde for dette mediainnholdet."
26
  });
video-js/lang/pl.js CHANGED
@@ -1,34 +1,34 @@
1
- videojs.addLanguage("pl",{
2
- "Play": "Odtwarzaj",
3
- "Pause": "Pauza",
4
- "Current Time": "Aktualny czas",
5
- "Duration Time": "Czas trwania",
6
- "Remaining Time": "Pozostały czas",
7
- "Stream Type": "Typ strumienia",
8
- "LIVE": "NA ŻYWO",
9
- "Loaded": "Załadowany",
10
- "Progress": "Status",
11
- "Fullscreen": "Pełny ekran",
12
- "Non-Fullscreen": "Pełny ekran niedostępny",
13
- "Mute": "Wyłącz dźwięk",
14
- "Unmute": "Włącz dźwięk",
15
- "Playback Rate": "Szybkość odtwarzania",
16
- "Subtitles": "Napisy",
17
- "subtitles off": "Napisy wyłączone",
18
- "Captions": "Transkrypcja",
19
- "captions off": "Transkrypcja wyłączona",
20
- "Chapters": "Rozdziały",
21
- "You aborted the media playback": "Odtwarzanie zostało przerwane",
22
- "A network error caused the media download to fail part-way.": "Problemy z siecią spowodowały błąd przy pobieraniu materiału wideo.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Materiał wideo nie może być załadowany, ponieważ wystąpił problem z siecią lub format nie jest obsługiwany",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Odtwarzanie materiału wideo zostało przerwane z powodu uszkodzonego pliku wideo lub z powodu błędu funkcji, które nie są wspierane przez przeglądarkę.",
25
- "No compatible source was found for this media.": "Dla tego materiału wideo nie znaleziono kompatybilnego źródła.",
26
- "Play video": "Odtwarzaj wideo",
27
- "Close": "Zamknij",
28
- "Modal Window": "Okno Modala",
29
- "This is a modal window": "To jest okno modala",
30
- "This modal can be closed by pressing the Escape key or activating the close button.": "Ten modal możesz zamknąć naciskając przycisk Escape albo wybierając przycisk Zamknij.",
31
- ", opens captions settings dialog": ", otwiera okno dialogowe ustawień transkrypcji",
32
- ", opens subtitles settings dialog": ", otwiera okno dialogowe napisów",
33
- ", selected": ", zaznaczone"
34
  });
1
+ videojs.addLanguage("pl",{
2
+ "Play": "Odtwarzaj",
3
+ "Pause": "Pauza",
4
+ "Current Time": "Aktualny czas",
5
+ "Duration Time": "Czas trwania",
6
+ "Remaining Time": "Pozostały czas",
7
+ "Stream Type": "Typ strumienia",
8
+ "LIVE": "NA ŻYWO",
9
+ "Loaded": "Załadowany",
10
+ "Progress": "Status",
11
+ "Fullscreen": "Pełny ekran",
12
+ "Non-Fullscreen": "Pełny ekran niedostępny",
13
+ "Mute": "Wyłącz dźwięk",
14
+ "Unmute": "Włącz dźwięk",
15
+ "Playback Rate": "Szybkość odtwarzania",
16
+ "Subtitles": "Napisy",
17
+ "subtitles off": "Napisy wyłączone",
18
+ "Captions": "Transkrypcja",
19
+ "captions off": "Transkrypcja wyłączona",
20
+ "Chapters": "Rozdziały",
21
+ "You aborted the media playback": "Odtwarzanie zostało przerwane",
22
+ "A network error caused the media download to fail part-way.": "Problemy z siecią spowodowały błąd przy pobieraniu materiału wideo.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Materiał wideo nie może być załadowany, ponieważ wystąpił problem z siecią lub format nie jest obsługiwany",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Odtwarzanie materiału wideo zostało przerwane z powodu uszkodzonego pliku wideo lub z powodu błędu funkcji, które nie są wspierane przez przeglądarkę.",
25
+ "No compatible source was found for this media.": "Dla tego materiału wideo nie znaleziono kompatybilnego źródła.",
26
+ "Play video": "Odtwarzaj wideo",
27
+ "Close": "Zamknij",
28
+ "Modal Window": "Okno Modala",
29
+ "This is a modal window": "To jest okno modala",
30
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Ten modal możesz zamknąć naciskając przycisk Escape albo wybierając przycisk Zamknij.",
31
+ ", opens captions settings dialog": ", otwiera okno dialogowe ustawień transkrypcji",
32
+ ", opens subtitles settings dialog": ", otwiera okno dialogowe napisów",
33
+ ", selected": ", zaznaczone"
34
  });
video-js/lang/pt-BR.js CHANGED
@@ -1,26 +1,26 @@
1
- videojs.addLanguage("pt-BR",{
2
- "Play": "Tocar",
3
- "Pause": "Pausar",
4
- "Current Time": "Tempo",
5
- "Duration Time": "Duração",
6
- "Remaining Time": "Tempo Restante",
7
- "Stream Type": "Tipo de Stream",
8
- "LIVE": "AO VIVO",
9
- "Loaded": "Carregado",
10
- "Progress": "Progresso",
11
- "Fullscreen": "Tela Cheia",
12
- "Non-Fullscreen": "Tela Normal",
13
- "Mute": "Mudo",
14
- "Unmute": "Habilitar Som",
15
- "Playback Rate": "Velocidade",
16
- "Subtitles": "Legendas",
17
- "subtitles off": "Sem Legendas",
18
- "Captions": "Anotações",
19
- "captions off": "Sem Anotações",
20
- "Chapters": "Capítulos",
21
- "You aborted the media playback": "Você parou a execução do vídeo.",
22
- "A network error caused the media download to fail part-way.": "Um erro na rede fez o vídeo parar parcialmente.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "O vídeo não pode ser carregado, ou porque houve um problema com sua rede ou pelo formato do vídeo não ser suportado.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "A execução foi interrompida por um problema com o vídeo ou por seu navegador não dar suporte ao seu formato.",
25
- "No compatible source was found for this media.": "Não foi encontrada fonte de vídeo compatível."
26
  });
1
+ videojs.addLanguage("pt-BR",{
2
+ "Play": "Tocar",
3
+ "Pause": "Pausar",
4
+ "Current Time": "Tempo",
5
+ "Duration Time": "Duração",
6
+ "Remaining Time": "Tempo Restante",
7
+ "Stream Type": "Tipo de Stream",
8
+ "LIVE": "AO VIVO",
9
+ "Loaded": "Carregado",
10
+ "Progress": "Progresso",
11
+ "Fullscreen": "Tela Cheia",
12
+ "Non-Fullscreen": "Tela Normal",
13
+ "Mute": "Mudo",
14
+ "Unmute": "Habilitar Som",
15
+ "Playback Rate": "Velocidade",
16
+ "Subtitles": "Legendas",
17
+ "subtitles off": "Sem Legendas",
18
+ "Captions": "Anotações",
19
+ "captions off": "Sem Anotações",
20
+ "Chapters": "Capítulos",
21
+ "You aborted the media playback": "Você parou a execução do vídeo.",
22
+ "A network error caused the media download to fail part-way.": "Um erro na rede fez o vídeo parar parcialmente.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "O vídeo não pode ser carregado, ou porque houve um problema com sua rede ou pelo formato do vídeo não ser suportado.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "A execução foi interrompida por um problema com o vídeo ou por seu navegador não dar suporte ao seu formato.",
25
+ "No compatible source was found for this media.": "Não foi encontrada fonte de vídeo compatível."
26
  });
video-js/lang/ru.js CHANGED
@@ -1,40 +1,40 @@
1
- videojs.addLanguage("ru",{
2
- "Play": "Воспроизвести",
3
- "Pause": "Приостановить",
4
- "Current Time": "Текущее время",
5
- "Duration Time": "Продолжительность",
6
- "Remaining Time": "Оставшееся время",
7
- "Stream Type": "Тип потока",
8
- "LIVE": "ОНЛАЙН",
9
- "Loaded": "Загрузка",
10
- "Progress": "Прогресс",
11
- "Fullscreen": "Полноэкранный режим",
12
- "Non-Fullscreen": "Неполноэкранный режим",
13
- "Mute": "Без звука",
14
- "Unmute": "Со звуком",
15
- "Playback Rate": "Скорость воспроизведения",
16
- "Subtitles": "Субтитры",
17
- "subtitles off": "Субтитры выкл.",
18
- "Captions": "Подписи",
19
- "captions off": "Подписи выкл.",
20
- "Chapters": "Главы",
21
- "Close Modal Dialog": "Закрыть модальное окно",
22
- "Descriptions": "Описания",
23
- "descriptions off": "описания выкл.",
24
- "Audio Track": "Звуковая дорожка",
25
- "You aborted the media playback": "Вы прервали воспроизведение видео",
26
- "A network error caused the media download to fail part-way.": "Ошибка сети вызвала сбой во время загрузки видео.",
27
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Невозможно загрузить видео из-за сетевого или серверного сбоя либо формат не поддерживается.",
28
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Воспроизведение видео было приостановлено из-за повреждения либо в связи с тем, что видео использует функции, неподдерживаемые вашим браузером.",
29
- "No compatible source was found for this media.": "Совместимые источники для этого видео отсутствуют.",
30
- "The media is encrypted and we do not have the keys to decrypt it.": "Видео в зашифрованном виде, и у нас нет ключей для расшифровки.",
31
- "Play Video": "Воспроизвести видео",
32
- "Close": "Закрыть",
33
- "Modal Window": "Модальное окно",
34
- "This is a modal window": "Это модальное окно.",
35
- "This modal can be closed by pressing the Escape key or activating the close button.": "Модальное окно можно закрыть нажав Esc или кнопку закрытия окна.",
36
- ", opens captions settings dialog": ", откроется диалог настройки подписей",
37
- ", opens subtitles settings dialog": ", откроется диалог настройки субтитров",
38
- ", opens descriptions settings dialog": ", откроется диалог настройки описаний",
39
- ", selected": ", выбрано"
40
  });
1
+ videojs.addLanguage("ru",{
2
+ "Play": "Воспроизвести",
3
+ "Pause": "Приостановить",
4
+ "Current Time": "Текущее время",
5
+ "Duration Time": "Продолжительность",
6
+ "Remaining Time": "Оставшееся время",
7
+ "Stream Type": "Тип потока",
8
+ "LIVE": "ОНЛАЙН",
9
+ "Loaded": "Загрузка",
10
+ "Progress": "Прогресс",
11
+ "Fullscreen": "Полноэкранный режим",
12
+ "Non-Fullscreen": "Неполноэкранный режим",
13
+ "Mute": "Без звука",
14
+ "Unmute": "Со звуком",
15
+ "Playback Rate": "Скорость воспроизведения",
16
+ "Subtitles": "Субтитры",
17
+ "subtitles off": "Субтитры выкл.",
18
+ "Captions": "Подписи",
19
+ "captions off": "Подписи выкл.",
20
+ "Chapters": "Главы",
21
+ "Close Modal Dialog": "Закрыть модальное окно",
22
+ "Descriptions": "Описания",
23
+ "descriptions off": "описания выкл.",
24
+ "Audio Track": "Звуковая дорожка",
25
+ "You aborted the media playback": "Вы прервали воспроизведение видео",
26
+ "A network error caused the media download to fail part-way.": "Ошибка сети вызвала сбой во время загрузки видео.",
27
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Невозможно загрузить видео из-за сетевого или серверного сбоя либо формат не поддерживается.",
28
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Воспроизведение видео было приостановлено из-за повреждения либо в связи с тем, что видео использует функции, неподдерживаемые вашим браузером.",
29
+ "No compatible source was found for this media.": "Совместимые источники для этого видео отсутствуют.",
30
+ "The media is encrypted and we do not have the keys to decrypt it.": "Видео в зашифрованном виде, и у нас нет ключей для расшифровки.",
31
+ "Play Video": "Воспроизвести видео",
32
+ "Close": "Закрыть",
33
+ "Modal Window": "Модальное окно",
34
+ "This is a modal window": "Это модальное окно.",
35
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Модальное окно можно закрыть нажав Esc или кнопку закрытия окна.",
36
+ ", opens captions settings dialog": ", откроется диалог настройки подписей",
37
+ ", opens subtitles settings dialog": ", откроется диалог настройки субтитров",
38
+ ", opens descriptions settings dialog": ", откроется диалог настройки описаний",
39
+ ", selected": ", выбрано"
40
  });
video-js/lang/sr.js CHANGED
@@ -1,26 +1,26 @@
1
- videojs.addLanguage("sr",{
2
- "Play": "Pusti",
3
- "Pause": "Pauza",
4
- "Current Time": "Trenutno vrijeme",
5
- "Duration Time": "Vrijeme trajanja",
6
- "Remaining Time": "Preostalo vrijeme",
7
- "Stream Type": "Način strimovanja",
8
- "LIVE": "UŽIVO",
9
- "Loaded": "Učitan",
10
- "Progress": "Progres",
11
- "Fullscreen": "Puni ekran",
12
- "Non-Fullscreen": "Mali ekran",
13
- "Mute": "Prigušen",
14
- "Unmute": "Ne-prigušen",
15
- "Playback Rate": "Stopa reprodukcije",
16
- "Subtitles": "Podnaslov",
17
- "subtitles off": "Podnaslov deaktiviran",
18
- "Captions": "Titlovi",
19
- "captions off": "Titlovi deaktivirani",
20
- "Chapters": "Poglavlja",
21
- "You aborted the media playback": "Isključili ste reprodukciju videa.",
22
- "A network error caused the media download to fail part-way.": "Video se prestao preuzimati zbog greške na mreži.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video se ne može reproducirati zbog servera, greške u mreži ili je format ne podržan.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Reprodukcija videa je zaustavljenja zbog greške u formatu ili zbog verzije vašeg pretraživača.",
25
- "No compatible source was found for this media.": "Nije nađen nijedan kompatibilan izvor ovog videa."
26
  });
1
+ videojs.addLanguage("sr",{
2
+ "Play": "Pusti",
3
+ "Pause": "Pauza",
4
+ "Current Time": "Trenutno vrijeme",
5
+ "Duration Time": "Vrijeme trajanja",
6
+ "Remaining Time": "Preostalo vrijeme",
7
+ "Stream Type": "Način strimovanja",
8
+ "LIVE": "UŽIVO",
9
+ "Loaded": "Učitan",
10
+ "Progress": "Progres",
11
+ "Fullscreen": "Puni ekran",
12
+ "Non-Fullscreen": "Mali ekran",
13
+ "Mute": "Prigušen",
14
+ "Unmute": "Ne-prigušen",
15
+ "Playback Rate": "Stopa reprodukcije",
16
+ "Subtitles": "Podnaslov",
17
+ "subtitles off": "Podnaslov deaktiviran",
18
+ "Captions": "Titlovi",
19
+ "captions off": "Titlovi deaktivirani",
20
+ "Chapters": "Poglavlja",
21
+ "You aborted the media playback": "Isključili ste reprodukciju videa.",
22
+ "A network error caused the media download to fail part-way.": "Video se prestao preuzimati zbog greške na mreži.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video se ne može reproducirati zbog servera, greške u mreži ili je format ne podržan.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Reprodukcija videa je zaustavljenja zbog greške u formatu ili zbog verzije vašeg pretraživača.",
25
+ "No compatible source was found for this media.": "Nije nađen nijedan kompatibilan izvor ovog videa."
26
  });
video-js/lang/sv.js CHANGED
@@ -1,26 +1,26 @@
1
- videojs.addLanguage("sv",{
2
- "Play": "Spela",
3
- "Pause": "Pausa",
4
- "Current Time": "Aktuell tid",
5
- "Duration Time": "Total tid",
6
- "Remaining Time": "Återstående tid",
7
- "Stream Type": "Strömningstyp",
8
- "LIVE": "LIVE",
9
- "Loaded": "Laddad",
10
- "Progress": "Förlopp",
11
- "Fullscreen": "Fullskärm",
12
- "Non-Fullscreen": "Ej fullskärm",
13
- "Mute": "Ljud av",
14
- "Unmute": "Ljud på",
15
- "Playback Rate": "Uppspelningshastighet",
16
- "Subtitles": "Text på",
17
- "subtitles off": "Text av",
18
- "Captions": "Text på",
19
- "captions off": "Text av",
20
- "Chapters": "Kapitel",
21
- "You aborted the media playback": "Du har avbrutit videouppspelningen.",
22
- "A network error caused the media download to fail part-way.": "Ett nätverksfel gjorde att nedladdningen av videon avbröts.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Det gick inte att ladda videon, antingen på grund av ett server- eller nätverksfel, eller för att formatet inte stöds.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Uppspelningen avbröts på grund av att videon är skadad, eller också för att videon använder funktioner som din webbläsare inte stöder.",
25
- "No compatible source was found for this media.": "Det gick inte att hitta någon kompatibel källa för den här videon."
26
  });
1
+ videojs.addLanguage("sv",{
2
+ "Play": "Spela",
3
+ "Pause": "Pausa",
4
+ "Current Time": "Aktuell tid",
5
+ "Duration Time": "Total tid",
6
+ "Remaining Time": "Återstående tid",
7
+ "Stream Type": "Strömningstyp",
8
+ "LIVE": "LIVE",
9
+ "Loaded": "Laddad",
10
+ "Progress": "Förlopp",
11
+ "Fullscreen": "Fullskärm",
12
+ "Non-Fullscreen": "Ej fullskärm",
13
+ "Mute": "Ljud av",
14
+ "Unmute": "Ljud på",
15
+ "Playback Rate": "Uppspelningshastighet",
16
+ "Subtitles": "Text på",
17
+ "subtitles off": "Text av",
18
+ "Captions": "Text på",
19
+ "captions off": "Text av",
20
+ "Chapters": "Kapitel",
21
+ "You aborted the media playback": "Du har avbrutit videouppspelningen.",
22
+ "A network error caused the media download to fail part-way.": "Ett nätverksfel gjorde att nedladdningen av videon avbröts.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Det gick inte att ladda videon, antingen på grund av ett server- eller nätverksfel, eller för att formatet inte stöds.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Uppspelningen avbröts på grund av att videon är skadad, eller också för att videon använder funktioner som din webbläsare inte stöder.",
25
+ "No compatible source was found for this media.": "Det gick inte att hitta någon kompatibel källa för den här videon."
26
  });
video-js/lang/tr.js CHANGED
@@ -1,34 +1,34 @@
1
- videojs.addLanguage("tr",{
2
- "Play": "Oynat",
3
- "Pause": "Duraklat",
4
- "Current Time": "Süre",
5
- "Duration Time": "Toplam Süre",
6
- "Remaining Time": "Kalan Süre",
7
- "Stream Type": "Yayın Tipi",
8
- "LIVE": "CANLI",
9
- "Loaded": "Yüklendi",
10
- "Progress": "Yükleniyor",
11
- "Fullscreen": "Tam Ekran",
12
- "Non-Fullscreen": "Küçük Ekran",
13
- "Mute": "Ses Kapa",
14
- "Unmute": "Ses Aç",
15
- "Playback Rate": "Oynatma Hızı",
16
- "Subtitles": "Altyazı",
17
- "subtitles off": "Altyazı Kapalı",
18
- "Captions": "Ek Açıklamalar",
19
- "captions off": "Ek Açıklamalar Kapalı",
20
- "Chapters": "Bölümler",
21
- "You aborted the media playback": "Video oynatmayı iptal ettiniz",
22
- "A network error caused the media download to fail part-way.": "Video indirilirken bağlantı sorunu oluştu.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video oynatılamadı, ağ ya da sunucu hatası veya belirtilen format desteklenmiyor.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Tarayıcınız desteklemediği için videoda hata oluştu.",
25
- "No compatible source was found for this media.": "Video için kaynak bulunamadı.",
26
- "Play Video": "Videoyu Oynat",
27
- "Close": "Kapat",
28
- "Modal Window": "Modal Penceresi",
29
- "This is a modal window": "Bu bir modal penceresidir",
30
- "This modal can be closed by pressing the Escape key or activating the close button.": "Bu modal ESC tuşuna basarak ya da kapata tıklanarak kapatılabilir.",
31
- ", opens captions settings dialog": ", ek açıklama ayarları menüsünü açar",
32
- ", opens subtitles settings dialog": ", altyazı ayarları menüsünü açar",
33
- ", selected": ", seçildi"
34
  });
1
+ videojs.addLanguage("tr",{
2
+ "Play": "Oynat",
3
+ "Pause": "Duraklat",
4
+ "Current Time": "Süre",
5
+ "Duration Time": "Toplam Süre",
6
+ "Remaining Time": "Kalan Süre",
7
+ "Stream Type": "Yayın Tipi",
8
+ "LIVE": "CANLI",
9
+ "Loaded": "Yüklendi",
10
+ "Progress": "Yükleniyor",
11
+ "Fullscreen": "Tam Ekran",
12
+ "Non-Fullscreen": "Küçük Ekran",
13
+ "Mute": "Ses Kapa",
14
+ "Unmute": "Ses Aç",
15
+ "Playback Rate": "Oynatma Hızı",
16
+ "Subtitles": "Altyazı",
17
+ "subtitles off": "Altyazı Kapalı",
18
+ "Captions": "Ek Açıklamalar",
19
+ "captions off": "Ek Açıklamalar Kapalı",
20
+ "Chapters": "Bölümler",
21
+ "You aborted the media playback": "Video oynatmayı iptal ettiniz",
22
+ "A network error caused the media download to fail part-way.": "Video indirilirken bağlantı sorunu oluştu.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video oynatılamadı, ağ ya da sunucu hatası veya belirtilen format desteklenmiyor.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Tarayıcınız desteklemediği için videoda hata oluştu.",
25
+ "No compatible source was found for this media.": "Video için kaynak bulunamadı.",
26
+ "Play Video": "Videoyu Oynat",
27
+ "Close": "Kapat",
28
+ "Modal Window": "Modal Penceresi",
29
+ "This is a modal window": "Bu bir modal penceresidir",
30
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Bu modal ESC tuşuna basarak ya da kapata tıklanarak kapatılabilir.",
31
+ ", opens captions settings dialog": ", ek açıklama ayarları menüsünü açar",
32
+ ", opens subtitles settings dialog": ", altyazı ayarları menüsünü açar",
33
+ ", selected": ", seçildi"
34
  });
video-js/lang/uk.js CHANGED
@@ -1,40 +1,40 @@
1
- videojs.addLanguage("uk",{
2
- "Play": "Відтворити",
3
- "Pause": "Призупинити",
4
- "Current Time": "Поточний час",
5
- "Duration Time": "Тривалість",
6
- "Remaining Time": "Час, що залишився",
7
- "Stream Type": "Тип потоку",
8
- "LIVE": "НАЖИВО",
9
- "Loaded": "Завантаження",
10
- "Progress": "Прогрес",
11
- "Fullscreen": "Повноекранний режим",
12
- "Non-Fullscreen": "Неповноекранний режим",
13
- "Mute": "Без звуку",
14
- "Unmute": "Зі звуком",
15
- "Playback Rate": "Швидкість відтворення",
16
- "Subtitles": "Субтитри",
17
- "subtitles off": "Без субтитрів",
18
- "Captions": "Підписи",
19
- "captions off": "Без підписів",
20
- "Chapters": "Розділи",
21
- "Close Modal Dialog": "Закрити модальний діалог",
22
- "Descriptions": "Описи",
23
- "descriptions off": "Без описів",
24
- "Audio Track": "Аудіодоріжка",
25
- "You aborted the media playback": "Ви припинили відтворення відео",
26
- "A network error caused the media download to fail part-way.": "Помилка мережі викликала збій під час завантаження відео.",
27
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Неможливо завантажити відео через мережевий чи серверний збій або формат не підтримується.",
28
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Відтворення відео було припинено через пошкодження або у зв'язку з тим, що відео використовує функції, які не підтримуються вашим браузером.",
29
- "No compatible source was found for this media.": "Сумісні джерела для цього відео відсутні.",
30
- "The media is encrypted and we do not have the keys to decrypt it.": "Відео в зашифрованому вигляді, і ми не маємо ключі для розшифровки.",
31
- "Play Video": "Відтворити відео",
32
- "Close": "Закрити",
33
- "Modal Window": "Модальне вікно",
34
- "This is a modal window": "Це модальне вікно.",
35
- "This modal can be closed by pressing the Escape key or activating the close button.": "Модальне вікно можна закрити, натиснувши клавішу Esc або кнопку закриття вікна.",
36
- ", opens captions settings dialog": ", відкриється діалогове вікно налаштування підписів",
37
- ", opens subtitles settings dialog": ", відкриється діалогове вікно налаштування субтитрів",
38
- ", opens descriptions settings dialog": ", відкриється діалогове вікно налаштування описів",
39
- ", selected": ", обраний"
40
  });
1
+ videojs.addLanguage("uk",{
2
+ "Play": "Відтворити",
3
+ "Pause": "Призупинити",
4
+ "Current Time": "Поточний час",
5
+ "Duration Time": "Тривалість",
6
+ "Remaining Time": "Час, що залишився",
7
+ "Stream Type": "Тип потоку",
8
+ "LIVE": "НАЖИВО",
9
+ "Loaded": "Завантаження",
10
+ "Progress": "Прогрес",
11
+ "Fullscreen": "Повноекранний режим",
12
+ "Non-Fullscreen": "Неповноекранний режим",
13
+ "Mute": "Без звуку",
14
+ "Unmute": "Зі звуком",
15
+ "Playback Rate": "Швидкість відтворення",
16
+ "Subtitles": "Субтитри",
17
+ "subtitles off": "Без субтитрів",
18
+ "Captions": "Підписи",
19
+ "captions off": "Без підписів",
20
+ "Chapters": "Розділи",
21
+ "Close Modal Dialog": "Закрити модальний діалог",
22
+ "Descriptions": "Описи",
23
+ "descriptions off": "Без описів",
24
+ "Audio Track": "Аудіодоріжка",
25
+ "You aborted the media playback": "Ви припинили відтворення відео",
26
+ "A network error caused the media download to fail part-way.": "Помилка мережі викликала збій під час завантаження відео.",
27
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Неможливо завантажити відео через мережевий чи серверний збій або формат не підтримується.",
28
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Відтворення відео було припинено через пошкодження або у зв'язку з тим, що відео використовує функції, які не підтримуються вашим браузером.",
29
+ "No compatible source was found for this media.": "Сумісні джерела для цього відео відсутні.",
30
+ "The media is encrypted and we do not have the keys to decrypt it.": "Відео в зашифрованому вигляді, і ми не маємо ключі для розшифровки.",
31
+ "Play Video": "Відтворити відео",
32
+ "Close": "Закрити",
33
+ "Modal Window": "Модальне вікно",
34
+ "This is a modal window": "Це модальне вікно.",
35
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Модальне вікно можна закрити, натиснувши клавішу Esc або кнопку закриття вікна.",
36
+ ", opens captions settings dialog": ", відкриється діалогове вікно налаштування підписів",
37
+ ", opens subtitles settings dialog": ", відкриється діалогове вікно налаштування субтитрів",
38
+ ", opens descriptions settings dialog": ", відкриється діалогове вікно налаштування описів",
39
+ ", selected": ", обраний"
40
  });
video-js/lang/vi.js CHANGED
@@ -1,26 +1,26 @@
1
- videojs.addLanguage("vi",{
2
- "Play": "Phát",
3
- "Pause": "Tạm dừng",
4
- "Current Time": "Thời gian hiện tại",
5
- "Duration Time": "Độ dài",
6
- "Remaining Time": "Thời gian còn lại",
7
- "Stream Type": "Kiểu Stream",
8
- "LIVE": "TRỰC TIẾP",
9
- "Loaded": "Đã tải",
10
- "Progress": "Tiến trình",
11
- "Fullscreen": "Toàn màn hình",
12
- "Non-Fullscreen": "Thoát toàn màn hình",
13
- "Mute": "Tắt tiếng",
14
- "Unmute": "Bật âm thanh",
15
- "Playback Rate": "Tốc độ phát",
16
- "Subtitles": "Phụ đề",
17
- "subtitles off": "Tắt phụ đề",
18
- "Captions": "Chú thích",
19
- "captions off": "Tắt chú thích",
20
- "Chapters": "Chương",
21
- "You aborted the media playback": "Bạn đã hủy việc phát media.",
22
- "A network error caused the media download to fail part-way.": "Một lỗi mạng dẫn đến việc tải media bị lỗi.",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video không tải được, mạng hay server có lỗi hoặc định dạng không được hỗ trợ.",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Phát media đã bị hủy do một sai lỗi hoặc media sử dụng những tính năng trình duyệt không hỗ trợ.",
25
- "No compatible source was found for this media.": "Không có nguồn tương thích cho media này."
26
  });
1
+ videojs.addLanguage("vi",{
2
+ "Play": "Phát",
3
+ "Pause": "Tạm dừng",
4
+ "Current Time": "Thời gian hiện tại",
5
+ "Duration Time": "Độ dài",
6
+ "Remaining Time": "Thời gian còn lại",
7
+ "Stream Type": "Kiểu Stream",
8
+ "LIVE": "TRỰC TIẾP",
9
+ "Loaded": "Đã tải",
10
+ "Progress": "Tiến trình",
11
+ "Fullscreen": "Toàn màn hình",
12
+ "Non-Fullscreen": "Thoát toàn màn hình",
13
+ "Mute": "Tắt tiếng",
14
+ "Unmute": "Bật âm thanh",
15
+ "Playback Rate": "Tốc độ phát",
16
+ "Subtitles": "Phụ đề",
17
+ "subtitles off": "Tắt phụ đề",
18
+ "Captions": "Chú thích",
19
+ "captions off": "Tắt chú thích",
20
+ "Chapters": "Chương",
21
+ "You aborted the media playback": "Bạn đã hủy việc phát media.",
22
+ "A network error caused the media download to fail part-way.": "Một lỗi mạng dẫn đến việc tải media bị lỗi.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video không tải được, mạng hay server có lỗi hoặc định dạng không được hỗ trợ.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Phát media đã bị hủy do một sai lỗi hoặc media sử dụng những tính năng trình duyệt không hỗ trợ.",
25
+ "No compatible source was found for this media.": "Không có nguồn tương thích cho media này."
26
  });
video-js/lang/zh-CN.js CHANGED
@@ -1,27 +1,27 @@
1
- videojs.addLanguage("zh-CN",{
2
- "Play": "播放",
3
- "Pause": "暂停",
4
- "Current Time": "当前时间",
5
- "Duration Time": "时长",
6
- "Remaining Time": "剩余时间",
7
- "Stream Type": "媒体流类型",
8
- "LIVE": "直播",
9
- "Loaded": "加载完毕",
10
- "Progress": "进度",
11
- "Fullscreen": "全屏",
12
- "Non-Fullscreen": "退出全屏",
13
- "Mute": "静音",
14
- "Unmute": "取消静音",
15
- "Playback Rate": "播放码率",
16
- "Subtitles": "字幕",
17
- "subtitles off": "字幕关闭",
18
- "Captions": "内嵌字幕",
19
- "captions off": "内嵌字幕关闭",
20
- "Chapters": "节目段落",
21
- "You aborted the media playback": "视频播放被终止",
22
- "A network error caused the media download to fail part-way.": "网络错误导致视频下载中途失败。",
23
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "视频因格式不支持或者服务器或网络的问题无法加载。",
24
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "由于视频文件损坏或是该视频使用了你的浏览器不支持的功能,播放终止。",
25
- "No compatible source was found for this media.": "无法找到此视频兼容的源。",
26
- "The media is encrypted and we do not have the keys to decrypt it.": "视频已加密,无法解密。"
27
  });
1
+ videojs.addLanguage("zh-CN",{
2
+ "Play": "播放",
3
+ "Pause": "暂停",
4
+ "Current Time": "当前时间",
5
+ "Duration Time": "时长",
6
+ "Remaining Time": "剩余时间",
7
+ "Stream Type": "媒体流类型",
8
+ "LIVE": "直播",
9
+ "Loaded": "加载完毕",
10
+ "Progress": "进度",
11
+ "Fullscreen": "全屏",
12
+ "Non-Fullscreen": "退出全屏",
13
+ "Mute": "静音",
14
+ "Unmute": "取消静音",
15
+ "Playback Rate": "播放码率",
16
+ "Subtitles": "字幕",
17
+ "subtitles off": "字幕关闭",
18
+ "Captions": "内嵌字幕",
19
+ "captions off": "内嵌字幕关闭",
20
+ "Chapters": "节目段落",
21
+ "You aborted the media playback": "视频播放被终止",
22
+ "A network error caused the media download to fail part-way.": "网络错误导致视频下载中途失败。",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "视频因格式不支持或者服务器或网络的问题无法加载。",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "由于视频文件损坏或是该视频使用了你的浏览器不支持的功能,播放终止。",
25
+ "No compatible source was found for this media.": "无法找到此视频兼容的源。",
26
+ "The media is encrypted and we do not have the keys to decrypt it.": "视频已加密,无法解密。"
27
  });
video-js/lang/zh-TW.js CHANGED
@@ -1,40 +1,40 @@
1
- videojs.addLanguage("zh-TW",{
2
- "Play": "播放",
3
- "Pause": "暫停",
4
- "Current Time": "目前時間",
5
- "Duration Time": "總共時間",
6
- "Remaining Time": "剩餘時間",
7
- "Stream Type": "串流類型",
8
- "LIVE": "直播",
9
- "Loaded": "載入完畢",
10
- "Progress": "進度",
11
- "Fullscreen": "全螢幕",
12
- "Non-Fullscreen": "退出全螢幕",
13
- "Mute": "靜音",
14
- "Unmute": "取消靜音",
15
- "Playback Rate": " 播放速率",
16
- "Subtitles": "字幕",
17
- "subtitles off": "關閉字幕",
18
- "Captions": "內嵌字幕",
19
- "captions off": "關閉內嵌字幕",
20
- "Chapters": "章節",
21
- "Close Modal Dialog": "關閉對話框",
22
- "Descriptions": "描述",
23
- "descriptions off": "關閉描述",
24
- "Audio Track": "音軌",
25
- "You aborted the media playback": "影片播放已終止",
26
- "A network error caused the media download to fail part-way.": "網路錯誤導致影片下載失敗。",
27
- "The media could not be loaded, either because the server or network failed or because the format is not supported.": "影片因格式不支援或者伺服器或網路的問題無法載入。",
28
- "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "由於影片檔案損毀或是該影片使用了您的瀏覽器不支援的功能,播放終止。",
29
- "No compatible source was found for this media.": "無法找到相容此影片的來源。",
30
- "The media is encrypted and we do not have the keys to decrypt it.": "影片已加密,無法解密。",
31
- "Play Video": "播放影片",
32
- "Close": "關閉",
33
- "Modal Window": "對話框",
34
- "This is a modal window": "這是一個對話框",
35
- "This modal can be closed by pressing the Escape key or activating the close button.": "可以按ESC按鍵或啟用關閉按鈕來關閉此對話框。",
36
- ", opens captions settings dialog": ", 開啟標題設定對話框",
37
- ", opens subtitles settings dialog": ", 開啟字幕設定對話框",
38
- ", opens descriptions settings dialog": ", 開啟描述設定對話框",
39
- ", selected": ", 選擇"
40
  });
1
+ videojs.addLanguage("zh-TW",{
2
+ "Play": "播放",
3
+ "Pause": "暫停",
4
+ "Current Time": "目前時間",
5
+ "Duration Time": "總共時間",
6
+ "Remaining Time": "剩餘時間",
7
+ "Stream Type": "串流類型",
8
+ "LIVE": "直播",
9
+ "Loaded": "載入完畢",
10
+ "Progress": "進度",
11
+ "Fullscreen": "全螢幕",
12
+ "Non-Fullscreen": "退出全螢幕",
13
+ "Mute": "靜音",
14
+ "Unmute": "取消靜音",
15
+ "Playback Rate": " 播放速率",
16
+ "Subtitles": "字幕",
17
+ "subtitles off": "關閉字幕",
18
+ "Captions": "內嵌字幕",
19
+ "captions off": "關閉內嵌字幕",
20
+ "Chapters": "章節",
21
+ "Close Modal Dialog": "關閉對話框",
22
+ "Descriptions": "描述",
23
+ "descriptions off": "關閉描述",
24
+ "Audio Track": "音軌",
25
+ "You aborted the media playback": "影片播放已終止",
26
+ "A network error caused the media download to fail part-way.": "網路錯誤導致影片下載失敗。",
27
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "影片因格式不支援或者伺服器或網路的問題無法載入。",
28
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "由於影片檔案損毀或是該影片使用了您的瀏覽器不支援的功能,播放終止。",
29
+ "No compatible source was found for this media.": "無法找到相容此影片的來源。",
30
+ "The media is encrypted and we do not have the keys to decrypt it.": "影片已加密,無法解密。",
31
+ "Play Video": "播放影片",
32
+ "Close": "關閉",
33
+ "Modal Window": "對話框",
34
+ "This is a modal window": "這是一個對話框",
35
+ "This modal can be closed by pressing the Escape key or activating the close button.": "可以按ESC按鍵或啟用關閉按鈕來關閉此對話框。",
36
+ ", opens captions settings dialog": ", 開啟標題設定對話框",
37
+ ", opens subtitles settings dialog": ", 開啟字幕設定對話框",
38
+ ", opens descriptions settings dialog": ", 開啟描述設定對話框",
39
+ ", selected": ", 選擇"
40
  });
video-js/video-quality-selector-license.txt CHANGED
@@ -1,20 +1,20 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2013 Dominic
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy of
6
- this software and associated documentation files (the "Software"), to deal in
7
- the Software without restriction, including without limitation the rights to
8
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
- the Software, and to permit persons to whom the Software is furnished to do so,
10
- subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
- FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
- COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2013 Dominic
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ the Software, and to permit persons to whom the Software is furnished to do so,
10
+ subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
video-js/video-quality-selector.js CHANGED
@@ -1,458 +1,458 @@
1
- /**
2
- * Video.js Resolution Selector
3
- *
4
- * This plugin for Video.js adds a resolution selector option
5
- * to the toolbar. Usage:
6
- *
7
- * <video>
8
- * <source data-res="480" src="..." />
9
- * <source data-res="240" src="..." />
10
- * </video>
11
- *
12
- * FIXME with hacks by User:TheDJ to make this video-js 5.0 compatible
13
- */
14
-
15
- function kgvid_load_video_quality_selector() {
16
-
17
- if ( videojs.VERSION.split('.')[0] < 5 ) {
18
-
19
- return;
20
-
21
- }
22
-
23
-
24
- /***********************************************************************************
25
- * Define some helper functions
26
- ***********************************************************************************/
27
- var methods = {
28
-
29
- /**
30
- * In a future version, this can be made more intelligent,
31
- * but for now, we'll just add a "p" at the end if we are passed
32
- * numbers.
33
- *
34
- * @param (string) res The resolution to make a label for
35
- *
36
- * @returns (string) The label text string
37
- */
38
- res_label : function( res ) {
39
-
40
- return ( /^\d+$/.test( res ) ) ? res + 'p' : res;
41
- }
42
- };
43
-
44
- /***********************************************************************************
45
- * Setup our resolution menu items
46
- ***********************************************************************************/
47
- videojs.ResolutionMenuItem = videojs.extend( videojs.getComponent( 'MenuItem' ), {
48
-
49
- // Call variable to prevent the resolution change from being called twice
50
- call_count : 0,
51
-
52
- /** @constructor */
53
- constructor : function( player, options ){
54
-
55
- var touchstart = false;
56
-
57
- // Modify options for parent MenuItem class's init.
58
- options.label = methods.res_label( options.res );
59
- options.selected = ( options.res.toString() === player.getCurrentRes().toString() );
60
-
61
- // Call the parent constructor
62
- videojs.getComponent( 'MenuItem' ).call( this, player, options );
63
-
64
- // Store the resolution as a property
65
- this.resolution = options.res;
66
-
67
- // Register our click and tap handlers
68
- this.on( ['click', 'tap'], this.onClick );
69
-
70
- // Toggle the selected class whenever the resolution changes
71
- player.on( 'changeRes', videojs.bind( this, function() {
72
-
73
- if ( this.resolution == player.getCurrentRes() ) {
74
-
75
- this.selected( true );
76
-
77
- } else {
78
-
79
- this.selected( false );
80
- }
81
-
82
- // Reset the call count
83
- this.call_count = 0;
84
- }));
85
- }
86
- });
87
-
88
- // Handle clicks on the menu items
89
- videojs.ResolutionMenuItem.prototype.onClick = function() {
90
-
91
- // Check if this has already been called
92
- if ( this.call_count > 0 ) { return; }
93
-
94
- // Call the player.changeRes method
95
- this.player().changeRes( this.resolution );
96
-
97
- // Increment the call counter
98
- this.call_count++;
99
- };
100
-
101
- /***********************************************************************************
102
- * Setup our resolution menu title item
103
- ***********************************************************************************/
104
- videojs.ResolutionTitleMenuItem = videojs.extend( videojs.getComponent( 'MenuItem' ), {
105
-
106
- constructor : function( player, options ) {
107
-
108
- // Call the parent constructor
109
- videojs.getComponent( 'MenuItem' ).call( this, player, options );
110
-
111
- // No click handler for the menu title
112
- this.off( 'click' );
113
- }
114
- });
115
-
116
- /***********************************************************************************
117
- * Define our resolution selector button
118
- ***********************************************************************************/
119
- videojs.ResolutionSelector = videojs.extend( videojs.getComponent( 'MenuButton' ), {
120
-
121
- /** @constructor */
122
- constructor : function( player, options ) {
123
-
124
- // Add our list of available resolutions to the player object
125
- player.availableRes = options.available_res;
126
-
127
- // Call the parent constructor
128
- videojs.getComponent( 'MenuButton' ).call( this, player, options );
129
-
130
- }
131
- });
132
-
133
- // Set class for resolution selector button
134
- videojs.ResolutionSelector.prototype.buildCSSClass = function buildCSSClass() {
135
- return 'vjs-res-button ' + videojs.getComponent( 'MenuButton' ).prototype.buildCSSClass.call( this );
136
- };
137
-
138
- // Create a menu item for each available resolution
139
- videojs.ResolutionSelector.prototype.createItems = function() {
140
-
141
- var player = this.player(),
142
- items = [],
143
- current_res;
144
-
145
- // Add an item for each available resolution
146
- for ( current_res in player.availableRes ) {
147
-
148
- // Don't add an item for the length attribute
149
- if ( 'length' == current_res ) { continue; }
150
-
151
- items.push( new videojs.ResolutionMenuItem( player, {
152
- res : current_res,
153
- 'selectable' : true
154
- }));
155
- }
156
-
157
- // Sort the available resolutions in descending order
158
- items.sort(function( a, b ) {
159
-
160
- if ( typeof a.resolution == 'undefined' ) {
161
-
162
- return -1;
163
-
164
- }
165
- else if ( a.resolution == kgvidL10n_frontend.fullres ) { //sort the 'Full' resolution value to the top of the list
166
- return -1;
167
- }
168
- else if ( b.resolution == kgvidL10n_frontend.fullres ) {
169
- return 1;
170
- }
171
- else {
172
-
173
- return parseInt( b.resolution ) - parseInt( a.resolution );
174
-
175
- }
176
- });
177
-
178
- // Add the menu title item
179
- items.unshift( new videojs.ResolutionTitleMenuItem( player, {
180
-
181
- el : videojs.getComponent( 'Component' ).prototype.createEl( 'li', {
182
-
183
- className : 'vjs-menu-title vjs-res-menu-title',
184
- innerHTML : kgvidL10n_frontend.quality
185
- })
186
- }));
187
-
188
- return items;
189
- };
190
-
191
- /***********************************************************************************
192
- * Register the plugin with videojs, main plugin function
193
- ***********************************************************************************/
194
- videojs.plugin( 'resolutionSelector', function( options ) {
195
-
196
- // Only enable the plugin on HTML5 videos
197
- if ( ! this.el().firstChild.canPlayType ) { return; }
198
-
199
- /*******************************************************************
200
- * Setup variables, parse settings
201
- *******************************************************************/
202
- var player = this,
203
- sources = this.options_.sources,
204
- i = sources.length,
205
- j,
206
- found_type,
207
-
208
- // Override default options with those provided
209
- settings = videojs.mergeOptions({
210
-
211
- default_res : '', // (string) The resolution that should be selected by default ( '480' or '480,1080,240' )
212
- force_types : false // (array) List of media types. If passed, we need to have source for each type in each resolution or that resolution will not be an option
213
-
214
- }, options || {} ),
215
-
216
- available_res = { length : 0 },
217
- current_res,
218
- resolutionSelector,
219
-
220
- // Split default resolutions if set and valid, otherwise default to an empty array
221
- default_resolutions = ( settings.default_res && typeof settings.default_res == 'string' ) ? settings.default_res.split( ',' ) : [];
222
-
223
- // Get all of the available resoloutions
224
- while ( i > 0 ) {
225
-
226
- i--;
227
-
228
- // Skip sources that don't have data-res attributes
229
- if ( ! sources[i]['data-res'] ) { continue; }
230
-
231
- current_res = sources[i]['data-res'];
232
-
233
- if ( typeof available_res[current_res] !== 'object' ) {
234
-
235
- available_res[current_res] = [];
236
- available_res.length++;
237
- }
238
-
239
- available_res[current_res].push( sources[i] );
240
-
241
- if ( current_res == kgvidL10n_frontend.fullres ) {
242
- player.on('loadedmetadata', function(){
243
- if ( player.videoHeight() != NaN ) {
244
- jQuery('.vjs-res-button li:contains('+kgvidL10n_frontend.fullres+')').html(player.videoHeight()+'p');
245
- }
246
- });
247
- }
248
-
249
- }
250
-
251
- // Check for forced types
252
- if ( settings.force_types ) {
253
-
254
- // Loop through all available resoultions
255
- for ( current_res in available_res ) {
256
-
257
- // Don't count the length property as a resolution
258
- if ( 'length' == current_res ) { continue; }
259
-
260
- i = settings.force_types.length;
261
- found_types = 0;
262
-
263
- // Loop through all required types
264
- while ( i > 0 ) {
265
-
266
- i--;
267
-
268
- j = available_res[current_res].length;
269
-
270
- // Loop through all available sources in current resolution
271
- while ( j > 0 ) {
272
-
273
- j--;
274
-
275
- // Check if the current source matches the current type we're checking
276
- if ( settings.force_types[i] === available_res[current_res][j].type ) {
277
-
278
- found_types++;
279
- break;
280
- }
281
- }
282
- }
283
-
284
- // If we didn't find sources for all of the required types in the current res, remove it
285
- if ( found_types < settings.force_types.length ) {
286
-
287
- delete available_res[current_res];
288
- available_res.length--;
289
- }
290
- }
291
- }
292
-
293
- // Make sure we have at least 2 available resolutions before we add the button
294
- if ( available_res.length < 2 ) { return; }
295
-
296
- /*******************************************************************
297
- * Add methods to player object
298
- *******************************************************************/
299
-
300
- // Make sure we have player.localize() if it's not defined by Video.js
301
- if ( typeof player.localize !== 'function' ) {
302
-
303
- player.localize = function( string ) {
304
-
305
- return string;
306
- };
307
- }
308
-
309
- // Helper function to get the current resolution
310
- player.getCurrentRes = function() {
311
-
312
- if ( typeof player.currentRes !== 'undefined' ) {
313
-
314
- return player.currentRes;
315
-
316
- } else {
317
-
318
- try {
319
-
320
- return res = sources[0]['data-res'];
321
-
322
- } catch(e) {
323
-
324
- return '';
325
- }
326
- }
327
- };
328
-
329
- // Define the change res method
330
- player.changeRes = function( target_resolution ) {
331
-
332
- var video = player.el().firstChild,
333
- is_paused = player.paused(),
334
- is_autoplay = player.autoplay(),
335
- current_time = player.currentTime(),
336
- button_nodes,
337
- button_node_count;
338
-
339
- // Do nothing if we aren't changing resolutions or if the resolution isn't defined
340
- if ( player.getCurrentRes() == target_resolution
341
- || ! player.availableRes
342
- || ! player.availableRes[target_resolution] ) { return; }
343
-
344
- // Make sure the loadedmetadata event will fire
345
- if ( 'none' == video.preload ) { video.preload = 'metadata'; }
346
-
347
- if ( is_autoplay ) { player.autoplay(false); }
348
-
349
- if ( current_time != 0 ) {
350
-
351
- player.pause();
352
- var canvas = document.createElement("canvas");
353
- canvas.className = 'kgvid_temp_thumb';
354
- canvas.width = ( video.videoWidth > video.videoHeight ) ? video.offsetWidth : video.videoWidth/video.videoHeight*video.offsetHeight;
355
- canvas.height = ( video.videoWidth > video.videoHeight ) ? video.videoHeight/video.videoWidth*video.offsetWidth : video.offsetHeight;
356
- var topOffset = Math.round((video.offsetHeight - canvas.height)/2);
357
- if (topOffset > 2) {
358
- canvas.setAttribute('style', 'top:' + topOffset + 'px;');
359
- }
360
- var leftOffset = Math.round((video.offsetWidth - canvas.width)/2);
361
- if (leftOffset > 2) {
362
- canvas.setAttribute('style', 'left:' + leftOffset + 'px;');
363
- }
364
- var context = canvas.getContext('2d');
365
- context.fillRect(0, 0, canvas.width, canvas.height);
366
- context.drawImage(video, 0, 0, canvas.width, canvas.height);
367
- jQuery(video).parent().append(canvas);
368
-
369
- player.bigPlayButton.hide();
370
-
371
- }
372
-
373
- // Change the source and make sure we don't start the video over
374
- player.src( player.availableRes[target_resolution] )
375
- .one( 'loadedmetadata', function() {
376
-
377
- if ( current_time != 0 ) {
378
-
379
- player.currentTime( current_time );
380
- player.pause();
381
-
382
- // If the video was paused, don't show the poster image again
383
- player.addClass( 'vjs-has-started' );
384
-
385
- if ( ! is_paused ) { player.play(); }
386
-
387
- if ( is_autoplay ) { player.autoplay(true); }
388
-
389
- }
390
-
391
- })
392
- .one( 'seeked', function() {
393
- if ( current_time != 0 ) {
394
-
395
- jQuery(canvas).remove();
396
-
397
- }
398
- });
399
-
400
- // Save the newly selected resolution in our player options property
401
- player.currentRes = target_resolution;
402
-
403
- // Make sure the button has been added to the control bar
404
- if ( player.getChild( 'controlBar' ).getChild( 'resolutionSelector' ) ) {
405
-
406
- button_nodes = player.getChild( 'controlBar' ).getChild( 'resolutionSelector' ).el().firstChild.children;
407
- button_node_count = button_nodes.length;
408
-
409
- // Update the button text
410
- while ( button_node_count > 0 ) {
411
-
412
- button_node_count--;
413
-
414
- if ( 'vjs-control-text' == button_nodes[button_node_count].className ) {
415
-
416
- button_nodes[button_node_count].innerHTML = methods.res_label( target_resolution );
417
- break;
418
- }
419
- }
420
- }
421
-
422
- // Update the classes to reflect the currently selected resolution
423
- player.trigger( 'changeRes' );
424
- };
425
-
426
- /*******************************************************************
427
- * Add the resolution selector button
428
- *******************************************************************/
429
-
430
- // Get the starting resolution
431
- current_res = player.getCurrentRes();
432
-
433
- if ( current_res ) { current_res = methods.res_label( current_res ); }
434
-
435
- // Add the resolution selector button
436
- resolutionSelector = new videojs.ResolutionSelector( player, {
437
- available_res : available_res
438
- });
439
-
440
- // Add the button to the control bar object and the DOM
441
- this.on( 'ready' , function() {
442
- player.controlBar.addChild( resolutionSelector );
443
- player.controlBar.el().insertBefore(jQuery(player.controlBar.el()).find('.vjs-res-button')[0], player.controlBar.customControlSpacer.el());
444
-
445
- // Loop through the choosen default resolutions if there were any
446
- for ( i = 0; i < default_resolutions.length; i++ ) {
447
-
448
- // Set the video to start out with the first available default res
449
- if ( available_res[default_resolutions[i]] ) {
450
- player.changeRes(default_resolutions[i]);
451
- break;
452
- }
453
- }
454
-
455
- } );
456
- });
457
-
458
- }
1
+ /**
2
+ * Video.js Resolution Selector
3
+ *
4
+ * This plugin for Video.js adds a resolution selector option
5
+ * to the toolbar. Usage:
6
+ *
7
+ * <video>
8
+ * <source data-res="480" src="..." />
9
+ * <source data-res="240" src="..." />
10
+ * </video>
11
+ *
12
+ * FIXME with hacks by User:TheDJ to make this video-js 5.0 compatible
13
+ */
14
+
15
+ function kgvid_load_video_quality_selector() {
16
+
17
+ if ( videojs.VERSION.split('.')[0] < 5 ) {
18
+
19
+ return;
20
+
21
+ }
22
+
23
+
24
+ /***********************************************************************************
25
+ * Define some helper functions
26
+ ***********************************************************************************/
27
+ var methods = {
28
+
29
+ /**
30
+ * In a future version, this can be made more intelligent,
31
+ * but for now, we'll just add a "p" at the end if we are passed
32
+ * numbers.
33
+ *
34
+ * @param (string) res The resolution to make a label for
35
+ *
36
+ * @returns (string) The label text string
37
+ */
38
+ res_label : function( res ) {
39
+
40
+ return ( /^\d+$/.test( res ) ) ? res + 'p' : res;
41
+ }
42
+ };
43
+
44
+ /***********************************************************************************
45
+ * Setup our resolution menu items
46
+ ***********************************************************************************/
47
+ videojs.ResolutionMenuItem = videojs.extend( videojs.getComponent( 'MenuItem' ), {
48
+
49
+ // Call variable to prevent the resolution change from being called twice
50
+ call_count : 0,
51
+
52
+ /** @constructor */
53
+ constructor : function( player, options ){
54
+
55
+ var touchstart = false;
56
+
57
+ // Modify options for parent MenuItem class's init.
58
+ options.label = methods.res_label( options.res );
59
+ options.selected = ( options.res.toString() === player.getCurrentRes().toString() );
60
+
61
+ // Call the parent constructor
62
+ videojs.getComponent( 'MenuItem' ).call( this, player, options );
63
+
64
+ // Store the resolution as a property
65
+ this.resolution = options.res;
66
+
67
+ // Register our click and tap handlers
68
+ this.on( ['click', 'tap'], this.onClick );
69
+
70
+ // Toggle the selected class whenever the resolution changes
71
+ player.on( 'changeRes', videojs.bind( this, function() {
72
+
73
+ if ( this.resolution == player.getCurrentRes() ) {
74
+
75
+ this.selected( true );
76
+
77
+ } else {
78
+
79
+ this.selected( false );
80
+ }
81
+
82
+ // Reset the call count
83
+ this.call_count = 0;
84
+ }));
85
+ }
86
+ });
87
+
88
+ // Handle clicks on the menu items
89
+ videojs.ResolutionMenuItem.prototype.onClick = function() {
90
+
91
+ // Check if this has already been called
92
+ if ( this.call_count > 0 ) { return; }
93
+
94
+ // Call the player.changeRes method
95
+ this.player().changeRes( this.resolution );
96
+
97
+ // Increment the call counter
98
+ this.call_count++;
99
+ };
100
+
101
+ /***********************************************************************************
102
+ * Setup our resolution menu title item
103
+ ***********************************************************************************/
104
+ videojs.ResolutionTitleMenuItem = videojs.extend( videojs.getComponent( 'MenuItem' ), {
105
+
106
+ constructor : function( player, options ) {
107
+
108
+ // Call the parent constructor
109
+ videojs.getComponent( 'MenuItem' ).call( this, player, options );
110
+
111
+ // No click handler for the menu title
112
+ this.off( 'click' );
113
+ }
114
+ });
115
+
116
+ /***********************************************************************************
117
+ * Define our resolution selector button
118
+ ***********************************************************************************/
119
+ videojs.ResolutionSelector = videojs.extend( videojs.getComponent( 'MenuButton' ), {
120
+
121
+ /** @constructor */
122
+ constructor : function( player, options ) {
123
+
124
+ // Add our list of available resolutions to the player object
125
+ player.availableRes = options.available_res;
126
+
127
+ // Call the parent constructor
128
+ videojs.getComponent( 'MenuButton' ).call( this, player, options );
129
+
130
+ }
131
+ });
132
+
133
+ // Set class for resolution selector button
134
+ videojs.ResolutionSelector.prototype.buildCSSClass = function buildCSSClass() {
135
+ return 'vjs-res-button ' + videojs.getComponent( 'MenuButton' ).prototype.buildCSSClass.call( this );
136
+ };
137
+
138
+ // Create a menu item for each available resolution
139
+ videojs.ResolutionSelector.prototype.createItems = function() {
140
+
141
+ var player = this.player(),
142
+ items = [],
143
+ current_res;
144
+
145
+ // Add an item for each available resolution
146
+ for ( current_res in player.availableRes ) {
147
+
148
+ // Don't add an item for the length attribute
149
+ if ( 'length' == current_res ) { continue; }
150
+
151
+ items.push( new videojs.ResolutionMenuItem( player, {
152
+ res : current_res,
153
+ 'selectable' : true
154
+ }));
155
+ }
156
+
157
+ // Sort the available resolutions in descending order
158
+ items.sort(function( a, b ) {
159
+
160
+ if ( typeof a.resolution == 'undefined' ) {
161
+
162
+ return -1;
163
+
164
+ }
165
+ else if ( a.resolution == kgvidL10n_frontend.fullres ) { //sort the 'Full' resolution value to the top of the list
166
+ return -1;
167
+ }
168
+ else if ( b.resolution == kgvidL10n_frontend.fullres ) {
169
+ return 1;
170
+ }
171
+ else {
172
+
173
+ return parseInt( b.resolution ) - parseInt( a.resolution );
174
+
175
+ }
176
+ });
177
+
178
+ // Add the menu title item
179
+ items.unshift( new videojs.ResolutionTitleMenuItem( player, {
180
+
181
+ el : videojs.getComponent( 'Component' ).prototype.createEl( 'li', {
182
+
183
+ className : 'vjs-menu-title vjs-res-menu-title',
184
+ innerHTML : kgvidL10n_frontend.quality
185
+ })
186
+ }));
187
+
188
+ return items;
189
+ };
190
+
191
+ /***********************************************************************************
192
+ * Register the plugin with videojs, main plugin function
193
+ ***********************************************************************************/
194
+ videojs.plugin( 'resolutionSelector', function( options ) {
195
+
196
+ // Only enable the plugin on HTML5 videos
197
+ if ( ! this.el().firstChild.canPlayType ) { return; }
198
+
199
+ /*******************************************************************
200
+ * Setup variables, parse settings
201
+ *******************************************************************/
202
+ var player = this,
203
+ sources = this.options_.sources,
204
+ i = sources.length,
205
+ j,
206
+ found_type,
207
+
208
+ // Override default options with those provided
209
+ settings = videojs.mergeOptions({
210
+
211
+ default_res : '', // (string) The resolution that should be selected by default ( '480' or '480,1080,240' )
212
+ force_types : false // (array) List of media types. If passed, we need to have source for each type in each resolution or that resolution will not be an option
213
+
214
+ }, options || {} ),
215
+
216
+ available_res = { length : 0 },
217
+ current_res,
218
+ resolutionSelector,
219
+
220
+ // Split default resolutions if set and valid, otherwise default to an empty array
221
+ default_resolutions = ( settings.default_res && typeof settings.default_res == 'string' ) ? settings.default_res.split( ',' ) : [];
222
+
223
+ // Get all of the available resoloutions
224
+ while ( i > 0 ) {
225
+
226
+ i--;
227
+
228
+ // Skip sources that don't have data-res attributes
229
+ if ( ! sources[i]['data-res'] ) { continue; }
230
+
231
+ current_res = sources[i]['data-res'];
232
+
233
+ if ( typeof available_res[current_res] !== 'object' ) {
234
+
235
+ available_res[current_res] = [];
236
+ available_res.length++;
237
+ }
238
+
239
+ available_res[current_res].push( sources[i] );
240
+
241
+ if ( current_res == kgvidL10n_frontend.fullres ) {
242
+ player.on('loadedmetadata', function(){
243
+ if ( player.videoHeight() != NaN ) {
244
+ jQuery('.vjs-res-button li:contains('+kgvidL10n_frontend.fullres+')').html(player.videoHeight()+'p');
245
+ }
246
+ });
247
+ }
248
+
249
+ }
250
+
251
+ // Check for forced types
252
+ if ( settings.force_types ) {
253
+
254
+ // Loop through all available resoultions
255
+ for ( current_res in available_res ) {
256
+
257
+ // Don't count the length property as a resolution
258
+ if ( 'length' == current_res ) { continue; }
259
+
260
+ i = settings.force_types.length;
261
+ found_types = 0;
262
+
263
+ // Loop through all required types
264
+ while ( i > 0 ) {
265
+
266
+ i--;
267
+
268
+ j = available_res[current_res].length;
269
+
270
+ // Loop through all available sources in current resolution
271
+ while ( j > 0 ) {
272
+
273
+ j--;
274
+
275
+ // Check if the current source matches the current type we're checking
276
+ if ( settings.force_types[i] === available_res[current_res][j].type ) {
277
+
278
+ found_types++;
279
+ break;
280
+ }
281
+ }
282
+ }
283
+
284
+ // If we didn't find sources for all of the required types in the current res, remove it
285
+ if ( found_types < settings.force_types.length ) {
286
+
287
+ delete available_res[current_res];
288
+ available_res.length--;
289
+ }
290
+ }
291
+ }
292
+
293
+ // Make sure we have at least 2 available resolutions before we add the button
294
+ if ( available_res.length < 2 ) { return; }
295
+
296
+ /*******************************************************************
297
+ * Add methods to player object
298
+ *******************************************************************/
299
+
300
+ // Make sure we have player.localize() if it's not defined by Video.js
301
+ if ( typeof player.localize !== 'function' ) {
302
+
303
+ player.localize = function( string ) {
304
+
305
+ return string;
306
+ };
307
+ }
308
+
309
+ // Helper function to get the current resolution
310
+ player.getCurrentRes = function() {
311
+
312
+ if ( typeof player.currentRes !== 'undefined' ) {
313
+
314
+ return player.currentRes;
315
+
316
+ } else {
317
+
318
+ try {
319
+
320
+ return res = sources[0]['data-res'];
321
+
322
+ } catch(e) {
323
+
324
+ return '';
325
+ }
326
+ }
327
+ };
328
+
329
+ // Define the change res method
330
+ player.changeRes = function( target_resolution ) {
331
+
332
+ var video = player.el().firstChild,
333
+ is_paused = player.paused(),
334
+ is_autoplay = player.autoplay(),
335
+ current_time = player.currentTime(),
336
+ button_nodes,
337
+ button_node_count;
338
+
339
+ // Do nothing if we aren't changing resolutions or if the resolution isn't defined
340
+ if ( player.getCurrentRes() == target_resolution
341
+ || ! player.availableRes
342
+ || ! player.availableRes[target_resolution] ) { return; }
343
+
344
+ // Make sure the loadedmetadata event will fire
345
+ if ( 'none' == video.preload ) { video.preload = 'metadata'; }
346
+
347
+ if ( is_autoplay ) { player.autoplay(false); }
348
+
349
+ if ( current_time != 0 ) {
350
+
351
+ player.pause();
352
+ var canvas = document.createElement("canvas");
353
+ canvas.className = 'kgvid_temp_thumb';
354
+ canvas.width = ( video.videoWidth > video.videoHeight ) ? video.offsetWidth : video.videoWidth/video.videoHeight*video.offsetHeight;
355
+ canvas.height = ( video.videoWidth > video.videoHeight ) ? video.videoHeight/video.videoWidth*video.offsetWidth : video.offsetHeight;
356
+ var topOffset = Math.round((video.offsetHeight - canvas.height)/2);
357
+ if (topOffset > 2) {
358
+ canvas.setAttribute('style', 'top:' + topOffset + 'px;');
359
+ }
360
+ var leftOffset = Math.round((video.offsetWidth - canvas.width)/2);
361
+ if (leftOffset > 2) {
362
+ canvas.setAttribute('style', 'left:' + leftOffset + 'px;');
363
+ }
364
+ var context = canvas.getContext('2d');
365
+ context.fillRect(0, 0, canvas.width, canvas.height);
366
+ context.drawImage(video, 0, 0, canvas.width, canvas.height);
367
+ jQuery(video).parent().append(canvas);
368
+
369
+ player.bigPlayButton.hide();
370
+
371
+ }
372
+
373
+ // Change the source and make sure we don't start the video over
374
+ player.src( player.availableRes[target_resolution] )
375
+ .one( 'loadedmetadata', function() {
376
+
377
+ if ( current_time != 0 ) {
378
+
379
+ player.currentTime( current_time );
380
+ player.pause();
381
+
382
+ // If the video was paused, don't show the poster image again
383
+ player.addClass( 'vjs-has-started' );
384
+
385
+ if ( ! is_paused ) { player.play(); }
386
+
387
+ if ( is_autoplay ) { player.autoplay(true); }
388
+
389
+ }
390
+
391
+ })
392
+ .one( 'seeked', function() {
393
+ if ( current_time != 0 ) {
394
+
395
+ jQuery(canvas).remove();
396
+
397
+ }
398
+ });
399
+
400
+ // Save the newly selected resolution in our player options property
401
+ player.currentRes = target_resolution;
402
+
403
+ // Make sure the button has been added to the control bar
404
+ if ( player.getChild( 'controlBar' ).getChild( 'resolutionSelector' ) ) {
405
+
406
+ button_nodes = player.getChild( 'controlBar' ).getChild( 'resolutionSelector' ).el().firstChild.children;
407
+ button_node_count = button_nodes.length;
408
+
409
+ // Update the button text
410
+ while ( button_node_count > 0 ) {
411
+
412
+ button_node_count--;
413
+
414
+ if ( 'vjs-control-text' == button_nodes[button_node_count].className ) {
415
+
416
+ button_nodes[button_node_count].innerHTML = methods.res_label( target_resolution );
417
+ break;
418
+ }
419
+ }
420
+ }
421
+
422
+ // Update the classes to reflect the currently selected resolution
423
+ player.trigger( 'changeRes' );
424
+ };
425
+
426
+ /*******************************************************************
427
+ * Add the resolution selector button
428
+ *******************************************************************/
429
+
430
+ // Get the starting resolution
431
+ current_res = player.getCurrentRes();
432
+
433
+ if ( current_res ) { current_res = methods.res_label( current_res ); }
434
+
435
+ // Add the resolution selector button
436
+ resolutionSelector = new videojs.ResolutionSelector( player, {
437
+ available_res : available_res
438
+ });
439
+
440
+ // Add the button to the control bar object and the DOM
441
+ this.on( 'ready' , function() {
442
+ player.controlBar.addChild( resolutionSelector );
443
+ player.controlBar.el().insertBefore(jQuery(player.controlBar.el()).find('.vjs-res-button')[0], player.controlBar.customControlSpacer.el());
444
+
445
+ // Loop through the choosen default resolutions if there were any
446
+ for ( i = 0; i < default_resolutions.length; i++ ) {
447
+
448
+ // Set the video to start out with the first available default res
449
+ if ( available_res[default_resolutions[i]] ) {
450
+ player.changeRes(default_resolutions[i]);
451
+ break;
452
+ }
453
+ }
454
+
455
+ } );
456
+ });
457
+
458
+ }
video-js/video.js CHANGED
@@ -1,19 +1,19 @@
1
- /**
2
- * @license
3
- * Video.js 5.20.5 <http://videojs.com/>
4
- * Copyright Brightcove, Inc. <https://www.brightcove.com/>
5
- * Available under Apache License Version 2.0
6
- * <https://github.com/videojs/video.js/blob/master/LICENSE>
7
- *
8
- * Includes vtt.js <https://github.com/mozilla/vtt.js>
9
- * Available under Apache License Version 2.0
10
- * <https://github.com/mozilla/vtt.js/blob/master/LICENSE>
11
- */
12
- !function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.videojs=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c||b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(2),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.mouseused_=!1,g.on("mousedown",g.handleMouseDown),g}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-big-play-button"},b.prototype.handleClick=function(a){var b=this.player_.play();if(!(this.mouseused_&&a.clientX&&a.clientY)){var c=this.player_.getChild("controlBar"),d=c&&c.getChild("playToggle");if(!d)return void this.player_.focus();var e=function(){return d.focus()};if(b&&b.then){var f=function(){};b.then(e,f)}else this.setTimeout(e,1)}},b.prototype.handleKeyPress=function(b){this.mouseused_=!1,a.prototype.handleKeyPress.call(this,b)},b.prototype.handleMouseDown=function(a){this.mouseused_=!0},b}(i["default"]);l.prototype.controlText_="Play Video",k["default"].registerComponent("BigPlayButton",l),c["default"]=l},{2:2,5:5}],2:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(3),i=d(h),j=a(5),k=d(j),l=a(86),m=d(l),n=a(88),o=function(a){function b(){return e(this,b),f(this,a.apply(this,arguments))}return g(b,a),b.prototype.createEl=function(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"button",b=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},c=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};b=(0,n.assign)({className:this.buildCSSClass()},b),"button"!==a&&(m["default"].warn("Creating a Button with an HTML element of "+a+" is deprecated; use ClickableComponent instead."),b=(0,n.assign)({tabIndex:0},b),c=(0,n.assign)({role:"button"},c)),c=(0,n.assign)({type:"button","aria-live":"polite"},c);var d=k["default"].prototype.createEl.call(this,a,b,c);return this.createControlTextEl(d),d},b.prototype.addChild=function(a){var b=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},c=this.constructor.name;return m["default"].warn("Adding an actionable (user controllable) child to a Button ("+c+") is not supported; use a ClickableComponent instead."),k["default"].prototype.addChild.call(this,a,b)},b.prototype.enable=function(){a.prototype.enable.call(this),this.el_.removeAttribute("disabled")},b.prototype.disable=function(){a.prototype.disable.call(this),this.el_.setAttribute("disabled","disabled")},b.prototype.handleKeyPress=function(b){32!==b.which&&13!==b.which&&a.prototype.handleKeyPress.call(this,b)},b}(i["default"]);k["default"].registerComponent("Button",o),c["default"]=o},{3:3,5:5,86:86,88:88}],3:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(5),j=e(i),k=a(81),l=d(k),m=a(82),n=d(m),o=a(83),p=d(o),q=a(86),r=e(q),s=a(94),t=e(s),u=a(88),v=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.emitTapEvents(),e.enable(),e}return h(b,a),b.prototype.createEl=function(){var b=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"div",c=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},d=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};c=(0,u.assign)({className:this.buildCSSClass(),tabIndex:0},c),"button"===b&&r["default"].error("Creating a ClickableComponent with an HTML element of "+b+" is not supported; use a Button instead."),d=(0,u.assign)({role:"button","aria-live":"polite"},d),this.tabIndex_=c.tabIndex;var e=a.prototype.createEl.call(this,b,c,d);return this.createControlTextEl(e),e},b.prototype.createControlTextEl=function(a){return this.controlTextEl_=l.createEl("span",{className:"vjs-control-text"}),a&&a.appendChild(this.controlTextEl_),this.controlText(this.controlText_,a),this.controlTextEl_},b.prototype.controlText=function(a){var b=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.el();if(a===undefined)return this.controlText_||"Need Text";var c=this.localize(a);return this.controlText_=a,this.controlTextEl_.innerHTML=c,this.nonIconControl||b.setAttribute("title",c),this},b.prototype.buildCSSClass=function(){return"vjs-control vjs-button "+a.prototype.buildCSSClass.call(this)},b.prototype.enable=function(){return this.removeClass("vjs-disabled"),this.el_.setAttribute("aria-disabled","false"),"undefined"!=typeof this.tabIndex_&&this.el_.setAttribute("tabIndex",this.tabIndex_),this.off(["tap","click"],this.handleClick),this.off("focus",this.handleFocus),this.off("blur",this.handleBlur),this.on(["tap","click"],this.handleClick),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur),this},b.prototype.disable=function(){return this.addClass("vjs-disabled"),this.el_.setAttribute("aria-disabled","true"),"undefined"!=typeof this.tabIndex_&&this.el_.removeAttribute("tabIndex"),this.off(["tap","click"],this.handleClick),this.off("focus",this.handleFocus),this.off("blur",this.handleBlur),this},b.prototype.handleClick=function(a){},b.prototype.handleFocus=function(a){n.on(t["default"],"keydown",p.bind(this,this.handleKeyPress))},b.prototype.handleKeyPress=function(b){32===b.which||13===b.which?(b.preventDefault(),this.handleClick(b)):a.prototype.handleKeyPress&&a.prototype.handleKeyPress.call(this,b)},b.prototype.handleBlur=function(a){n.off(t["default"],"keydown",p.bind(this,this.handleKeyPress))},b}(j["default"]);j["default"].registerComponent("ClickableComponent",v),c["default"]=v},{5:5,81:81,82:82,83:83,86:86,88:88,94:94}],4:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(2),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.controlText(d&&d.controlText||g.localize("Close")),g}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-close-button "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(a){this.trigger({type:"close",bubbles:!1})},b}(i["default"]);k["default"].registerComponent("CloseButton",l),c["default"]=l},{2:2,5:5}],5:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}c.__esModule=!0;var g=a(95),h=e(g),i=a(81),j=d(i),k=a(83),l=d(k),m=a(85),n=d(m),o=a(82),p=d(o),q=a(86),r=e(q),s=a(91),t=e(s),u=a(87),v=e(u),w=function(){function a(b,c,d){if(f(this,a),!b&&this.play?this.player_=b=this:this.player_=b,this.options_=(0,v["default"])({},this.options_),c=this.options_=(0,v["default"])(this.options_,c),this.id_=c.id||c.el&&c.el.id,!this.id_){var e=b&&b.id&&b.id()||"no_player";this.id_=e+"_component_"+n.newGUID()}this.name_=c.name||null,c.el?this.el_=c.el:!1!==c.createEl&&(this.el_=this.createEl()),this.children_=[],this.childIndex_={},this.childNameIndex_={},!1!==c.initChildren&&this.initChildren(),this.ready(d),!1!==c.reportTouchActivity&&this.enableTouchActivity()}return a.prototype.dispose=function(){if(this.trigger({type:"dispose",bubbles:!1}),this.children_)for(var a=this.children_.length-1;a>=0;a--)this.children_[a].dispose&&this.children_[a].dispose();this.children_=null,this.childIndex_=null,this.childNameIndex_=null,this.off(),this.el_.parentNode&&this.el_.parentNode.removeChild(this.el_),j.removeElData(this.el_),this.el_=null},a.prototype.player=function(){return this.player_},a.prototype.options=function(a){return r["default"].warn("this.options() has been deprecated and will be moved to the constructor in 6.0"),a?(this.options_=(0,v["default"])(this.options_,a),this.options_):this.options_},a.prototype.el=function(){return this.el_},a.prototype.createEl=function(a,b,c){return j.createEl(a,b,c)},a.prototype.localize=function(a){var b=this.player_.language&&this.player_.language(),c=this.player_.languages&&this.player_.languages();if(!b||!c)return a;var d=c[b];if(d&&d[a])return d[a];var e=b.split("-")[0],f=c[e];return f&&f[a]?f[a]:a},a.prototype.contentEl=function(){return this.contentEl_||this.el_},a.prototype.id=function(){return this.id_},a.prototype.name=function(){return this.name_},a.prototype.children=function(){return this.children_},a.prototype.getChildById=function(a){return this.childIndex_[a]},a.prototype.getChild=function(a){if(a)return a=(0,t["default"])(a),this.childNameIndex_[a]},a.prototype.addChild=function(b){var c=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},d=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.children_.length,e=void 0,f=void 0;if("string"==typeof b){f=(0,t["default"])(b),c||(c={}),!0===c&&(r["default"].warn("Initializing a child component with `true` is deprecated.Children should be defined in an array when possible, but if necessary use an object instead of `true`."),c={});var g=c.componentClass||f;c.name=f;var h=a.getComponent(g);if(!h)throw new Error("Component "+g+" does not exist");if("function"!=typeof h)return null;e=new h(this.player_||this,c)}else e=b;if(this.children_.splice(d,0,e),"function"==typeof e.id&&(this.childIndex_[e.id()]=e),f=f||e.name&&(0,t["default"])(e.name()),f&&(this.childNameIndex_[f]=e),"function"==typeof e.el&&e.el()){var i=this.contentEl().children,j=i[d]||null;this.contentEl().insertBefore(e.el(),j)}return e},a.prototype.removeChild=function(a){if("string"==typeof a&&(a=this.getChild(a)),a&&this.children_){for(var b=!1,c=this.children_.length-1;c>=0;c--)if(this.children_[c]===a){b=!0,this.children_.splice(c,1);break}if(b){this.childIndex_[a.id()]=null,this.childNameIndex_[a.name()]=null;var d=a.el();d&&d.parentNode===this.contentEl()&&this.contentEl().removeChild(a.el())}}},a.prototype.initChildren=function(){var b=this,c=this.options_.children;if(c){var d=this.options_,e=function(a){var c=a.name,e=a.opts;if(d[c]!==undefined&&(e=d[c]),!1!==e){!0===e&&(e={}),e.playerOptions=b.options_.playerOptions;var f=b.addChild(c,e);f&&(b[c]=f)}},f=void 0,g=a.getComponent("Tech");f=Array.isArray(c)?c:Object.keys(c),f.concat(Object.keys(this.options_).filter(function(a){return!f.some(function(b){return"string"==typeof b?a===b:a===b.name})})).map(function(a){var d=void 0,e=void 0;return"string"==typeof a?(d=a,e=c[d]||b.options_[d]||{}):(d=a.name,e=a),{name:d,opts:e}}).filter(function(b){var c=a.getComponent(b.opts.componentClass||(0,t["default"])(b.name));return c&&!g.isTech(c)}).forEach(e)}},a.prototype.buildCSSClass=function(){return""},a.prototype.on=function(a,b,c){var d=this;if("string"==typeof a||Array.isArray(a))p.on(this.el_,a,l.bind(this,b));else{var e=a,f=b,g=l.bind(this,c),h=function(){return d.off(e,f,g)};h.guid=g.guid,this.on("dispose",h);var i=function(){return d.off("dispose",h)};i.guid=g.guid,a.nodeName?(p.on(e,f,g),p.on(e,"dispose",i)):"function"==typeof a.on&&(e.on(f,g),e.on("dispose",i))}return this},a.prototype.off=function(a,b,c){if(!a||"string"==typeof a||Array.isArray(a))p.off(this.el_,a,b);else{var d=a,e=b,f=l.bind(this,c);this.off("dispose",f),a.nodeName?(p.off(d,e,f),p.off(d,"dispose",f)):(d.off(e,f),d.off("dispose",f))}return this},a.prototype.one=function(a,b,c){var d=this,e=arguments;if("string"==typeof a||Array.isArray(a))p.one(this.el_,a,l.bind(this,b));else{var f=a,g=b,h=l.bind(this,c),i=function j(){d.off(f,g,j),h.apply(null,e)};i.guid=h.guid,this.on(f,g,i)}return this},a.prototype.trigger=function(a,b){return p.trigger(this.el_,a,b),this},a.prototype.ready=function(a){var b=arguments.length>1&&arguments[1]!==undefined&&arguments[1];return a&&(this.isReady_?b?a.call(this):this.setTimeout(a,1):(this.readyQueue_=this.readyQueue_||[],this.readyQueue_.push(a))),this},a.prototype.triggerReady=function(){this.isReady_=!0,this.setTimeout(function(){var a=this.readyQueue_;this.readyQueue_=[],a&&a.length>0&&a.forEach(function(a){a.call(this)},this),this.trigger("ready")},1)},a.prototype.$=function(a,b){return j.$(a,b||this.contentEl())},a.prototype.$$=function(a,b){return j.$$(a,b||this.contentEl())},a.prototype.hasClass=function(a){return j.hasElClass(this.el_,a)},a.prototype.addClass=function(a){return j.addElClass(this.el_,a),this},a.prototype.removeClass=function(a){return j.removeElClass(this.el_,a),this},a.prototype.toggleClass=function(a,b){return j.toggleElClass(this.el_,a,b),this},a.prototype.show=function(){return this.removeClass("vjs-hidden"),this},a.prototype.hide=function(){return this.addClass("vjs-hidden"),this},a.prototype.lockShowing=function(){return this.addClass("vjs-lock-showing"),this},a.prototype.unlockShowing=function(){return this.removeClass("vjs-lock-showing"),this},a.prototype.getAttribute=function(a){return j.getAttribute(this.el_,a)},a.prototype.setAttribute=function(a,b){return j.setAttribute(this.el_,a,b),this},a.prototype.removeAttribute=function(a){return j.removeAttribute(this.el_,a),this},a.prototype.width=function(a,b){return this.dimension("width",a,b)},a.prototype.height=function(a,b){return this.dimension("height",a,b)},a.prototype.dimensions=function(a,b){return this.width(a,!0).height(b)},a.prototype.dimension=function(a,b,c){if(b!==undefined)return null!==b&&b===b||(b=0),-1!==(""+b).indexOf("%")||-1!==(""+b).indexOf("px")?this.el_.style[a]=b:this.el_.style[a]="auto"===b?"":b+"px",c||this.trigger("resize"),this;if(!this.el_)return 0;var d=this.el_.style[a],e=d.indexOf("px");return-1!==e?parseInt(d.slice(0,e),10):parseInt(this.el_["offset"+(0,t["default"])(a)],10)},a.prototype.currentDimension=function(a){var b=0;if("width"!==a&&"height"!==a)throw new Error("currentDimension only accepts width or height value");if("function"==typeof h["default"].getComputedStyle){var c=h["default"].getComputedStyle(this.el_);b=c.getPropertyValue(a)||c[a]}if(0===(b=parseFloat(b))){var d="offset"+(0,t["default"])(a);b=this.el_[d]}return b},a.prototype.currentDimensions=function(){return{width:this.currentDimension("width"),height:this.currentDimension("height")}},a.prototype.currentWidth=function(){return this.currentDimension("width")},a.prototype.currentHeight=function(){return this.currentDimension("height")},a.prototype.focus=function(){this.el_.focus()},a.prototype.blur=function(){this.el_.blur()},a.prototype.emitTapEvents=function(){var a=0,b=null,c=void 0;this.on("touchstart",function(d){1===d.touches.length&&(b={pageX:d.touches[0].pageX,pageY:d.touches[0].pageY},a=(new Date).getTime(),c=!0)}),this.on("touchmove",function(a){if(a.touches.length>1)c=!1;else if(b){var d=a.touches[0].pageX-b.pageX,e=a.touches[0].pageY-b.pageY,f=Math.sqrt(d*d+e*e);f>10&&(c=!1)}});var d=function(){c=!1};this.on("touchleave",d),this.on("touchcancel",d),this.on("touchend",function(d){if(b=null,!0===c){(new Date).getTime()-a<200&&(d.preventDefault(),this.trigger("tap"))}})},a.prototype.enableTouchActivity=function(){if(this.player()&&this.player().reportUserActivity){var a=l.bind(this.player(),this.player().reportUserActivity),b=void 0;this.on("touchstart",function(){a(),this.clearInterval(b),b=this.setInterval(a,250)});var c=function(c){a(),this.clearInterval(b)};this.on("touchmove",a),this.on("touchend",c),this.on("touchcancel",c)}},a.prototype.setTimeout=function(a,b){a=l.bind(this,a);var c=h["default"].setTimeout(a,b),d=function(){this.clearTimeout(c)};return d.guid="vjs-timeout-"+c,this.on("dispose",d),c},a.prototype.clearTimeout=function(a){h["default"].clearTimeout(a);var b=function(){};return b.guid="vjs-timeout-"+a,this.off("dispose",b),a},a.prototype.setInterval=function(a,b){a=l.bind(this,a);var c=h["default"].setInterval(a,b),d=function(){this.clearInterval(c)};return d.guid="vjs-interval-"+c,this.on("dispose",d),c},a.prototype.clearInterval=function(a){h["default"].clearInterval(a);var b=function(){};return b.guid="vjs-interval-"+a,this.off("dispose",b),a},a.registerComponent=function(b,c){if(b){if(b=(0,t["default"])(b),a.components_||(a.components_={}),"Player"===b&&a.components_[b]){var d=a.components_[b];if(d.players&&Object.keys(d.players).length>0&&Object.keys(d.players).map(function(a){return d.players[a]}).every(Boolean))throw new Error("Can not register Player component after player has been created")}return a.components_[b]=c,c}},a.getComponent=function(b){if(b)return b=(0,t["default"])(b),a.components_&&a.components_[b]?a.components_[b]:h["default"]&&h["default"].videojs&&h["default"].videojs[b]?(r["default"].warn("The "+b+" component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)"),h["default"].videojs[b]):void 0},a.extend=function(b){b=b||{},r["default"].warn("Component.extend({}) has been deprecated, use videojs.extend(Component, {}) instead");var c=b.init||b.init||this.prototype.init||this.prototype.init||function(){},d=function(){c.apply(this,arguments)};d.prototype=Object.create(this.prototype),d.prototype.constructor=d,d.extend=a.extend;for(var e in b)b.hasOwnProperty(e)&&(d.prototype[e]=b[e]);return d},a}();w.registerComponent("Component",w),c["default"]=w},{81:81,82:82,83:83,85:85,86:86,87:87,91:91,95:95}],6:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(36),i=d(h),j=a(5),k=d(j),l=a(7),m=d(l),n=function(a){function b(c){var d=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};e(this,b),d.tracks=c.audioTracks&&c.audioTracks();var g=f(this,a.call(this,c,d));return g.el_.setAttribute("aria-label","Audio Menu"),g}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-audio-button "+a.prototype.buildCSSClass.call(this)},b.prototype.createItems=function(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];this.hideThreshold_=1;var b=this.player_.audioTracks&&this.player_.audioTracks();if(!b)return a;for(var c=0;c<b.length;c++){var d=b[c];a.push(new m["default"](this.player_,{track:d,selectable:!0}))}return a},b}(i["default"]);n.prototype.controlText_="Audio Track",k["default"].registerComponent("AudioTrackButton",n),c["default"]=n},{36:36,5:5,7:7}],7:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(48),i=d(h),j=a(5),k=d(j),l=a(83),m=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(l),n=function(a){function b(c,d){e(this,b);var g=d.track,h=c.audioTracks();d.label=g.label||g.language||"Unknown",d.selected=g.enabled;var i=f(this,a.call(this,c,d));if(i.track=g,h){var j=m.bind(i,i.handleTracksChange);h.addEventListener("change",j),i.on("dispose",function(){h.removeEventListener("change",j)})}return i}return g(b,a),b.prototype.handleClick=function(b){var c=this.player_.audioTracks();if(a.prototype.handleClick.call(this,b),c)for(var d=0;d<c.length;d++){var e=c[d];e.enabled=e===this.track}},b.prototype.handleTracksChange=function(a){this.selected(this.track.enabled)},b}(i["default"]);k["default"].registerComponent("AudioTrackMenuItem",n),c["default"]=n},{48:48,5:5,83:83}],8:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g);a(12),a(32),a(33),a(35),a(34),a(10),a(18),a(9),a(38),a(40),a(11),a(25),a(27),a(29),a(24),a(6),a(13),a(21);var i=function(a){function b(){return d(this,b),e(this,a.apply(this,arguments))}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-control-bar",dir:"ltr"},{role:"group"})},b}(h["default"]);i.prototype.options_={children:["playToggle","volumeMenuButton","currentTimeDisplay","timeDivider","durationDisplay","progressControl","liveDisplay","remainingTimeDisplay","customControlSpacer","playbackRateMenuButton","chaptersButton","descriptionsButton","subtitlesButton","captionsButton","audioTrackButton","fullscreenToggle"]},h["default"].registerComponent("ControlBar",i),c["default"]=i},{10:10,11:11,12:12,13:13,18:18,21:21,24:24,25:25,27:27,29:29,32:32,33:33,34:34,35:35,38:38,40:40,5:5,6:6,9:9}],9:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(2),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"fullscreenchange",g.handleFullscreenChange),g}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-fullscreen-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleFullscreenChange=function(a){this.player_.isFullscreen()?this.controlText("Non-Fullscreen"):this.controlText("Fullscreen")},b.prototype.handleClick=function(a){this.player_.isFullscreen()?this.player_.exitFullscreen():this.player_.requestFullscreen()},b}(i["default"]);l.prototype.controlText_="Fullscreen",k["default"].registerComponent("FullscreenToggle",l),c["default"]=l},{2:2,5:5}],10:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g),i=a(81),j=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(i),k=function(a){function b(c,f){d(this,b);var g=e(this,a.call(this,c,f));return g.updateShowing(),g.on(g.player(),"durationchange",g.updateShowing),g}return f(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-live-control vjs-control"});return this.contentEl_=j.createEl("div",{className:"vjs-live-display",innerHTML:'<span class="vjs-control-text">'+this.localize("Stream Type")+"</span>"+this.localize("LIVE")},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateShowing=function(a){this.player().duration()===Infinity?this.show():this.hide()},b}(h["default"]);h["default"].registerComponent("LiveDisplay",k),c["default"]=k},{5:5,81:81}],11:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(2),i=d(h),j=a(5),k=d(j),l=a(81),m=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(l),n=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"volumechange",g.update),c.tech_&&!1===c.tech_.featuresVolumeControl&&g.addClass("vjs-hidden"),g.on(c,"loadstart",function(){this.update(),!1===c.tech_.featuresVolumeControl?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}),g}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-mute-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(a){this.player_.muted(!this.player_.muted())},b.prototype.update=function(a){var b=this.player_.volume(),c=3;this.player_.muted()?c=0:b<.33?c=1:b<.67&&(c=2);var d=this.player_.muted()?"Unmute":"Mute";this.controlText()!==d&&this.controlText(d);for(var e=0;e<4;e++)m.removeElClass(this.el_,"vjs-vol-"+e);m.addElClass(this.el_,"vjs-vol-"+c)},b}(i["default"]);n.prototype.controlText_="Mute",k["default"].registerComponent("MuteToggle",n),c["default"]=n},{2:2,5:5,81:81}],12:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(2),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"play",g.handlePlay),g.on(c,"pause",g.handlePause),g}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-play-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(a){this.player_.paused()?this.player_.play():this.player_.pause()},b.prototype.handlePlay=function(a){this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.controlText("Pause")},b.prototype.handlePause=function(a){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.controlText("Play")},b}(i["default"]);l.prototype.controlText_="Play",k["default"].registerComponent("PlayToggle",l),c["default"]=l},{2:2,5:5}],13:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(47),i=d(h),j=a(49),k=d(j),l=a(14),m=d(l),n=a(5),o=d(n),p=a(81),q=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(p),r=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.updateVisibility(),g.updateLabel(),g.on(c,"loadstart",g.updateVisibility),g.on(c,"ratechange",g.updateLabel),g}
13
- return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this);return this.labelEl_=q.createEl("div",{className:"vjs-playback-rate-value",innerHTML:1}),b.appendChild(this.labelEl_),b},b.prototype.buildCSSClass=function(){return"vjs-playback-rate "+a.prototype.buildCSSClass.call(this)},b.prototype.createMenu=function(){var a=new k["default"](this.player()),b=this.playbackRates();if(b)for(var c=b.length-1;c>=0;c--)a.addChild(new m["default"](this.player(),{rate:b[c]+"x"}));return a},b.prototype.updateARIAAttributes=function(){this.el().setAttribute("aria-valuenow",this.player().playbackRate())},b.prototype.handleClick=function(a){for(var b=this.player().playbackRate(),c=this.playbackRates(),d=c[0],e=0;e<c.length;e++)if(c[e]>b){d=c[e];break}this.player().playbackRate(d)},b.prototype.playbackRates=function(){return this.options_.playbackRates||this.options_.playerOptions&&this.options_.playerOptions.playbackRates},b.prototype.playbackRateSupported=function(){return this.player().tech_&&this.player().tech_.featuresPlaybackRate&&this.playbackRates()&&this.playbackRates().length>0},b.prototype.updateVisibility=function(a){this.playbackRateSupported()?this.removeClass("vjs-hidden"):this.addClass("vjs-hidden")},b.prototype.updateLabel=function(a){this.playbackRateSupported()&&(this.labelEl_.innerHTML=this.player().playbackRate()+"x")},b}(i["default"]);r.prototype.controlText_="Playback Rate",o["default"].registerComponent("PlaybackRateMenuButton",r),c["default"]=r},{14:14,47:47,49:49,5:5,81:81}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(48),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b);var g=d.rate,h=parseFloat(g,10);d.label=g,d.selected=1===h,d.selectable=!0;var i=f(this,a.call(this,c,d));return i.label=g,i.rate=h,i.on(c,"ratechange",i.update),i}return g(b,a),b.prototype.handleClick=function(b){a.prototype.handleClick.call(this),this.player().playbackRate(this.rate)},b.prototype.update=function(a){this.selected(this.player().playbackRate()===this.rate)},b}(i["default"]);l.prototype.contentElType="button",k["default"].registerComponent("PlaybackRateMenuItem",l),c["default"]=l},{48:48,5:5}],15:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g),i=a(81),j=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(i),k=function(a){function b(c,f){d(this,b);var g=e(this,a.call(this,c,f));return g.partEls_=[],g.on(c,"progress",g.update),g}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-load-progress",innerHTML:'<span class="vjs-control-text"><span>'+this.localize("Loaded")+"</span>: 0%</span>"})},b.prototype.update=function(a){var b=this.player_.buffered(),c=this.player_.duration(),d=this.player_.bufferedEnd(),e=this.partEls_,f=function(a,b){var c=a/b||0;return 100*(c>=1?1:c)+"%"};this.el_.style.width=f(d,c);for(var g=0;g<b.length;g++){var h=b.start(g),i=b.end(g),k=e[g];k||(k=this.el_.appendChild(j.createEl()),e[g]=k),k.style.left=f(h,d),k.style.width=f(i-h,d)}for(var l=e.length;l>b.length;l--)this.el_.removeChild(e[l-1]);e.length=b.length},b}(h["default"]);h["default"].registerComponent("LoadProgressBar",k),c["default"]=k},{5:5,81:81}],16:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(5),j=e(i),k=a(81),l=d(k),m=a(83),n=d(m),o=a(84),p=e(o),q=a(80),r=e(q),s=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return d.playerOptions&&d.playerOptions.controlBar&&d.playerOptions.controlBar.progressControl&&d.playerOptions.controlBar.progressControl.keepTooltipsInside&&(e.keepTooltipsInside=d.playerOptions.controlBar.progressControl.keepTooltipsInside),e.keepTooltipsInside&&(e.tooltip=l.createEl("div",{className:"vjs-time-tooltip"}),e.el().appendChild(e.tooltip),e.addClass("vjs-keep-tooltips-inside")),e.update(0,0),c.on("ready",function(){e.on(c.controlBar.progressControl.el(),"mousemove",n.throttle(n.bind(e,e.handleMouseMove),25))}),e}return h(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-mouse-display"})},b.prototype.handleMouseMove=function(a){var b=this.player_.duration(),c=this.calculateDistance(a)*b,d=a.pageX-l.findElPosition(this.el().parentNode).left;this.update(c,d)},b.prototype.update=function(a,b){var c=(0,p["default"])(a,this.player_.duration());if(this.el().style.left=b+"px",this.el().setAttribute("data-current-time",c),this.keepTooltipsInside){var d=this.clampPosition_(b),e=b-d+1,f=parseFloat((0,r["default"])(this.tooltip,"width")),g=f/2;this.tooltip.innerHTML=c,this.tooltip.style.right="-"+(g-e)+"px"}},b.prototype.calculateDistance=function(a){return l.getPointerPosition(this.el().parentNode,a).x},b.prototype.clampPosition_=function(a){if(!this.keepTooltipsInside)return a;var b=parseFloat((0,r["default"])(this.player().el(),"width")),c=parseFloat((0,r["default"])(this.tooltip,"width")),d=c/2,e=a;return a<d?e=Math.ceil(d):a>b-d&&(e=Math.floor(b-d)),e},b}(j["default"]);j["default"].registerComponent("MouseTimeDisplay",s),c["default"]=s},{5:5,80:80,81:81,83:83,84:84}],17:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=a(83),k=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(j),l=a(84),m=d(l),n=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.updateDataAttr(),g.on(c,"timeupdate",g.updateDataAttr),c.ready(k.bind(g,g.updateDataAttr)),d.playerOptions&&d.playerOptions.controlBar&&d.playerOptions.controlBar.progressControl&&d.playerOptions.controlBar.progressControl.keepTooltipsInside&&(g.keepTooltipsInside=d.playerOptions.controlBar.progressControl.keepTooltipsInside),g.keepTooltipsInside&&g.addClass("vjs-keep-tooltips-inside"),g}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-play-progress vjs-slider-bar",innerHTML:'<span class="vjs-control-text"><span>'+this.localize("Progress")+"</span>: 0%</span>"})},b.prototype.updateDataAttr=function(a){var b=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("data-current-time",(0,m["default"])(b,this.player_.duration()))},b}(i["default"]);i["default"].registerComponent("PlayProgressBar",n),c["default"]=n},{5:5,83:83,84:84}],18:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g);a(19),a(16);var i=function(a){function b(){return d(this,b),e(this,a.apply(this,arguments))}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-control vjs-control"})},b}(h["default"]);i.prototype.options_={children:["seekBar"]},h["default"].registerComponent("ProgressControl",i),c["default"]=i},{16:16,19:19,5:5}],19:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(57),i=d(h),j=a(5),k=d(j),l=a(83),m=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(l),n=a(84),o=d(n),p=a(80),q=d(p);a(15),a(17),a(20);var r=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"timeupdate",g.updateProgress),g.on(c,"ended",g.updateProgress),c.ready(m.bind(g,g.updateProgress)),d.playerOptions&&d.playerOptions.controlBar&&d.playerOptions.controlBar.progressControl&&d.playerOptions.controlBar.progressControl.keepTooltipsInside&&(g.keepTooltipsInside=d.playerOptions.controlBar.progressControl.keepTooltipsInside),g.keepTooltipsInside&&(g.tooltipProgressBar=g.addChild("TooltipProgressBar")),g}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-holder"},{"aria-label":"progress bar"})},b.prototype.updateProgress=function(a){if(this.updateAriaAttributes(this.el_),this.keepTooltipsInside){this.updateAriaAttributes(this.tooltipProgressBar.el_),this.tooltipProgressBar.el_.style.width=this.bar.el_.style.width;var b=parseFloat((0,q["default"])(this.player().el(),"width")),c=parseFloat((0,q["default"])(this.tooltipProgressBar.tooltip,"width")),d=this.tooltipProgressBar.el().style;d.maxWidth=Math.floor(b-c/2)+"px",d.minWidth=Math.ceil(c/2)+"px",d.right="-"+c/2+"px"}},b.prototype.updateAriaAttributes=function(a){var b=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();a.setAttribute("aria-valuenow",(100*this.getPercent()).toFixed(2)),a.setAttribute("aria-valuetext",(0,o["default"])(b,this.player_.duration()))},b.prototype.getPercent=function(){var a=this.player_.currentTime()/this.player_.duration();return a>=1?1:a},b.prototype.handleMouseDown=function(b){this.player_.scrubbing(!0),this.videoWasPlaying=!this.player_.paused(),this.player_.pause(),a.prototype.handleMouseDown.call(this,b)},b.prototype.handleMouseMove=function(a){var b=this.calculateDistance(a)*this.player_.duration();b===this.player_.duration()&&(b-=.1),this.player_.currentTime(b)},b.prototype.handleMouseUp=function(b){a.prototype.handleMouseUp.call(this,b),this.player_.scrubbing(!1),this.videoWasPlaying&&this.player_.play()},b.prototype.stepForward=function(){this.player_.currentTime(this.player_.currentTime()+5)},b.prototype.stepBack=function(){this.player_.currentTime(this.player_.currentTime()-5)},b}(i["default"]);r.prototype.options_={children:["loadProgressBar","mouseTimeDisplay","playProgressBar"],barName:"playProgressBar"},r.prototype.playerEvent="timeupdate",k["default"].registerComponent("SeekBar",r),c["default"]=r},{15:15,17:17,20:20,5:5,57:57,80:80,83:83,84:84}],20:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=a(83),k=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(j),l=a(84),m=d(l),n=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.updateDataAttr(),g.on(c,"timeupdate",g.updateDataAttr),c.ready(k.bind(g,g.updateDataAttr)),g}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-tooltip-progress-bar vjs-slider-bar",innerHTML:'<div class="vjs-time-tooltip"></div>\n <span class="vjs-control-text"><span>'+this.localize("Progress")+"</span>: 0%</span>"});return this.tooltip=b.querySelector(".vjs-time-tooltip"),b},b.prototype.updateDataAttr=function(a){var b=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime(),c=(0,m["default"])(b,this.player_.duration());this.el_.setAttribute("data-current-time",c),this.tooltip.innerHTML=c},b}(i["default"]);i["default"].registerComponent("TooltipProgressBar",n),c["default"]=n},{5:5,83:83,84:84}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(22),i=d(h),j=a(5),k=d(j),l=function(a){function b(){return e(this,b),f(this,a.apply(this,arguments))}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-custom-control-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,{className:this.buildCSSClass()});return b.innerHTML="&nbsp;",b},b}(i["default"]);k["default"].registerComponent("CustomControlSpacer",l),c["default"]=l},{22:22,5:5}],22:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g),i=function(a){function b(){return d(this,b),e(this,a.apply(this,arguments))}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},b}(h["default"]);h["default"].registerComponent("Spacer",i),c["default"]=i},{5:5}],23:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(31),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b),d.track={player:c,kind:d.kind,label:d.kind+" settings",selectable:!1,"default":!1,mode:"disabled"},d.selectable=!1;var g=f(this,a.call(this,c,d));return g.addClass("vjs-texttrack-settings"),g.controlText(", opens "+d.kind+" settings dialog"),g}return g(b,a),b.prototype.handleClick=function(a){this.player().getChild("textTrackSettings").show(),this.player().getChild("textTrackSettings").el_.focus()},b}(i["default"]);k["default"].registerComponent("CaptionSettingsMenuItem",l),c["default"]=l},{31:31,5:5}],24:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(30),i=d(h),j=a(5),k=d(j),l=a(23),m=d(l),n=function(a){function b(c,d,g){e(this,b);var h=f(this,a.call(this,c,d,g));return h.el_.setAttribute("aria-label","Captions Menu"),h}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-captions-button "+a.prototype.buildCSSClass.call(this)},b.prototype.createItems=function(){var b=[];return this.player().tech_&&this.player().tech_.featuresNativeTextTracks||(b.push(new m["default"](this.player_,{kind:this.kind_})),this.hideThreshold_+=1),a.prototype.createItems.call(this,b)},b}(i["default"]);n.prototype.kind_="captions",n.prototype.controlText_="Captions",k["default"].registerComponent("CaptionsButton",n),c["default"]=n},{23:23,30:30,5:5}],25:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(30),i=d(h),j=a(5),k=d(j),l=a(26),m=d(l),n=a(91),o=d(n),p=function(a){function b(c,d,g){e(this,b);var h=f(this,a.call(this,c,d,g));return h.el_.setAttribute("aria-label","Chapters Menu"),h}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-chapters-button "+a.prototype.buildCSSClass.call(this)},b.prototype.update=function(b){this.track_&&(!b||"addtrack"!==b.type&&"removetrack"!==b.type)||this.setTrack(this.findChaptersTrack()),a.prototype.update.call(this)},b.prototype.setTrack=function(a){if(this.track_!==a){if(this.updateHandler_||(this.updateHandler_=this.update.bind(this)),this.track_){var b=this.player_.remoteTextTrackEls().getTrackElementByTrack_(this.track_);b&&b.removeEventListener("load",this.updateHandler_),this.track_=null}if(this.track_=a,this.track_){this.track_.mode="hidden";var c=this.player_.remoteTextTrackEls().getTrackElementByTrack_(this.track_);c&&c.addEventListener("load",this.updateHandler_)}}},b.prototype.findChaptersTrack=function(){for(var a=this.player_.textTracks()||[],b=a.length-1;b>=0;b--){var c=a[b];if(c.kind===this.kind_)return c}},b.prototype.getMenuCaption=function(){return this.track_&&this.track_.label?this.track_.label:this.localize((0,o["default"])(this.kind_))},b.prototype.createMenu=function(){return this.options_.title=this.getMenuCaption(),a.prototype.createMenu.call(this)},b.prototype.createItems=function(){var a=[];if(!this.track_)return a;var b=this.track_.cues;if(!b)return a;for(var c=0,d=b.length;c<d;c++){var e=b[c],f=new m["default"](this.player_,{track:this.track_,cue:e});a.push(f)}return a},b}(i["default"]);p.prototype.kind_="chapters",p.prototype.controlText_="Chapters",k["default"].registerComponent("ChaptersButton",p),c["default"]=p},{26:26,30:30,5:5,91:91}],26:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(48),i=d(h),j=a(5),k=d(j),l=a(83),m=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(l),n=function(a){function b(c,d){e(this,b);var g=d.track,h=d.cue,i=c.currentTime();d.selectable=!0,d.label=h.text,d.selected=h.startTime<=i&&i<h.endTime;var j=f(this,a.call(this,c,d));return j.track=g,j.cue=h,g.addEventListener("cuechange",m.bind(j,j.update)),j}return g(b,a),b.prototype.handleClick=function(b){a.prototype.handleClick.call(this),this.player_.currentTime(this.cue.startTime),this.update(this.cue.startTime)},b.prototype.update=function(a){var b=this.cue,c=this.player_.currentTime();this.selected(b.startTime<=c&&c<b.endTime)},b}(i["default"]);k["default"].registerComponent("ChaptersTrackMenuItem",n),c["default"]=n},{48:48,5:5,83:83}],27:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(30),i=d(h),j=a(5),k=d(j),l=a(83),m=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(l),n=function(a){function b(c,d,g){e(this,b);var h=f(this,a.call(this,c,d,g));h.el_.setAttribute("aria-label","Descriptions Menu");var i=c.textTracks();if(i){var j=m.bind(h,h.handleTracksChange);i.addEventListener("change",j),h.on("dispose",function(){i.removeEventListener("change",j)})}return h}return g(b,a),b.prototype.handleTracksChange=function(a){for(var b=this.player().textTracks(),c=!1,d=0,e=b.length;d<e;d++){var f=b[d];if(f.kind!==this.kind_&&"showing"===f.mode){c=!0;break}}c?this.disable():this.enable()},b.prototype.buildCSSClass=function(){return"vjs-descriptions-button "+a.prototype.buildCSSClass.call(this)},b}(i["default"]);n.prototype.kind_="descriptions",n.prototype.controlText_="Descriptions",k["default"].registerComponent("DescriptionsButton",n),c["default"]=n},{30:30,5:5,83:83}],28:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(31),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b),d.track={player:c,kind:d.kind,label:d.kind+" off","default":!1,mode:"disabled"},d.selectable=!0;var g=f(this,a.call(this,c,d));return g.selected(!0),g}return g(b,a),b.prototype.handleTracksChange=function(a){for(var b=this.player().textTracks(),c=!0,d=0,e=b.length;d<e;d++){var f=b[d];if(f.kind===this.track.kind&&"showing"===f.mode){c=!1;break}}this.selected(c)},b}(i["default"]);k["default"].registerComponent("OffTextTrackMenuItem",l),c["default"]=l},{31:31,5:5}],29:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(30),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d,g){e(this,b);var h=f(this,a.call(this,c,d,g));return h.el_.setAttribute("aria-label","Subtitles Menu"),h}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-subtitles-button "+a.prototype.buildCSSClass.call(this)},b}(i["default"]);l.prototype.kind_="subtitles",l.prototype.controlText_="Subtitles",k["default"].registerComponent("SubtitlesButton",l),c["default"]=l},{30:30,5:5}],30:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(36),i=d(h),j=a(5),k=d(j),l=a(31),m=d(l),n=a(28),o=d(n),p=function(a){function b(c){var d=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};return e(this,b),d.tracks=c.textTracks(),f(this,a.call(this,c,d))}return g(b,a),b.prototype.createItems=function(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];a.push(new o["default"](this.player_,{kind:this.kind_})),this.hideThreshold_+=1;var b=this.player_.textTracks();if(!b)return a;for(var c=0;c<b.length;c++){var d=b[c];d.kind===this.kind_&&a.push(new m["default"](this.player_,{track:d,selectable:!0}))}return a},b}(i["default"]);k["default"].registerComponent("TextTrackButton",p),c["default"]=p},{28:28,31:31,36:36,5:5}],31:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},i=a(48),j=d(i),k=a(5),l=d(k),m=a(83),n=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(m),o=a(95),p=d(o),q=a(94),r=d(q),s=function(a){function b(c,d){e(this,b);var g=d.track,i=c.textTracks();d.label=g.label||g.language||"Unknown",d.selected=g["default"]||"showing"===g.mode;var j=f(this,a.call(this,c,d));if(j.track=g,i){var k=n.bind(j,j.handleTracksChange);c.on(["loadstart","texttrackchange"],k),i.addEventListener("change",k),j.on("dispose",function(){i.removeEventListener("change",k)})}if(i&&i.onchange===undefined){var l=void 0;j.on(["tap","click"],function(){if("object"!==h(p["default"].Event))try{l=new p["default"].Event("change")}catch(a){}l||(l=r["default"].createEvent("Event"),l.initEvent("change",!0,!0)),i.dispatchEvent(l)})}return j}return g(b,a),b.prototype.handleClick=function(b){var c=this.track.kind,d=this.player_.textTracks();if(a.prototype.handleClick.call(this,b),d)for(var e=0;e<d.length;e++){var f=d[e];f.kind===c&&(f===this.track?"showing"!==f.mode&&(f.mode="showing"):"disabled"!==f.mode&&(f.mode="disabled"))}},b.prototype.handleTracksChange=function(a){this.selected("showing"===this.track.mode)},b}(j["default"]);l["default"].registerComponent("TextTrackMenuItem",s),c["default"]=s},{48:48,5:5,83:83,94:94,95:95}],32:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){
14
- if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=a(81),k=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(j),l=a(84),m=d(l),n=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"timeupdate",g.updateContent),g}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-current-time vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-current-time-display",innerHTML:'<span class="vjs-control-text">Current Time </span>0:00'},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(a){var b=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime(),c=this.localize("Current Time"),d=(0,m["default"])(b,this.player_.duration());d!==this.formattedTime_&&(this.formattedTime_=d,this.contentEl_.innerHTML='<span class="vjs-control-text">'+c+"</span> "+d)},b}(i["default"]);i["default"].registerComponent("CurrentTimeDisplay",n),c["default"]=n},{5:5,81:81,84:84}],33:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=a(81),k=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(j),l=a(84),m=d(l),n=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"durationchange",g.updateContent),g.on(c,"timeupdate",g.updateContent),g.on(c,"loadedmetadata",g.updateContent),g}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-duration vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-duration-display",innerHTML:'<span class="vjs-control-text">'+this.localize("Duration Time")+"</span> 0:00"},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(a){var b=this.player_.duration();if(b&&this.duration_!==b){this.duration_=b;var c=this.localize("Duration Time"),d=(0,m["default"])(b);this.contentEl_.innerHTML='<span class="vjs-control-text">'+c+"</span> "+d}},b}(i["default"]);i["default"].registerComponent("DurationDisplay",n),c["default"]=n},{5:5,81:81,84:84}],34:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=a(81),k=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(j),l=a(84),m=d(l),n=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"timeupdate",g.updateContent),g.on(c,"durationchange",g.updateContent),g}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-remaining-time vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-remaining-time-display",innerHTML:'<span class="vjs-control-text">'+this.localize("Remaining Time")+"</span> -0:00"},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(a){if(this.player_.duration()){var b=this.localize("Remaining Time"),c=(0,m["default"])(this.player_.remainingTime());c!==this.formattedTime_&&(this.formattedTime_=c,this.contentEl_.innerHTML='<span class="vjs-control-text">'+b+"</span> -"+c)}},b}(i["default"]);i["default"].registerComponent("RemainingTimeDisplay",n),c["default"]=n},{5:5,81:81,84:84}],35:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g),i=function(a){function b(){return d(this,b),e(this,a.apply(this,arguments))}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-time-control vjs-time-divider",innerHTML:"<div><span>/</span></div>"})},b}(h["default"]);h["default"].registerComponent("TimeDivider",i),c["default"]=i},{5:5}],36:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(47),i=d(h),j=a(5),k=d(j),l=a(83),m=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(l),n=function(a){function b(c,d){e(this,b);var g=d.tracks,h=f(this,a.call(this,c,d));if(h.items.length<=1&&h.hide(),!g)return f(h);var i=m.bind(h,h.update);return g.addEventListener("removetrack",i),g.addEventListener("addtrack",i),h.player_.on("dispose",function(){g.removeEventListener("removetrack",i),g.removeEventListener("addtrack",i)}),h}return g(b,a),b}(i["default"]);k["default"].registerComponent("TrackButton",n),c["default"]=n},{47:47,5:5,83:83}],37:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(57),i=d(h),j=a(5),k=d(j),l=a(83),m=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(l);a(39);var n=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"volumechange",g.updateARIAAttributes),c.ready(m.bind(g,g.updateARIAAttributes)),g}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-bar vjs-slider-bar"},{"aria-label":"volume level"})},b.prototype.handleMouseMove=function(a){this.checkMuted(),this.player_.volume(this.calculateDistance(a))},b.prototype.checkMuted=function(){this.player_.muted()&&this.player_.muted(!1)},b.prototype.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},b.prototype.stepForward=function(){this.checkMuted(),this.player_.volume(this.player_.volume()+.1)},b.prototype.stepBack=function(){this.checkMuted(),this.player_.volume(this.player_.volume()-.1)},b.prototype.updateARIAAttributes=function(a){var b=(100*this.player_.volume()).toFixed(2);this.el_.setAttribute("aria-valuenow",b),this.el_.setAttribute("aria-valuetext",b+"%")},b}(i["default"]);n.prototype.options_={children:["volumeLevel"],barName:"volumeLevel"},n.prototype.playerEvent="volumechange",k["default"].registerComponent("VolumeBar",n),c["default"]=n},{39:39,5:5,57:57,83:83}],38:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g);a(37);var i=function(a){function b(c,f){d(this,b);var g=e(this,a.call(this,c,f));return c.tech_&&!1===c.tech_.featuresVolumeControl&&g.addClass("vjs-hidden"),g.on(c,"loadstart",function(){!1===c.tech_.featuresVolumeControl?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}),g}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-control vjs-control"})},b}(h["default"]);i.prototype.options_={children:["volumeBar"]},h["default"].registerComponent("VolumeControl",i),c["default"]=i},{37:37,5:5}],39:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g),i=function(a){function b(){return d(this,b),e(this,a.apply(this,arguments))}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-level",innerHTML:'<span class="vjs-control-text"></span>'})},b}(h["default"]);h["default"].registerComponent("VolumeLevel",i),c["default"]=i},{5:5}],40:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(83),i=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(h),j=a(5),k=d(j),l=a(54),m=d(l),n=a(53),o=d(n),p=a(11),q=d(p),r=a(37),s=d(r),t=function(a){function b(c){function d(){c.tech_&&!1===c.tech_.featuresVolumeControl?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}var g=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};e(this,b),g.inline===undefined&&(g.inline=!0),g.vertical===undefined&&(g.inline?g.vertical=!1:g.vertical=!0),g.volumeBar=g.volumeBar||{},g.volumeBar.vertical=!!g.vertical;var h=f(this,a.call(this,c,g));return h.on(c,"volumechange",h.volumeUpdate),h.on(c,"loadstart",h.volumeUpdate),d.call(h),h.on(c,"loadstart",d),h.on(h.volumeBar,["slideractive","focus"],function(){this.addClass("vjs-slider-active")}),h.on(h.volumeBar,["sliderinactive","blur"],function(){this.removeClass("vjs-slider-active")}),h.on(h.volumeBar,["focus"],function(){this.addClass("vjs-lock-showing")}),h.on(h.volumeBar,["blur"],function(){this.removeClass("vjs-lock-showing")}),h}return g(b,a),b.prototype.buildCSSClass=function(){var b="";return b=this.options_.vertical?"vjs-volume-menu-button-vertical":"vjs-volume-menu-button-horizontal","vjs-volume-menu-button "+a.prototype.buildCSSClass.call(this)+" "+b},b.prototype.createPopup=function(){var a=new m["default"](this.player_,{contentElType:"div"}),b=new s["default"](this.player_,this.options_.volumeBar);return a.addChild(b),this.menuContent=a,this.volumeBar=b,this.attachVolumeBarEvents(),a},b.prototype.handleClick=function(b){q["default"].prototype.handleClick.call(this),a.prototype.handleClick.call(this)},b.prototype.attachVolumeBarEvents=function(){this.menuContent.on(["mousedown","touchdown"],i.bind(this,this.handleMouseDown))},b.prototype.handleMouseDown=function(a){this.on(["mousemove","touchmove"],i.bind(this.volumeBar,this.volumeBar.handleMouseMove)),this.on(this.el_.ownerDocument,["mouseup","touchend"],this.handleMouseUp)},b.prototype.handleMouseUp=function(a){this.off(["mousemove","touchmove"],i.bind(this.volumeBar,this.volumeBar.handleMouseMove))},b}(o["default"]);t.prototype.volumeUpdate=q["default"].prototype.update,t.prototype.controlText_="Mute",k["default"].registerComponent("VolumeMenuButton",t),c["default"]=t},{11:11,37:37,5:5,53:53,54:54,83:83}],41:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=a(50),k=d(j),l=a(87),m=d(l),n=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"error",g.open),g}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-error-display "+a.prototype.buildCSSClass.call(this)},b.prototype.content=function(){var a=this.player().error();return a?this.localize(a.message):""},b}(k["default"]);n.prototype.options_=(0,m["default"])(k["default"].prototype.options_,{pauseOnOpen:!1,fillAlways:!0,temporary:!1,uncloseable:!0}),i["default"].registerComponent("ErrorDisplay",n),c["default"]=n},{5:5,50:50,87:87}],42:[function(a,b,c){"use strict";c.__esModule=!0;var d=a(82),e=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(d),f=function(){};f.prototype.allowedEvents_={},f.prototype.on=function(a,b){var c=this.addEventListener;this.addEventListener=function(){},e.on(this,a,b),this.addEventListener=c},f.prototype.addEventListener=f.prototype.on,f.prototype.off=function(a,b){e.off(this,a,b)},f.prototype.removeEventListener=f.prototype.off,f.prototype.one=function(a,b){var c=this.addEventListener;this.addEventListener=function(){},e.one(this,a,b),this.addEventListener=c},f.prototype.trigger=function(a){var b=a.type||a;"string"==typeof a&&(a={type:b}),a=e.fixEvent(a),this.allowedEvents_[b]&&this["on"+b]&&this["on"+b](a),e.trigger(this,a)},f.prototype.dispatchEvent=f.prototype.trigger,c["default"]=f},{82:82}],43:[function(a,b,c){"use strict";c.__esModule=!0;var d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},e=a(86),f=function(a){return a&&a.__esModule?a:{"default":a}}(e),g=a(88),h=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+(void 0===b?"undefined":d(b)));a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.super_=b)},i=function(a){var b=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},c=function(){a.apply(this,arguments)},d={};(0,g.isObject)(b)?("function"==typeof b.init&&(f["default"].warn("Constructor logic via init() is deprecated; please use constructor() instead."),b.constructor=b.init),b.constructor!==Object.prototype.constructor&&(c=b.constructor),d=b):"function"==typeof b&&(c=b),h(c,a);for(var e in d)d.hasOwnProperty(e)&&(c.prototype[e]=d[e]);return c};c["default"]=i},{86:86,88:88}],44:[function(a,b,c){"use strict";c.__esModule=!0;for(var d=a(94),e=function(a){return a&&a.__esModule?a:{"default":a}}(d),f={},g=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],h=g[0],i=void 0,j=0;j<g.length;j++)if(g[j][1]in e["default"]){i=g[j];break}if(i)for(var k=0;k<i.length;k++)f[h[k]]=i[k];c["default"]=f},{94:94}],45:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g),i=function(a){function b(){return d(this,b),e(this,a.apply(this,arguments))}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-loading-spinner",dir:"ltr"})},b}(h["default"]);h["default"].registerComponent("LoadingSpinner",i),c["default"]=i},{5:5}],46:[function(a,b,c){"use strict";function d(a){if(a instanceof d)return a;"number"==typeof a?this.code=a:"string"==typeof a?this.message=a:(0,e.isObject)(a)&&("number"==typeof a.code&&(this.code=a.code),(0,e.assign)(this,a)),this.message||(this.message=d.defaultMessages[this.code]||"")}c.__esModule=!0;var e=a(88);d.prototype.code=0,d.prototype.message="",d.prototype.status=null,d.errorTypes=["MEDIA_ERR_CUSTOM","MEDIA_ERR_ABORTED","MEDIA_ERR_NETWORK","MEDIA_ERR_DECODE","MEDIA_ERR_SRC_NOT_SUPPORTED","MEDIA_ERR_ENCRYPTED"],d.defaultMessages={1:"You aborted the media playback",2:"A network error caused the media download to fail part-way.",3:"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.",4:"The media could not be loaded, either because the server or network failed or because the format is not supported.",5:"The media is encrypted and we do not have the keys to decrypt it."};for(var f=0;f<d.errorTypes.length;f++)d[d.errorTypes[f]]=f,d.prototype[d.errorTypes[f]]=f;c["default"]=d},{88:88}],47:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(3),j=e(i),k=a(5),l=e(k),m=a(49),n=e(m),o=a(81),p=d(o),q=a(83),r=d(q),s=a(91),t=e(s),u=function(a){function b(c){var d=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};f(this,b);var e=g(this,a.call(this,c,d));return e.update(),e.enabled_=!0,e.el_.setAttribute("aria-haspopup","true"),e.el_.setAttribute("role","menuitem"),e.on("keydown",e.handleSubmenuKeyPress),e}return h(b,a),b.prototype.update=function(){var a=this.createMenu();this.menu&&this.removeChild(this.menu),this.menu=a,this.addChild(a),this.buttonPressed_=!1,this.el_.setAttribute("aria-expanded","false"),this.items&&this.items.length<=this.hideThreshold_?this.hide():this.show()},b.prototype.createMenu=function(){var a=new n["default"](this.player_);if(this.hideThreshold_=0,this.options_.title){var b=p.createEl("li",{className:"vjs-menu-title",innerHTML:(0,t["default"])(this.options_.title),tabIndex:-1});this.hideThreshold_+=1,a.children_.unshift(b),p.insertElFirst(b,a.contentEl())}if(this.items=this.createItems(),this.items)for(var c=0;c<this.items.length;c++)a.addItem(this.items[c]);return a},b.prototype.createItems=function(){},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},b.prototype.buildCSSClass=function(){var b="vjs-menu-button";return!0===this.options_.inline?b+="-inline":b+="-popup","vjs-menu-button "+b+" "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(a){this.one(this.menu.contentEl(),"mouseleave",r.bind(this,function(a){this.unpressButton(),this.el_.blur()})),this.buttonPressed_?this.unpressButton():this.pressButton()},b.prototype.handleKeyPress=function(b){27===b.which||9===b.which?(this.buttonPressed_&&this.unpressButton(),9!==b.which&&b.preventDefault()):38===b.which||40===b.which?this.buttonPressed_||(this.pressButton(),b.preventDefault()):a.prototype.handleKeyPress.call(this,b)},b.prototype.handleSubmenuKeyPress=function(a){27!==a.which&&9!==a.which||(this.buttonPressed_&&this.unpressButton(),9!==a.which&&a.preventDefault())},b.prototype.pressButton=function(){this.enabled_&&(this.buttonPressed_=!0,this.menu.lockShowing(),this.el_.setAttribute("aria-expanded","true"),this.menu.focus())},b.prototype.unpressButton=function(){this.enabled_&&(this.buttonPressed_=!1,this.menu.unlockShowing(),this.el_.setAttribute("aria-expanded","false"),this.el_.focus())},b.prototype.disable=function(){return this.buttonPressed_=!1,this.menu.unlockShowing(),this.el_.setAttribute("aria-expanded","false"),this.enabled_=!1,a.prototype.disable.call(this)},b.prototype.enable=function(){return this.enabled_=!0,a.prototype.enable.call(this)},b}(j["default"]);l["default"].registerComponent("MenuButton",u),c["default"]=u},{3:3,49:49,5:5,81:81,83:83,91:91}],48:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(3),i=d(h),j=a(5),k=d(j),l=a(88),m=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.selectable=d.selectable,g.selected(d.selected),g.selectable?g.el_.setAttribute("role","menuitemcheckbox"):g.el_.setAttribute("role","menuitem"),g}return g(b,a),b.prototype.createEl=function(b,c,d){return this.nonIconControl=!0,a.prototype.createEl.call(this,"li",(0,l.assign)({className:"vjs-menu-item",innerHTML:this.localize(this.options_.label),tabIndex:-1},c),d)},b.prototype.handleClick=function(a){this.selected(!0)},b.prototype.selected=function(a){this.selectable&&(a?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-checked","true"),this.controlText(", selected")):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-checked","false"),this.controlText("")))},b}(i["default"]);k["default"].registerComponent("MenuItem",m),c["default"]=m},{3:3,5:5,88:88}],49:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=function(a){return a&&a.__esModule?a:{"default":a}}(h),j=a(81),k=d(j),l=a(83),m=d(l),n=a(82),o=d(n),p=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.focusedChild_=-1,g.on("keydown",g.handleKeyPress),g}return g(b,a),b.prototype.addItem=function(a){this.addChild(a),a.on("click",m.bind(this,function(a){this.unlockShowing()}))},b.prototype.createEl=function(){var b=this.options_.contentElType||"ul";this.contentEl_=k.createEl(b,{className:"vjs-menu-content"}),this.contentEl_.setAttribute("role","menu");var c=a.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"vjs-menu"});return c.setAttribute("role","presentation"),c.appendChild(this.contentEl_),o.on(c,"click",function(a){a.preventDefault(),a.stopImmediatePropagation()}),c},b.prototype.handleKeyPress=function(a){37===a.which||40===a.which?(a.preventDefault(),this.stepForward()):38!==a.which&&39!==a.which||(a.preventDefault(),this.stepBack())},b.prototype.stepForward=function(){var a=0;this.focusedChild_!==undefined&&(a=this.focusedChild_+1),this.focus(a)},b.prototype.stepBack=function(){var a=0;this.focusedChild_!==undefined&&(a=this.focusedChild_-1),this.focus(a)},b.prototype.focus=function(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0,b=this.children().slice();b.length&&b[0].className&&/vjs-menu-title/.test(b[0].className)&&b.shift(),b.length>0&&(a<0?a=0:a>=b.length&&(a=b.length-1),this.focusedChild_=a,b[a].el_.focus())},b}(i["default"]);i["default"].registerComponent("Menu",p),c["default"]=p},{5:5,81:81,82:82,83:83}],50:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(81),i=d(h),j=a(83),k=d(j),l=a(5),m=function(a){return a&&a.__esModule?a:{"default":a}}(l),n="vjs-modal-dialog",o=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.opened_=g.hasBeenOpened_=g.hasBeenFilled_=!1,g.closeable(!g.options_.uncloseable),g.content(g.options_.content),g.contentEl_=i.createEl("div",{className:n+"-content"},{role:"document"}),g.descEl_=i.createEl("p",{className:n+"-description vjs-offscreen",id:g.el().getAttribute("aria-describedby")}),i.textContent(g.descEl_,g.description()),g.el_.appendChild(g.descEl_),g.el_.appendChild(g.contentEl_),g}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass(),tabIndex:-1},{"aria-describedby":this.id()+"_description","aria-hidden":"true","aria-label":this.label(),role:"dialog"})},b.prototype.buildCSSClass=function(){return n+" vjs-hidden "+a.prototype.buildCSSClass.call(this)},b.prototype.handleKeyPress=function(a){27===a.which&&this.closeable()&&this.close()},b.prototype.label=function(){return this.options_.label||this.localize("Modal Window")},b.prototype.description=function(){var a=this.options_.description||this.localize("This is a modal window.");return this.closeable()&&(a+=" "+this.localize("This modal can be closed by pressing the Escape key or activating the close button.")),a},b.prototype.open=function(){if(!this.opened_){var a=this.player();this.trigger("beforemodalopen"),this.opened_=!0,(this.options_.fillAlways||!this.hasBeenOpened_&&!this.hasBeenFilled_)&&this.fill(),this.wasPlaying_=!a.paused(),this.options_.pauseOnOpen&&this.wasPlaying_&&a.pause(),this.closeable()&&this.on(this.el_.ownerDocument,"keydown",k.bind(this,this.handleKeyPress)),a.controls(!1),this.show(),this.el().setAttribute("aria-hidden","false"),this.trigger("modalopen"),this.hasBeenOpened_=!0}return this},b.prototype.opened=function(a){return"boolean"==typeof a&&this[a?"open":"close"](),this.opened_},b.prototype.close=function(){if(this.opened_){var a=this.player();this.trigger("beforemodalclose"),this.opened_=!1,this.wasPlaying_&&this.options_.pauseOnOpen&&a.play(),this.closeable()&&this.off(this.el_.ownerDocument,"keydown",k.bind(this,this.handleKeyPress)),a.controls(!0),this.hide(),this.el().setAttribute("aria-hidden","true"),this.trigger("modalclose"),this.options_.temporary&&this.dispose()}return this},b.prototype.closeable=function(a){
15
- if("boolean"==typeof a){var b=this.closeable_=!!a,c=this.getChild("closeButton");if(b&&!c){var d=this.contentEl_;this.contentEl_=this.el_,c=this.addChild("closeButton",{controlText:"Close Modal Dialog"}),this.contentEl_=d,this.on(c,"close",this.close)}!b&&c&&(this.off(c,"close",this.close),this.removeChild(c),c.dispose())}return this.closeable_},b.prototype.fill=function(){return this.fillWith(this.content())},b.prototype.fillWith=function(a){var b=this.contentEl(),c=b.parentNode,d=b.nextSibling;return this.trigger("beforemodalfill"),this.hasBeenFilled_=!0,c.removeChild(b),this.empty(),i.insertContent(b,a),this.trigger("modalfill"),d?c.insertBefore(b,d):c.appendChild(b),this},b.prototype.empty=function(){return this.trigger("beforemodalempty"),i.emptyEl(this.contentEl()),this.trigger("modalempty"),this},b.prototype.content=function(a){return void 0!==a&&(this.content_=a),this.content_},b}(m["default"]);o.prototype.options_={pauseOnOpen:!0,temporary:!0},m["default"].registerComponent("ModalDialog",o),c["default"]=o},{5:5,81:81,83:83}],51:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(5),j=e(i),k=a(94),l=e(k),m=a(95),n=e(m),o=a(82),p=d(o),q=a(81),r=d(q),s=a(83),t=d(s),u=a(85),v=d(u),w=a(78),x=d(w),y=a(86),z=e(y),A=a(91),B=e(A),C=a(90),D=a(79),E=a(89),F=d(E),G=a(44),H=e(G),I=a(46),J=e(I),K=a(97),L=e(K),M=a(88),N=a(87),O=e(N),P=a(69),Q=e(P),R=a(50),S=e(R),T=a(62),U=e(T),V=a(63),W=e(V),X=a(76),Y=e(X);a(61),a(59),a(55),a(68),a(45),a(1),a(4),a(8),a(41),a(71),a(60);var Z=["progress","abort","suspend","emptied","stalled","loadedmetadata","loadeddata","timeupdate","ratechange","volumechange","texttrackchange"],$=function(a){function b(c,d,e){if(f(this,b),c.id=c.id||"vjs_video_"+v.newGUID(),d=(0,M.assign)(b.getTagSettings(c),d),d.initChildren=!1,d.createEl=!1,d.reportTouchActivity=!1,!d.language)if("function"==typeof c.closest){var h=c.closest("[lang]");h&&(d.language=h.getAttribute("lang"))}else for(var i=c;i&&1===i.nodeType;){if(r.getElAttributes(i).hasOwnProperty("lang")){d.language=i.getAttribute("lang");break}i=i.parentNode}var j=g(this,a.call(this,null,d,e));if(!j.options_||!j.options_.techOrder||!j.options_.techOrder.length)throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?");if(j.tag=c,j.tagAttributes=c&&r.getElAttributes(c),j.language(j.options_.language),d.languages){var k={};Object.getOwnPropertyNames(d.languages).forEach(function(a){k[a.toLowerCase()]=d.languages[a]}),j.languages_=k}else j.languages_=b.prototype.options_.languages;j.cache_={},j.poster_=d.poster||"",j.controls_=!!d.controls,c.controls=!1,j.scrubbing_=!1,j.el_=j.createEl();var l=(0,O["default"])(j.options_);if(d.plugins){var m=d.plugins;Object.getOwnPropertyNames(m).forEach(function(a){"function"==typeof this[a]?this[a](m[a]):z["default"].error("Unable to find plugin:",a)},j)}j.options_.playerOptions=l,j.initChildren(),j.isAudio("audio"===c.nodeName.toLowerCase()),j.controls()?j.addClass("vjs-controls-enabled"):j.addClass("vjs-controls-disabled"),j.el_.setAttribute("role","region"),j.isAudio()?j.el_.setAttribute("aria-label","audio player"):j.el_.setAttribute("aria-label","video player"),j.isAudio()&&j.addClass("vjs-audio"),j.flexNotSupported_()&&j.addClass("vjs-no-flex"),x.IS_IOS||j.addClass("vjs-workinghover"),b.players[j.id_]=j;var n="5.20.5".split(".")[0];return j.addClass("vjs-v"+n),j.userActive(!0),j.reportUserActivity(),j.listenForUserActivity_(),j.on("fullscreenchange",j.handleFullscreenChange_),j.on("stageclick",j.handleStageClick_),j}return h(b,a),b.prototype.dispose=function(){this.trigger("dispose"),this.off("dispose"),this.styleEl_&&this.styleEl_.parentNode&&this.styleEl_.parentNode.removeChild(this.styleEl_),b.players[this.id_]=null,this.tag&&this.tag.player&&(this.tag.player=null),this.el_&&this.el_.player&&(this.el_.player=null),this.tech_&&this.tech_.dispose(),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var b=this.tag,c=void 0,d=this.playerElIngest_=b.parentNode&&b.parentNode.hasAttribute&&b.parentNode.hasAttribute("data-vjs-player");c=this.el_=d?b.parentNode:a.prototype.createEl.call(this,"div"),b.setAttribute("tabindex","-1"),b.removeAttribute("width"),b.removeAttribute("height");var e=r.getElAttributes(b);if(Object.getOwnPropertyNames(e).forEach(function(a){"class"===a?c.className+=" "+e[a]:c.setAttribute(a,e[a])}),b.playerId=b.id,b.id+="_html5_api",b.className="vjs-tech",b.player=c.player=this,this.addClass("vjs-paused"),!0!==n["default"].VIDEOJS_NO_DYNAMIC_STYLE){this.styleEl_=F.createStyleElement("vjs-styles-dimensions");var f=r.$(".vjs-styles-defaults"),g=r.$("head");g.insertBefore(this.styleEl_,f?f.nextSibling:g.firstChild)}this.width(this.options_.width),this.height(this.options_.height),this.fluid(this.options_.fluid),this.aspectRatio(this.options_.aspectRatio);for(var h=b.getElementsByTagName("a"),i=0;i<h.length;i++){var j=h.item(i);r.addElClass(j,"vjs-hidden"),j.setAttribute("hidden","hidden")}return b.initNetworkState_=b.networkState,b.parentNode&&!d&&b.parentNode.insertBefore(c,b),r.insertElFirst(b,c),this.children_.unshift(b),this.el_=c,c},b.prototype.width=function(a){return this.dimension("width",a)},b.prototype.height=function(a){return this.dimension("height",a)},b.prototype.dimension=function(a,b){var c=a+"_";if(b===undefined)return this[c]||0;if(""===b)this[c]=undefined;else{var d=parseFloat(b);if(isNaN(d))return z["default"].error('Improper value "'+b+'" supplied for for '+a),this;this[c]=d}return this.updateStyleEl_(),this},b.prototype.fluid=function(a){if(a===undefined)return!!this.fluid_;this.fluid_=!!a,a?this.addClass("vjs-fluid"):this.removeClass("vjs-fluid"),this.updateStyleEl_()},b.prototype.aspectRatio=function(a){if(a===undefined)return this.aspectRatio_;if(!/^\d+\:\d+$/.test(a))throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.");this.aspectRatio_=a,this.fluid(!0),this.updateStyleEl_()},b.prototype.updateStyleEl_=function(){if(!0===n["default"].VIDEOJS_NO_DYNAMIC_STYLE){var a="number"==typeof this.width_?this.width_:this.options_.width,b="number"==typeof this.height_?this.height_:this.options_.height,c=this.tech_&&this.tech_.el();return void(c&&(a>=0&&(c.width=a),b>=0&&(c.height=b)))}var d=void 0,e=void 0,f=void 0,g=void 0;f=this.aspectRatio_!==undefined&&"auto"!==this.aspectRatio_?this.aspectRatio_:this.videoWidth()>0?this.videoWidth()+":"+this.videoHeight():"16:9";var h=f.split(":"),i=h[1]/h[0];d=this.width_!==undefined?this.width_:this.height_!==undefined?this.height_/i:this.videoWidth()||300,e=this.height_!==undefined?this.height_:d*i,g=/^[^a-zA-Z]/.test(this.id())?"dimensions-"+this.id():this.id()+"-dimensions",this.addClass(g),F.setTextContent(this.styleEl_,"\n ."+g+" {\n width: "+d+"px;\n height: "+e+"px;\n }\n\n ."+g+".vjs-fluid {\n padding-top: "+100*i+"%;\n }\n ")},b.prototype.loadTech_=function(a,b){var c=this;this.tech_&&this.unloadTech_(),"Html5"!==a&&this.tag&&(U["default"].getTech("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName_=a,this.isReady_=!1;var d=(0,M.assign)({source:b,nativeControlsForTouch:this.options_.nativeControlsForTouch,playerId:this.id(),techId:this.id()+"_"+a+"_api",videoTracks:this.videoTracks_,textTracks:this.textTracks_,audioTracks:this.audioTracks_,autoplay:this.options_.autoplay,playsinline:this.options_.playsinline,preload:this.options_.preload,loop:this.options_.loop,muted:this.options_.muted,poster:this.poster(),language:this.language(),playerElIngest:this.playerElIngest_||!1,"vtt.js":this.options_["vtt.js"]},this.options_[a.toLowerCase()]);this.tag&&(d.tag=this.tag),b&&(this.currentType_=b.type,b.src===this.cache_.src&&this.cache_.currentTime>0&&(d.startTime=this.cache_.currentTime),this.cache_.sources=null,this.cache_.source=b,this.cache_.src=b.src);var e=U["default"].getTech(a);e||(e=j["default"].getComponent(a)),this.tech_=new e(d),this.tech_.ready(t.bind(this,this.handleTechReady_),!0),Q["default"].jsonToTextTracks(this.textTracksJson_||[],this.tech_),Z.forEach(function(a){c.on(c.tech_,a,c["handleTech"+(0,B["default"])(a)+"_"])}),this.on(this.tech_,"loadstart",this.handleTechLoadStart_),this.on(this.tech_,"waiting",this.handleTechWaiting_),this.on(this.tech_,"canplay",this.handleTechCanPlay_),this.on(this.tech_,"canplaythrough",this.handleTechCanPlayThrough_),this.on(this.tech_,"playing",this.handleTechPlaying_),this.on(this.tech_,"ended",this.handleTechEnded_),this.on(this.tech_,"seeking",this.handleTechSeeking_),this.on(this.tech_,"seeked",this.handleTechSeeked_),this.on(this.tech_,"play",this.handleTechPlay_),this.on(this.tech_,"firstplay",this.handleTechFirstPlay_),this.on(this.tech_,"pause",this.handleTechPause_),this.on(this.tech_,"durationchange",this.handleTechDurationChange_),this.on(this.tech_,"fullscreenchange",this.handleTechFullscreenChange_),this.on(this.tech_,"error",this.handleTechError_),this.on(this.tech_,"loadedmetadata",this.updateStyleEl_),this.on(this.tech_,"posterchange",this.handleTechPosterChange_),this.on(this.tech_,"textdata",this.handleTechTextData_),this.usingNativeControls(this.techGet_("controls")),this.controls()&&!this.usingNativeControls()&&this.addTechControlsListeners_(),this.tech_.el().parentNode===this.el()||"Html5"===a&&this.tag||r.insertElFirst(this.tech_.el(),this.el()),this.tag&&(this.tag.player=null,this.tag=null)},b.prototype.unloadTech_=function(){this.videoTracks_=this.videoTracks(),this.textTracks_=this.textTracks(),this.audioTracks_=this.audioTracks(),this.textTracksJson_=Q["default"].textTracksToJson(this.tech_),this.isReady_=!1,this.tech_.dispose(),this.tech_=!1},b.prototype.tech=function(a){if(a&&a.IWillNotUseThisInPlugins)return this.tech_;var b="\n Please make sure that you are not using this inside of a plugin.\n To disable this alert and error, please pass in an object with\n `IWillNotUseThisInPlugins` to the `tech` method. See\n https://github.com/videojs/video.js/issues/2617 for more info.\n ";throw n["default"].alert(b),new Error(b)},b.prototype.addTechControlsListeners_=function(){this.removeTechControlsListeners_(),this.on(this.tech_,"mousedown",this.handleTechClick_),this.on(this.tech_,"touchstart",this.handleTechTouchStart_),this.on(this.tech_,"touchmove",this.handleTechTouchMove_),this.on(this.tech_,"touchend",this.handleTechTouchEnd_),this.on(this.tech_,"tap",this.handleTechTap_)},b.prototype.removeTechControlsListeners_=function(){this.off(this.tech_,"tap",this.handleTechTap_),this.off(this.tech_,"touchstart",this.handleTechTouchStart_),this.off(this.tech_,"touchmove",this.handleTechTouchMove_),this.off(this.tech_,"touchend",this.handleTechTouchEnd_),this.off(this.tech_,"mousedown",this.handleTechClick_)},b.prototype.handleTechReady_=function(){if(this.triggerReady(),this.cache_.volume&&this.techCall_("setVolume",this.cache_.volume),this.handleTechPosterChange_(),this.handleTechDurationChange_(),(this.src()||this.currentSrc())&&this.tag&&this.options_.autoplay&&this.paused()){try{delete this.tag.poster}catch(a){(0,z["default"])("deleting tag.poster throws in some browsers",a)}this.play()}},b.prototype.handleTechLoadStart_=function(){this.removeClass("vjs-ended"),this.removeClass("vjs-seeking"),this.error(null),this.paused()?(this.hasStarted(!1),this.trigger("loadstart")):(this.trigger("loadstart"),this.trigger("firstplay"))},b.prototype.hasStarted=function(a){return a!==undefined?(this.hasStarted_!==a&&(this.hasStarted_=a,a?(this.addClass("vjs-has-started"),this.trigger("firstplay")):this.removeClass("vjs-has-started")),this):!!this.hasStarted_},b.prototype.handleTechPlay_=function(){this.removeClass("vjs-ended"),this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.hasStarted(!0),this.trigger("play")},b.prototype.handleTechWaiting_=function(){var a=this;this.addClass("vjs-waiting"),this.trigger("waiting"),this.one("timeupdate",function(){return a.removeClass("vjs-waiting")})},b.prototype.handleTechCanPlay_=function(){this.removeClass("vjs-waiting"),this.trigger("canplay")},b.prototype.handleTechCanPlayThrough_=function(){this.removeClass("vjs-waiting"),this.trigger("canplaythrough")},b.prototype.handleTechPlaying_=function(){this.removeClass("vjs-waiting"),this.trigger("playing")},b.prototype.handleTechSeeking_=function(){this.addClass("vjs-seeking"),this.trigger("seeking")},b.prototype.handleTechSeeked_=function(){this.removeClass("vjs-seeking"),this.trigger("seeked")},b.prototype.handleTechFirstPlay_=function(){this.options_.starttime&&(z["default"].warn("Passing the `starttime` option to the player will be deprecated in 6.0"),this.currentTime(this.options_.starttime)),this.addClass("vjs-has-started"),this.trigger("firstplay")},b.prototype.handleTechPause_=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.trigger("pause")},b.prototype.handleTechEnded_=function(){this.addClass("vjs-ended"),this.options_.loop?(this.currentTime(0),this.play()):this.paused()||this.pause(),this.trigger("ended")},b.prototype.handleTechDurationChange_=function(){this.duration(this.techGet_("duration"))},b.prototype.handleTechClick_=function(a){0===a.button&&this.controls()&&(this.paused()?this.play():this.pause())},b.prototype.handleTechTap_=function(){this.userActive(!this.userActive())},b.prototype.handleTechTouchStart_=function(){this.userWasActive=this.userActive()},b.prototype.handleTechTouchMove_=function(){this.userWasActive&&this.reportUserActivity()},b.prototype.handleTechTouchEnd_=function(a){a.preventDefault()},b.prototype.handleFullscreenChange_=function(){this.isFullscreen()?this.addClass("vjs-fullscreen"):this.removeClass("vjs-fullscreen")},b.prototype.handleStageClick_=function(){this.reportUserActivity()},b.prototype.handleTechFullscreenChange_=function(a,b){b&&this.isFullscreen(b.isFullscreen),this.trigger("fullscreenchange")},b.prototype.handleTechError_=function(){var a=this.tech_.error();this.error(a)},b.prototype.handleTechTextData_=function(){var a=null;arguments.length>1&&(a=arguments[1]),this.trigger("textdata",a)},b.prototype.getCache=function(){return this.cache_},b.prototype.techCall_=function(a,b){if(this.tech_&&!this.tech_.isReady_)this.tech_.ready(function(){this[a](b)},!0);else try{this.tech_&&this.tech_[a](b)}catch(c){throw(0,z["default"])(c),c}},b.prototype.techGet_=function(a){if(this.tech_&&this.tech_.isReady_)try{return this.tech_[a]()}catch(b){throw this.tech_[a]===undefined?(0,z["default"])("Video.js: "+a+" method not defined for "+this.techName_+" playback technology.",b):"TypeError"===b.name?((0,z["default"])("Video.js: "+a+" unavailable on "+this.techName_+" playback technology element.",b),this.tech_.isReady_=!1):(0,z["default"])(b),b}},b.prototype.play=function(){return this.src()||this.currentSrc()?this.techCall_("play"):this.tech_.one("loadstart",function(){this.play()}),this},b.prototype.pause=function(){return this.techCall_("pause"),this},b.prototype.paused=function(){return!1!==this.techGet_("paused")},b.prototype.scrubbing=function(a){return a!==undefined?(this.scrubbing_=!!a,a?this.addClass("vjs-scrubbing"):this.removeClass("vjs-scrubbing"),this):this.scrubbing_},b.prototype.currentTime=function(a){return a!==undefined?(this.techCall_("setCurrentTime",a),this):(this.cache_.currentTime=this.techGet_("currentTime")||0,this.cache_.currentTime)},b.prototype.duration=function(a){return a===undefined?this.cache_.duration!==undefined?this.cache_.duration:NaN:(a=parseFloat(a),a<0&&(a=Infinity),a!==this.cache_.duration&&(this.cache_.duration=a,a===Infinity?this.addClass("vjs-live"):this.removeClass("vjs-live"),this.trigger("durationchange")),this)},b.prototype.remainingTime=function(){return this.duration()-this.currentTime()},b.prototype.buffered=function(){var a=this.techGet_("buffered");return a&&a.length||(a=(0,C.createTimeRange)(0,0)),a},b.prototype.bufferedPercent=function(){return(0,D.bufferedPercent)(this.buffered(),this.duration())},b.prototype.bufferedEnd=function(){var a=this.buffered(),b=this.duration(),c=a.end(a.length-1);return c>b&&(c=b),c},b.prototype.volume=function(a){var b=void 0;return a!==undefined?(b=Math.max(0,Math.min(1,parseFloat(a))),this.cache_.volume=b,this.techCall_("setVolume",b),this):(b=parseFloat(this.techGet_("volume")),isNaN(b)?1:b)},b.prototype.muted=function(a){return a!==undefined?(this.techCall_("setMuted",a),this):this.techGet_("muted")||!1},b.prototype.supportsFullScreen=function(){return this.techGet_("supportsFullScreen")||!1},b.prototype.isFullscreen=function(a){return a!==undefined?(this.isFullscreen_=!!a,this):!!this.isFullscreen_},b.prototype.requestFullscreen=function(){var a=H["default"];return this.isFullscreen(!0),a.requestFullscreen?(p.on(l["default"],a.fullscreenchange,t.bind(this,function b(c){this.isFullscreen(l["default"][a.fullscreenElement]),!1===this.isFullscreen()&&p.off(l["default"],a.fullscreenchange,b),this.trigger("fullscreenchange")})),this.el_[a.requestFullscreen]()):this.tech_.supportsFullScreen()?this.techCall_("enterFullScreen"):(this.enterFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.exitFullscreen=function(){var a=H["default"];return this.isFullscreen(!1),a.requestFullscreen?l["default"][a.exitFullscreen]():this.tech_.supportsFullScreen()?this.techCall_("exitFullScreen"):(this.exitFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.enterFullWindow=function(){this.isFullWindow=!0,this.docOrigOverflow=l["default"].documentElement.style.overflow,p.on(l["default"],"keydown",t.bind(this,this.fullWindowOnEscKey)),l["default"].documentElement.style.overflow="hidden",r.addElClass(l["default"].body,"vjs-full-window"),this.trigger("enterFullWindow")},b.prototype.fullWindowOnEscKey=function(a){27===a.keyCode&&(!0===this.isFullscreen()?this.exitFullscreen():this.exitFullWindow())},b.prototype.exitFullWindow=function(){this.isFullWindow=!1,p.off(l["default"],"keydown",this.fullWindowOnEscKey),l["default"].documentElement.style.overflow=this.docOrigOverflow,r.removeElClass(l["default"].body,"vjs-full-window"),this.trigger("exitFullWindow")},b.prototype.canPlayType=function(a){for(var b=void 0,c=0,d=this.options_.techOrder;c<d.length;c++){var e=(0,B["default"])(d[c]),f=U["default"].getTech(e);if(f||(f=j["default"].getComponent(e)),f){if(f.isSupported()&&(b=f.canPlayType(a)))return b}else z["default"].error('The "'+e+'" tech is undefined. Skipped browser support check for that tech.')}return""},b.prototype.selectSource=function(a){var b=this,c=this.options_.techOrder.map(B["default"]).map(function(a){return[a,U["default"].getTech(a)||j["default"].getComponent(a)]}).filter(function(a){var b=a[0],c=a[1];return c?c.isSupported():(z["default"].error('The "'+b+'" tech is undefined. Skipped browser support check for that tech.'),!1)}),d=function(a,b,c){var d=void 0;return a.some(function(a){return b.some(function(b){if(d=c(a,b))return!0})}),d},e=function(a,c){var d=a[0];if(a[1].canPlaySource(c,b.options_[d.toLowerCase()]))return{source:c,tech:d}};return(this.options_.sourceOrder?d(a,c,function(a){return function(b,c){return a(c,b)}}(e)):d(c,a,e))||!1},b.prototype.src=function(a){if(a===undefined)return this.techGet_("src");var b=U["default"].getTech(this.techName_);return b||(b=j["default"].getComponent(this.techName_)),Array.isArray(a)?this.sourceList_(a):"string"==typeof a?this.src({src:a}):a instanceof Object&&(a.type&&!b.canPlaySource(a,this.options_[this.techName_.toLowerCase()])?this.sourceList_([a]):(this.cache_.sources=null,this.cache_.source=a,this.cache_.src=a.src,this.currentType_=a.type||"",this.ready(function(){b.prototype.hasOwnProperty("setSource")?this.techCall_("setSource",a):this.techCall_("src",a.src),"auto"===this.options_.preload&&this.load(),this.options_.autoplay&&this.play()},!0))),this},b.prototype.sourceList_=function(a){var b=this.selectSource(a);b?(b.tech===this.techName_?this.src(b.source):this.loadTech_(b.tech,b.source),this.cache_.sources=a):(this.setTimeout(function(){this.error({code:4,message:this.localize(this.options_.notSupportedMessage)})},0),this.triggerReady())},b.prototype.load=function(){return this.techCall_("load"),this},b.prototype.reset=function(){return this.loadTech_((0,B["default"])(this.options_.techOrder[0]),null),this.techCall_("reset"),this},b.prototype.currentSources=function(){var a=this.currentSource(),b=[];return 0!==Object.keys(a).length&&b.push(a),this.cache_.sources||b},b.prototype.currentSource=function(){var a={},b=this.currentSrc();return b&&(a.src=b),this.cache_.source||a},b.prototype.currentSrc=function(){return this.techGet_("currentSrc")||this.cache_.src||""},b.prototype.currentType=function(){return this.currentType_||""},b.prototype.preload=function(a){return a!==undefined?(this.techCall_("setPreload",a),this.options_.preload=a,this):this.techGet_("preload")},b.prototype.autoplay=function(a){return a!==undefined?(this.techCall_("setAutoplay",a),this.options_.autoplay=a,this):this.techGet_("autoplay",a)},b.prototype.playsinline=function(a){return a!==undefined?(this.techCall_("setPlaysinline",a),this.options_.playsinline=a,this):this.techGet_("playsinline")},b.prototype.loop=function(a){return a!==undefined?(this.techCall_("setLoop",a),this.options_.loop=a,this):this.techGet_("loop")},b.prototype.poster=function(a){return a===undefined?this.poster_:(a||(a=""),this.poster_=a,this.techCall_("setPoster",a),this.trigger("posterchange"),this)},b.prototype.handleTechPosterChange_=function(){!this.poster_&&this.tech_&&this.tech_.poster&&(this.poster_=this.tech_.poster()||"",this.trigger("posterchange"))},b.prototype.controls=function(a){return a!==undefined?(a=!!a,this.controls_!==a&&(this.controls_=a,this.usingNativeControls()&&this.techCall_("setControls",a),a?(this.removeClass("vjs-controls-disabled"),this.addClass("vjs-controls-enabled"),this.trigger("controlsenabled"),this.usingNativeControls()||this.addTechControlsListeners_()):(this.removeClass("vjs-controls-enabled"),this.addClass("vjs-controls-disabled"),this.trigger("controlsdisabled"),this.usingNativeControls()||this.removeTechControlsListeners_())),this):!!this.controls_},b.prototype.usingNativeControls=function(a){return a!==undefined?(a=!!a,this.usingNativeControls_!==a&&(this.usingNativeControls_=a,a?(this.addClass("vjs-using-native-controls"),this.trigger("usingnativecontrols")):(this.removeClass("vjs-using-native-controls"),this.trigger("usingcustomcontrols"))),this):!!this.usingNativeControls_},b.prototype.error=function(a){return a===undefined?this.error_||null:null===a?(this.error_=a,this.removeClass("vjs-error"),this.errorDisplay&&this.errorDisplay.close(),this):(this.error_=new J["default"](a),this.addClass("vjs-error"),z["default"].error("(CODE:"+this.error_.code+" "+J["default"].errorTypes[this.error_.code]+")",this.error_.message,this.error_),this.trigger("error"),this)},b.prototype.reportUserActivity=function(a){this.userActivity_=!0},b.prototype.userActive=function(a){return a!==undefined?(a=!!a,a!==this.userActive_&&(this.userActive_=a,a?(this.userActivity_=!0,this.removeClass("vjs-user-inactive"),this.addClass("vjs-user-active"),this.trigger("useractive")):(this.userActivity_=!1,this.tech_&&this.tech_.one("mousemove",function(a){a.stopPropagation(),a.preventDefault()}),this.removeClass("vjs-user-active"),this.addClass("vjs-user-inactive"),this.trigger("userinactive"))),this):this.userActive_},b.prototype.listenForUserActivity_=function(){var a=void 0,b=void 0,c=void 0,d=t.bind(this,this.reportUserActivity),e=function(a){a.screenX===b&&a.screenY===c||(b=a.screenX,c=a.screenY,d())},f=function(){d(),this.clearInterval(a),a=this.setInterval(d,250)},g=function(b){d(),this.clearInterval(a)};this.on("mousedown",f),this.on("mousemove",e),this.on("mouseup",g),this.on("keydown",d),this.on("keyup",d);var h=void 0;this.setInterval(function(){if(this.userActivity_){this.userActivity_=!1,this.userActive(!0),this.clearTimeout(h);var a=this.options_.inactivityTimeout;a>0&&(h=this.setTimeout(function(){this.userActivity_||this.userActive(!1)},a))}},250)},b.prototype.playbackRate=function(a){return a!==undefined?(this.techCall_("setPlaybackRate",a),this):this.tech_&&this.tech_.featuresPlaybackRate?this.techGet_("playbackRate"):1},b.prototype.isAudio=function(a){return a!==undefined?(this.isAudio_=!!a,this):!!this.isAudio_},b.prototype.videoTracks=function(){return this.tech_?this.tech_.videoTracks():(this.videoTracks_=this.videoTracks_||new Y["default"],this.videoTracks_)},b.prototype.audioTracks=function(){return this.tech_?this.tech_.audioTracks():(this.audioTracks_=this.audioTracks_||new W["default"],this.audioTracks_)},b.prototype.textTracks=function(){if(this.tech_)return this.tech_.textTracks()},b.prototype.remoteTextTracks=function(){if(this.tech_)return this.tech_.remoteTextTracks()},b.prototype.remoteTextTrackEls=function(){if(this.tech_)return this.tech_.remoteTextTrackEls()},b.prototype.addTextTrack=function(a,b,c){if(this.tech_)return this.tech_.addTextTrack(a,b,c)},b.prototype.addRemoteTextTrack=function(a,b){if(this.tech_)return this.tech_.addRemoteTextTrack(a,b)},b.prototype.removeRemoteTextTrack=function(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},b=a.track,c=b===undefined?arguments[0]:b;if(this.tech_)return this.tech_.removeRemoteTextTrack(c)},b.prototype.getVideoPlaybackQuality=function(){return this.techGet_("getVideoPlaybackQuality")},b.prototype.videoWidth=function(){return this.tech_&&this.tech_.videoWidth&&this.tech_.videoWidth()||0},b.prototype.videoHeight=function(){return this.tech_&&this.tech_.videoHeight&&this.tech_.videoHeight()||0},b.prototype.language=function(a){return a===undefined?this.language_:(this.language_=String(a).toLowerCase(),this)},b.prototype.languages=function(){return(0,O["default"])(b.prototype.options_.languages,this.languages_)},b.prototype.toJSON=function(){var a=(0,O["default"])(this.options_),b=a.tracks;a.tracks=[];for(var c=0;c<b.length;c++){var d=b[c];d=(0,O["default"])(d),d.player=undefined,a.tracks[c]=d}return a},b.prototype.createModal=function(a,b){var c=this;b=b||{},b.content=a||"";var d=new S["default"](this,b);return this.addChild(d),d.on("dispose",function(){c.removeChild(d)}),d.open()},b.getTagSettings=function(a){var b={sources:[],tracks:[]},c=r.getElAttributes(a),d=c["data-setup"];if(r.hasElClass(a,"vjs-fluid")&&(c.fluid=!0),null!==d){var e=(0,L["default"])(d||"{}"),f=e[0],g=e[1];f&&z["default"].error(f),(0,M.assign)(c,g)}if((0,M.assign)(b,c),a.hasChildNodes())for(var h=a.childNodes,i=0,j=h.length;i<j;i++){var k=h[i],l=k.nodeName.toLowerCase();"source"===l?b.sources.push(r.getElAttributes(k)):"track"===l&&b.tracks.push(r.getElAttributes(k))}return b},b.prototype.flexNotSupported_=function(){var a=l["default"].createElement("i");return!("flexBasis"in a.style||"webkitFlexBasis"in a.style||"mozFlexBasis"in a.style||"msFlexBasis"in a.style||"msFlexOrder"in a.style)},b}(j["default"]);$.players={};var _=n["default"].navigator;$.prototype.options_={techOrder:["html5","flash"],html5:{},flash:{},defaultVolume:0,inactivityTimeout:2e3,playbackRates:[],children:["mediaLoader","posterImage","textTrackDisplay","loadingSpinner","bigPlayButton","controlBar","errorDisplay","textTrackSettings"],language:_&&(_.languages&&_.languages[0]||_.userLanguage||_.language)||"en",languages:{},notSupportedMessage:"No compatible source was found for this media."},["ended","seeking","seekable","networkState","readyState"].forEach(function(a){$.prototype[a]=function(){return this.techGet_(a)}}),Z.forEach(function(a){$.prototype["handleTech"+(0,B["default"])(a)+"_"]=function(){return this.trigger(a)}}),j["default"].registerComponent("Player",$),c["default"]=$},{1:1,4:4,41:41,44:44,45:45,46:46,5:5,50:50,55:55,59:59,60:60,61:61,62:62,63:63,68:68,69:69,71:71,76:76,78:78,79:79,8:8,81:81,82:82,83:83,85:85,86:86,87:87,88:88,89:89,90:90,91:91,94:94,95:95,97:97}],52:[function(a,b,c){"use strict";c.__esModule=!0;var d=a(51),e=function(a){return a&&a.__esModule?a:{"default":a}}(d),f=function(a,b){e["default"].prototype[a]=b};c["default"]=f},{51:51}],53:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(3),i=d(h),j=a(5),k=d(j),l=function(a){function b(c){var d=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};e(this,b);var g=f(this,a.call(this,c,d));return g.update(),g}return g(b,a),b.prototype.update=function(){var a=this.createPopup();this.popup&&this.removeChild(this.popup),this.popup=a,this.addChild(a),this.items&&0===this.items.length?this.hide():this.items&&this.items.length>1&&this.show()},b.prototype.createPopup=function(){},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},b.prototype.buildCSSClass=function(){var b="vjs-menu-button";return!0===this.options_.inline?b+="-inline":b+="-popup","vjs-menu-button "+b+" "+a.prototype.buildCSSClass.call(this)},b}(i["default"]);k["default"].registerComponent("PopupButton",l),c["default"]=l},{3:3,5:5}],54:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=function(a){return a&&a.__esModule?a:{"default":a}}(h),j=a(81),k=d(j),l=a(83),m=d(l),n=a(82),o=d(n),p=function(a){function b(){return e(this,b),f(this,a.apply(this,arguments))}return g(b,a),b.prototype.addItem=function(a){this.addChild(a),a.on("click",m.bind(this,function(){this.unlockShowing()}))},b.prototype.createEl=function(){var b=this.options_.contentElType||"ul";this.contentEl_=k.createEl(b,{className:"vjs-menu-content"});var c=a.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"vjs-menu"});return c.appendChild(this.contentEl_),o.on(c,"click",function(a){a.preventDefault(),a.stopImmediatePropagation()}),c},b}(i["default"]);i["default"].registerComponent("Popup",p),c["default"]=p},{5:5,81:81,82:82,83:83}],55:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a
16
- ;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(3),j=e(i),k=a(5),l=e(k),m=a(83),n=d(m),o=a(81),p=d(o),q=a(78),r=d(q),s=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.update(),c.on("posterchange",n.bind(e,e.update)),e}return h(b,a),b.prototype.dispose=function(){this.player().off("posterchange",this.update),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var a=p.createEl("div",{className:"vjs-poster",tabIndex:-1});return r.BACKGROUND_SIZE_SUPPORTED||(this.fallbackImg_=p.createEl("img"),a.appendChild(this.fallbackImg_)),a},b.prototype.update=function(a){var b=this.player().poster();this.setSrc(b),b?this.show():this.hide()},b.prototype.setSrc=function(a){if(this.fallbackImg_)this.fallbackImg_.src=a;else{var b="";a&&(b='url("'+a+'")'),this.el_.style.backgroundImage=b}},b.prototype.handleClick=function(a){this.player_.controls()&&(this.player_.paused()?this.player_.play():this.player_.pause())},b}(j["default"]);l["default"].registerComponent("PosterImage",s),c["default"]=s},{3:3,5:5,78:78,81:81,83:83}],56:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b){b&&(p=b),n["default"].setTimeout(q,a)}c.__esModule=!0,c.hasLoaded=c.autoSetupTimeout=c.autoSetup=undefined;var g=a(81),h=e(g),i=a(82),j=e(i),k=a(94),l=d(k),m=a(95),n=d(m),o=!1,p=void 0,q=function(){if(h.isReal()){var a=l["default"].getElementsByTagName("video"),b=l["default"].getElementsByTagName("audio"),c=[];if(a&&a.length>0)for(var d=0,e=a.length;d<e;d++)c.push(a[d]);if(b&&b.length>0)for(var g=0,i=b.length;g<i;g++)c.push(b[g]);if(c&&c.length>0)for(var j=0,k=c.length;j<k;j++){var m=c[j];if(!m||!m.getAttribute){f(1);break}if(m.player===undefined){var n=m.getAttribute("data-setup");null!==n&&p(m)}}else o||f(1)}};h.isReal()&&"complete"===l["default"].readyState?o=!0:j.one(n["default"],"load",function(){o=!0});var r=function(){return o};c.autoSetup=q,c.autoSetupTimeout=f,c.hasLoaded=r},{81:81,82:82,94:94,95:95}],57:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g),i=a(81),j=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(i),k=a(88),l=function(a){function b(c,f){d(this,b);var g=e(this,a.call(this,c,f));return g.bar=g.getChild(g.options_.barName),g.vertical(!!g.options_.vertical),g.on("mousedown",g.handleMouseDown),g.on("touchstart",g.handleMouseDown),g.on("focus",g.handleFocus),g.on("blur",g.handleBlur),g.on("click",g.handleClick),g.on(c,"controlsvisible",g.update),g.on(c,g.playerEvent,g.update),g}return f(b,a),b.prototype.createEl=function(b){var c=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},d=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};return c.className=c.className+" vjs-slider",c=(0,k.assign)({tabIndex:0},c),d=(0,k.assign)({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},d),a.prototype.createEl.call(this,b,c,d)},b.prototype.handleMouseDown=function(a){var b=this.bar.el_.ownerDocument;a.preventDefault(),j.blockTextSelection(),this.addClass("vjs-sliding"),this.trigger("slideractive"),this.on(b,"mousemove",this.handleMouseMove),this.on(b,"mouseup",this.handleMouseUp),this.on(b,"touchmove",this.handleMouseMove),this.on(b,"touchend",this.handleMouseUp),this.handleMouseMove(a)},b.prototype.handleMouseMove=function(a){},b.prototype.handleMouseUp=function(){var a=this.bar.el_.ownerDocument;j.unblockTextSelection(),this.removeClass("vjs-sliding"),this.trigger("sliderinactive"),this.off(a,"mousemove",this.handleMouseMove),this.off(a,"mouseup",this.handleMouseUp),this.off(a,"touchmove",this.handleMouseMove),this.off(a,"touchend",this.handleMouseUp),this.update()},b.prototype.update=function(){if(this.el_){var a=this.getPercent(),b=this.bar;if(b){("number"!=typeof a||a!==a||a<0||a===Infinity)&&(a=0);var c=(100*a).toFixed(2)+"%";this.vertical()?b.el().style.height=c:b.el().style.width=c}}},b.prototype.calculateDistance=function(a){var b=j.getPointerPosition(this.el_,a);return this.vertical()?b.y:b.x},b.prototype.handleFocus=function(){this.on(this.bar.el_.ownerDocument,"keydown",this.handleKeyPress)},b.prototype.handleKeyPress=function(a){37===a.which||40===a.which?(a.preventDefault(),this.stepBack()):38!==a.which&&39!==a.which||(a.preventDefault(),this.stepForward())},b.prototype.handleBlur=function(){this.off(this.bar.el_.ownerDocument,"keydown",this.handleKeyPress)},b.prototype.handleClick=function(a){a.stopImmediatePropagation(),a.preventDefault()},b.prototype.vertical=function(a){return a===undefined?this.vertical_||!1:(this.vertical_=!!a,this.vertical_?this.addClass("vjs-slider-vertical"):this.addClass("vjs-slider-horizontal"),this)},b}(h["default"]);h["default"].registerComponent("Slider",l),c["default"]=l},{5:5,81:81,88:88}],58:[function(a,b,c){"use strict";function d(a){return a.streamingFormats={"rtmp/mp4":"MP4","rtmp/flv":"FLV"},a.streamFromParts=function(a,b){return a+"&"+b},a.streamToParts=function(a){var b={connection:"",stream:""};if(!a)return b;var c=a.search(/&(?!\w+=)/),d=void 0;return-1!==c?d=c+1:0===(c=d=a.lastIndexOf("/")+1)&&(c=d=a.length),b.connection=a.substring(0,c),b.stream=a.substring(d,a.length),b},a.isStreamingType=function(b){return b in a.streamingFormats},a.RTMP_RE=/^rtmp[set]?:\/\//i,a.isStreamingSrc=function(b){return a.RTMP_RE.test(b)},a.rtmpSourceHandler={},a.rtmpSourceHandler.canPlayType=function(b){return a.isStreamingType(b)?"maybe":""},a.rtmpSourceHandler.canHandleSource=function(b,c){var d=a.rtmpSourceHandler.canPlayType(b.type);return d||(a.isStreamingSrc(b.src)?"maybe":"")},a.rtmpSourceHandler.handleSource=function(b,c,d){var e=a.streamToParts(b.src);c.setRtmpConnection(e.connection),c.setRtmpStream(e.stream)},a.registerSourceHandler(a.rtmpSourceHandler),a}c.__esModule=!0,c["default"]=d},{}],59:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function i(a){z[a]=function(){return this.el_.vjs_getProperty(a)}}c.__esModule=!0;for(var j=a(62),k=e(j),l=a(81),m=d(l),n=a(92),o=d(n),p=a(90),q=a(58),r=e(q),s=a(5),t=e(s),u=a(95),v=e(u),w=a(88),x=v["default"].navigator,y=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return c.source&&e.ready(function(){this.setSource(c.source)},!0),c.startTime&&e.ready(function(){this.load(),this.play(),this.currentTime(c.startTime)},!0),v["default"].videojs=v["default"].videojs||{},v["default"].videojs.Flash=v["default"].videojs.Flash||{},v["default"].videojs.Flash.onReady=b.onReady,v["default"].videojs.Flash.onEvent=b.onEvent,v["default"].videojs.Flash.onError=b.onError,e.on("seeked",function(){this.lastSeekTarget_=undefined}),e}return h(b,a),b.prototype.createEl=function(){var a=this.options_;if(!a.swf){a.swf="//vjs.zencdn.net/swf/5.4.1/video-js.swf"}var c=a.techId,d=(0,w.assign)({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.preload,loop:a.loop,muted:a.muted},a.flashVars),e=(0,w.assign)({wmode:"opaque",bgcolor:"#000000"},a.params),f=(0,w.assign)({id:c,name:c,"class":"vjs-tech"},a.attributes);return this.el_=b.embed(a.swf,d,e,f),this.el_.tech=this,this.el_},b.prototype.play=function(){this.ended()&&this.setCurrentTime(0),this.el_.vjs_play()},b.prototype.pause=function(){this.el_.vjs_pause()},b.prototype.src=function(a){return a===undefined?this.currentSrc():this.setSrc(a)},b.prototype.setSrc=function(a){var b=this;a=o.getAbsoluteURL(a),this.el_.vjs_src(a),this.autoplay()&&this.setTimeout(function(){return b.play()},0)},b.prototype.seeking=function(){return this.lastSeekTarget_!==undefined},b.prototype.setCurrentTime=function(b){var c=this.seekable();c.length&&(b=b>c.start(0)?b:c.start(0),b=b<c.end(c.length-1)?b:c.end(c.length-1),this.lastSeekTarget_=b,this.trigger("seeking"),this.el_.vjs_setProperty("currentTime",b),a.prototype.setCurrentTime.call(this))},b.prototype.currentTime=function(){return this.seeking()?this.lastSeekTarget_||0:this.el_.vjs_getProperty("currentTime")},b.prototype.currentSrc=function(){return this.currentSource_?this.currentSource_.src:this.el_.vjs_getProperty("currentSrc")},b.prototype.duration=function(){if(0===this.readyState())return NaN;var a=this.el_.vjs_getProperty("duration");return a>=0?a:Infinity},b.prototype.load=function(){this.el_.vjs_load()},b.prototype.poster=function(){this.el_.vjs_getProperty("poster")},b.prototype.setPoster=function(){},b.prototype.seekable=function(){var a=this.duration();return 0===a?(0,p.createTimeRange)():(0,p.createTimeRange)(0,a)},b.prototype.buffered=function(){var a=this.el_.vjs_getProperty("buffered");return 0===a.length?(0,p.createTimeRange)():(0,p.createTimeRange)(a[0][0],a[0][1])},b.prototype.supportsFullScreen=function(){return!1},b.prototype.enterFullScreen=function(){return!1},b.prototype.getVideoPlaybackQuality=function(){var a=this.el_.vjs_getProperty("getVideoPlaybackQuality");return v["default"].performance&&"function"==typeof v["default"].performance.now?a.creationTime=v["default"].performance.now():v["default"].performance&&v["default"].performance.timing&&"number"==typeof v["default"].performance.timing.navigationStart&&(a.creationTime=v["default"].Date.now()-v["default"].performance.timing.navigationStart),a},b}(k["default"]),z=y.prototype,A="rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted".split(","),B="networkState,readyState,initialTime,startOffsetTime,paused,ended,videoWidth,videoHeight".split(","),C=0;C<A.length;C++)i(A[C]),function(a){var b=a.charAt(0).toUpperCase()+a.slice(1);z["set"+b]=function(b){return this.el_.vjs_setProperty(a,b)}}(A[C]);for(var D=0;D<B.length;D++)i(B[D]);y.isSupported=function(){return y.version()[0]>=10},k["default"].withSourceHandlers(y),y.nativeSourceHandler={},y.nativeSourceHandler.canPlayType=function(a){return a in y.formats?"maybe":""},y.nativeSourceHandler.canHandleSource=function(a,b){var c=void 0;return c=a.type?a.type.replace(/;.*/,"").toLowerCase():function(a){var b=o.getFileExtension(a);return b?"video/"+b:""}(a.src),y.nativeSourceHandler.canPlayType(c)},y.nativeSourceHandler.handleSource=function(a,b,c){b.setSrc(a.src)},y.nativeSourceHandler.dispose=function(){},y.registerSourceHandler(y.nativeSourceHandler),y.formats={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},y.onReady=function(a){var b=m.getEl(a),c=b&&b.tech;c&&c.el()&&y.checkReady(c)},y.checkReady=function(a){a.el()&&(a.el().vjs_getProperty?a.triggerReady():this.setTimeout(function(){y.checkReady(a)},50))},y.onEvent=function(a,b){var c=m.getEl(a).tech,d=Array.prototype.slice.call(arguments,2);c.setTimeout(function(){c.trigger(b,d)},1)},y.onError=function(a,b){var c=m.getEl(a).tech;if("srcnotfound"===b)return c.error(4);c.error("FLASH: "+b)},y.version=function(){var a="0,0,0";try{a=new v["default"].ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(b){try{x.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(x.plugins["Shockwave Flash 2.0"]||x.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(c){}}return a.split(",")},y.embed=function(a,b,c,d){var e=y.getEmbedCode(a,b,c,d);return m.createEl("div",{innerHTML:e}).childNodes[0]},y.getEmbedCode=function(a,b,c,d){var e="",f="",g="";return b&&Object.getOwnPropertyNames(b).forEach(function(a){e+=a+"="+b[a]+"&amp;"}),c=(0,w.assign)({movie:a,flashvars:e,allowScriptAccess:"always",allowNetworking:"all"},c),Object.getOwnPropertyNames(c).forEach(function(a){f+='<param name="'+a+'" value="'+c[a]+'" />'}),d=(0,w.assign)({data:a,width:"100%",height:"100%"},d),Object.getOwnPropertyNames(d).forEach(function(a){g+=a+'="'+d[a]+'" '}),'<object type="application/x-shockwave-flash" '+g+">"+f+"</object>"},(0,r["default"])(y),t["default"].registerComponent("Flash",y),k["default"].registerTech("Flash",y),c["default"]=y},{5:5,58:58,62:62,81:81,88:88,90:90,92:92,95:95}],60:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=function(a,b){return a.raw=b,a}(["Text Tracks are being loaded from another origin but the crossorigin attribute isn't used.\n This may prevent text tracks from loading."],["Text Tracks are being loaded from another origin but the crossorigin attribute isn't used.\n This may prevent text tracks from loading."]),j=a(62),k=e(j),l=a(5),m=e(l),n=a(81),o=d(n),p=a(92),q=d(p),r=a(83),s=d(r),t=a(86),u=e(t),v=a(98),w=e(v),x=a(78),y=d(x),z=a(94),A=e(z),B=a(95),C=e(B),D=a(88),E=a(87),F=e(E),G=a(91),H=e(G),I=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d)),h=c.source,j=!1;if(h&&(e.el_.currentSrc!==h.src||c.tag&&3===c.tag.initNetworkState_)?e.setSource(h):e.handleLateInit_(e.el_),e.el_.hasChildNodes()){for(var k=e.el_.childNodes,l=k.length,m=[];l--;){var n=k[l];"track"===n.nodeName.toLowerCase()&&(e.featuresNativeTextTracks?(e.remoteTextTrackEls().addTrackElement_(n),e.remoteTextTracks().addTrack_(n.track),j||e.el_.hasAttribute("crossorigin")||!q.isCrossOrigin(n.src)||(j=!0)):m.push(n))}for(var o=0;o<m.length;o++)e.el_.removeChild(m[o])}return["audio","video"].forEach(function(a){var b=e.el()[a+"Tracks"],c=e[a+"Tracks"](),d=(0,H["default"])(a);e["featuresNative"+d+"Tracks"]&&b&&b.addEventListener&&(e["handle"+d+"TrackChange_"]=function(a){c.trigger({type:"change",target:c,currentTarget:c,srcElement:c})},e["handle"+d+"TrackAdd_"]=function(a){return c.addTrack(a.track)},e["handle"+d+"TrackRemove_"]=function(a){return c.removeTrack(a.track)},b.addEventListener("change",e["handle"+d+"TrackChange_"]),b.addEventListener("addtrack",e["handle"+d+"TrackAdd_"]),b.addEventListener("removetrack",e["handle"+d+"TrackRemove_"]),e["removeOld"+d+"Tracks_"]=function(a){return e.removeOldTracks_(c,b)},e.on("loadstart",e["removeOld"+d+"Tracks_"]))}),e.featuresNativeTextTracks&&(j&&u["default"].warn((0,w["default"])(i)),e.handleTextTrackChange_=s.bind(e,e.handleTextTrackChange),e.handleTextTrackAdd_=s.bind(e,e.handleTextTrackAdd),e.handleTextTrackRemove_=s.bind(e,e.handleTextTrackRemove),e.proxyNativeTextTracks_()),e.restoreMetadataTracksInIOSNativePlayer_(),(y.TOUCH_ENABLED||y.IS_IPHONE||y.IS_NATIVE_ANDROID)&&!0===c.nativeControlsForTouch&&e.setControls(!0),e.proxyWebkitFullscreen_(),e.triggerReady(),e}return h(b,a),b.prototype.dispose=function(){var c=this;["audio","video","text"].forEach(function(a){var b=(0,H["default"])(a),d=c.el_[a+"Tracks"];d&&d.removeEventListener&&(d.removeEventListener("change",c["handle"+b+"TrackChange_"]),d.removeEventListener("addtrack",c["handle"+b+"TrackAdd_"]),d.removeEventListener("removetrack",c["handle"+b+"TrackRemove_"])),d&&c.off("loadstart",c["removeOld"+b+"Tracks_"])}),b.disposeMediaElement(this.el_),a.prototype.dispose.call(this)},b.prototype.restoreMetadataTracksInIOSNativePlayer_=function(){var a=this.textTracks(),b=void 0,c=function(){b=[];for(var c=0;c<a.length;c++){var d=a[c];"metadata"===d.kind&&b.push({track:d,storedMode:d.mode})}};c(),a.addEventListener("change",c);var d=function e(){for(var c=0;c<b.length;c++){var d=b[c];"disabled"===d.track.mode&&d.track.mode!==d.storedMode&&(d.track.mode=d.storedMode)}a.removeEventListener("change",e)};this.on("webkitbeginfullscreen",function(){a.removeEventListener("change",c),a.removeEventListener("change",d),a.addEventListener("change",d)}),this.on("webkitendfullscreen",function(){a.removeEventListener("change",c),a.addEventListener("change",c),a.removeEventListener("change",d)})},b.prototype.createEl=function(){var a=this.options_.tag;if(!a||!this.options_.playerElIngest&&!this.movingMediaElementInDOM){if(a){var c=a.cloneNode(!0);a.parentNode&&a.parentNode.insertBefore(c,a),b.disposeMediaElement(a),a=c}else{a=A["default"].createElement("video");var d=this.options_.tag&&o.getElAttributes(this.options_.tag),e=(0,F["default"])({},d);y.TOUCH_ENABLED&&!0===this.options_.nativeControlsForTouch||delete e.controls,o.setElAttributes(a,(0,D.assign)(e,{id:this.options_.techId,"class":"vjs-tech"}))}a.playerId=this.options_.playerId}"undefined"!=typeof this.options_.preload&&o.setAttribute(a,"preload",this.options_.preload);for(var f=["loop","muted","playsinline","autoplay"],g=f.length-1;g>=0;g--){var h=f[g],i=this.options_[h];void 0!==i&&(i?o.setAttribute(a,h,h):o.removeAttribute(a,h),a[h]=i)}return a},b.prototype.handleLateInit_=function(a){if(0!==a.networkState&&3!==a.networkState){if(0===a.readyState){var b=!1,c=function(){b=!0};this.on("loadstart",c);var d=function(){b||this.trigger("loadstart")};return this.on("loadedmetadata",d),void this.ready(function(){this.off("loadstart",c),this.off("loadedmetadata",d),b||this.trigger("loadstart")})}var e=["loadstart"];e.push("loadedmetadata"),a.readyState>=2&&e.push("loadeddata"),a.readyState>=3&&e.push("canplay"),a.readyState>=4&&e.push("canplaythrough"),this.ready(function(){e.forEach(function(a){this.trigger(a)},this)})}},b.prototype.proxyNativeTextTracks_=function(){var a=this.el().textTracks;if(a){for(var b=0;b<a.length;b++)this.textTracks().addTrack_(a[b]);a.addEventListener&&(a.addEventListener("change",this.handleTextTrackChange_),a.addEventListener("addtrack",this.handleTextTrackAdd_),a.addEventListener("removetrack",this.handleTextTrackRemove_)),this.on("loadstart",this.removeOldTextTracks_)}},b.prototype.handleTextTrackChange=function(a){var b=this.textTracks();this.textTracks().trigger({type:"change",target:b,currentTarget:b,srcElement:b})},b.prototype.handleTextTrackAdd=function(a){this.textTracks().addTrack_(a.track)},b.prototype.handleTextTrackRemove=function(a){this.textTracks().removeTrack_(a.track)},b.prototype.removeOldTracks_=function(a,b){var c=[];if(b){for(var d=0;d<a.length;d++){for(var e=a[d],f=!1,g=0;g<b.length;g++)if(b[g]===e){f=!0;break}f||c.push(e)}for(var h=0;h<c.length;h++){var i=c[h];a.removeTrack_(i)}}},b.prototype.removeOldTextTracks_=function(a){var b=this.textTracks(),c=this.el().textTracks;this.removeOldTracks_(b,c)},b.prototype.play=function(){var a=this.el_.play();a!==undefined&&"function"==typeof a.then&&a.then(null,function(a){})},b.prototype.setCurrentTime=function(a){try{this.el_.currentTime=a}catch(b){(0,u["default"])(b,"Video is not ready. (Video.js)")}},b.prototype.duration=function(){var a=this;if(this.el_.duration===Infinity&&y.IS_ANDROID&&y.IS_CHROME&&0===this.el_.currentTime){var b=function c(){a.el_.currentTime>0&&(a.el_.duration===Infinity&&a.trigger("durationchange"),a.off("timeupdate",c))};return this.on("timeupdate",b),NaN}return this.el_.duration||NaN},b.prototype.width=function(){return this.el_.offsetWidth},b.prototype.height=function(){return this.el_.offsetHeight},b.prototype.proxyWebkitFullscreen_=function(){var a=this;if("webkitDisplayingFullscreen"in this.el_){var b=function(){this.trigger("fullscreenchange",{isFullscreen:!1})},c=function(){"webkitPresentationMode"in this.el_&&"picture-in-picture"!==this.el_.webkitPresentationMode&&(this.one("webkitendfullscreen",b),this.trigger("fullscreenchange",{isFullscreen:!0}))};this.on("webkitbeginfullscreen",c),this.on("dispose",function(){a.off("webkitbeginfullscreen",c),a.off("webkitendfullscreen",b)})}},b.prototype.supportsFullScreen=function(){if("function"==typeof this.el_.webkitEnterFullScreen){var a=C["default"].navigator&&C["default"].navigator.userAgent||"";if(/Android/.test(a)||!/Chrome|Mac OS X 10.5/.test(a))return!0}return!1},b.prototype.enterFullScreen=function(){var a=this.el_;a.paused&&a.networkState<=a.HAVE_METADATA?(this.el_.play(),this.setTimeout(function(){a.pause(),a.webkitEnterFullScreen()},0)):a.webkitEnterFullScreen()},b.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()},b.prototype.src=function(a){if(a===undefined)return this.el_.src;this.setSrc(a)},b.prototype.reset=function(){b.resetMediaElement(this.el_)},b.prototype.currentSrc=function(){return this.currentSource_?this.currentSource_.src:this.el_.currentSrc},b.prototype.setControls=function(a){this.el_.controls=!!a},b.prototype.addTextTrack=function(b,c,d){return this.featuresNativeTextTracks?this.el_.addTextTrack(b,c,d):a.prototype.addTextTrack.call(this,b,c,d)},b.prototype.createRemoteTextTrack=function(b){if(!this.featuresNativeTextTracks)return a.prototype.createRemoteTextTrack.call(this,b);var c=A["default"].createElement("track");return b.kind&&(c.kind=b.kind),b.label&&(c.label=b.label),(b.language||b.srclang)&&(c.srclang=b.language||b.srclang),b["default"]&&(c["default"]=b["default"]),b.id&&(c.id=b.id),b.src&&(c.src=b.src),c},b.prototype.addRemoteTextTrack=function(b,c){var d=a.prototype.addRemoteTextTrack.call(this,b,c);return this.featuresNativeTextTracks&&this.el().appendChild(d),d},b.prototype.removeRemoteTextTrack=function(b){if(a.prototype.removeRemoteTextTrack.call(this,b),this.featuresNativeTextTracks)for(var c=this.$$("track"),d=c.length;d--;)b!==c[d]&&b!==c[d].track||this.el().removeChild(c[d])},b.prototype.getVideoPlaybackQuality=function(){if("function"==typeof this.el().getVideoPlaybackQuality)return this.el().getVideoPlaybackQuality();var a={};return"undefined"!=typeof this.el().webkitDroppedFrameCount&&"undefined"!=typeof this.el().webkitDecodedFrameCount&&(a.droppedVideoFrames=this.el().webkitDroppedFrameCount,a.totalVideoFrames=this.el().webkitDecodedFrameCount),C["default"].performance&&"function"==typeof C["default"].performance.now?a.creationTime=C["default"].performance.now():C["default"].performance&&C["default"].performance.timing&&"number"==typeof C["default"].performance.timing.navigationStart&&(a.creationTime=C["default"].Date.now()-C["default"].performance.timing.navigationStart),a},b}(k["default"]);if(o.isReal()){I.TEST_VID=A["default"].createElement("video");var J=A["default"].createElement("track");J.kind="captions",J.srclang="en",J.label="English",I.TEST_VID.appendChild(J)}I.isSupported=function(){try{I.TEST_VID.volume=.5}catch(a){return!1}return!(!I.TEST_VID||!I.TEST_VID.canPlayType)},I.canControlVolume=function(){try{var a=I.TEST_VID.volume;return I.TEST_VID.volume=a/2+.1,a!==I.TEST_VID.volume}catch(b){return!1}},I.canControlPlaybackRate=function(){if(y.IS_ANDROID&&y.IS_CHROME&&y.CHROME_VERSION<58)return!1;try{var a=I.TEST_VID.playbackRate;return I.TEST_VID.playbackRate=a/2+.1,a!==I.TEST_VID.playbackRate}catch(b){return!1}},I.supportsNativeTextTracks=function(){return y.IS_ANY_SAFARI},I.supportsNativeVideoTracks=function(){return!(!I.TEST_VID||!I.TEST_VID.videoTracks)},I.supportsNativeAudioTracks=function(){return!(!I.TEST_VID||!I.TEST_VID.audioTracks)},I.Events=["loadstart","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","ended","durationchange","timeupdate","progress","play","pause","ratechange","volumechange"],I.prototype.featuresVolumeControl=I.canControlVolume(),I.prototype.featuresPlaybackRate=I.canControlPlaybackRate(),I.prototype.movingMediaElementInDOM=!y.IS_IOS,I.prototype.featuresFullscreenResize=!0,I.prototype.featuresProgressEvents=!0,I.prototype.featuresTimeupdateEvents=!0,I.prototype.featuresNativeTextTracks=I.supportsNativeTextTracks(),I.prototype.featuresNativeVideoTracks=I.supportsNativeVideoTracks(),I.prototype.featuresNativeAudioTracks=I.supportsNativeAudioTracks();var K=I.TEST_VID&&I.TEST_VID.constructor.prototype.canPlayType,L=/^application\/(?:x-|vnd\.apple\.)mpegurl/i,M=/^video\/mp4/i;I.patchCanPlayType=function(){y.ANDROID_VERSION>=4&&!y.IS_FIREFOX?I.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&L.test(a)?"maybe":K.call(this,a)}:y.IS_OLD_ANDROID&&(I.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&M.test(a)?"maybe":K.call(this,a)})},I.unpatchCanPlayType=function(){var a=I.TEST_VID.constructor.prototype.canPlayType;return I.TEST_VID.constructor.prototype.canPlayType=K,a},I.patchCanPlayType(),I.disposeMediaElement=function(a){if(a){for(a.parentNode&&a.parentNode.removeChild(a);a.hasChildNodes();)a.removeChild(a.firstChild);a.removeAttribute("src"),"function"==typeof a.load&&function(){try{a.load()}catch(b){}}()}},I.resetMediaElement=function(a){if(a){for(var b=a.querySelectorAll("source"),c=b.length;c--;)a.removeChild(b[c]);a.removeAttribute("src"),"function"==typeof a.load&&function(){try{a.load()}catch(b){}}()}},["muted","defaultMuted","autoplay","controls","loop","playsinline"].forEach(function(a){I.prototype[a]=function(){return this.el_[a]||this.el_.hasAttribute(a)}}),["muted","defaultMuted","autoplay","loop","playsinline"].forEach(function(a){I.prototype["set"+(0,H["default"])(a)]=function(b){this.el_[a]=b,b?this.el_.setAttribute(a,a):this.el_.removeAttribute(a)}}),["paused","currentTime","buffered","volume","poster","preload","error","seeking","seekable","ended","playbackRate","played","networkState","readyState","videoWidth","videoHeight"].forEach(function(a){I.prototype[a]=function(){return this.el_[a]}}),["volume","src","poster","preload","playbackRate"].forEach(function(a){I.prototype["set"+(0,H["default"])(a)]=function(b){this.el_[a]=b}}),["pause","load"].forEach(function(a){I.prototype[a]=function(){return this.el_[a]()}}),k["default"].withSourceHandlers(I),I.nativeSourceHandler={},I.nativeSourceHandler.canPlayType=function(a){try{return I.TEST_VID.canPlayType(a)}catch(b){return""}},I.nativeSourceHandler.canHandleSource=function(a,b){if(a.type)return I.nativeSourceHandler.canPlayType(a.type);if(a.src){var c=q.getFileExtension(a.src);return I.nativeSourceHandler.canPlayType("video/"+c)}return""},I.nativeSourceHandler.handleSource=function(a,b,c){b.setSrc(a.src)},I.nativeSourceHandler.dispose=function(){},I.registerSourceHandler(I.nativeSourceHandler),m["default"].registerComponent("Html5",I),k["default"].registerTech("Html5",I),c["default"]=I},{5:5,62:62,78:78,81:81,83:83,86:86,87:87,88:88,91:91,92:92,94:94,95:95,98:98}],61:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=a(62),k=d(j),l=a(91),m=d(l),n=function(a){function b(c,d,g){e(this,b);var h=f(this,a.call(this,c,d,g));if(d.playerOptions.sources&&0!==d.playerOptions.sources.length)c.src(d.playerOptions.sources);else for(var j=0,l=d.playerOptions.techOrder;j<l.length;j++){var n=(0,m["default"])(l[j]),o=k["default"].getTech(n);if(n||(o=i["default"].getComponent(n)),o&&o.isSupported()){c.loadTech_(n);break}}return h}return g(b,a),b}(i["default"]);i["default"].registerComponent("MediaLoader",n),c["default"]=n},{5:5,62:62,91:91}],62:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a,b,c,d){var e=arguments.length>4&&arguments[4]!==undefined?arguments[4]:{},f=a.textTracks();e.kind=b,c&&(e.label=c),d&&(e.language=d),e.tech=a;var g=new r["default"](e);return f.addTrack_(g),g}c.__esModule=!0;var i=a(5),j=d(i),k=a(66),l=d(k),m=a(65),n=d(m),o=a(87),p=d(o),q=a(72),r=d(q),s=a(70),t=d(s),u=a(76),v=d(u),w=a(63),x=d(w),y=a(83),z=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(y),A=a(86),B=d(A),C=a(90),D=a(79),E=a(46),F=d(E),G=a(95),H=d(G),I=a(94),J=d(I),K=a(88),L=function(b){function c(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},d=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(){};e(this,c),a.reportTouchActivity=!1;var g=f(this,b.call(this,null,a,d));return g.hasStarted_=!1,g.on("playing",function(){this.hasStarted_=!0}),g.on("loadstart",function(){this.hasStarted_=!1}),g.textTracks_=a.textTracks,g.videoTracks_=a.videoTracks,g.audioTracks_=a.audioTracks,g.featuresProgressEvents||g.manualProgressOn(),g.featuresTimeupdateEvents||g.manualTimeUpdatesOn(),["Text","Audio","Video"].forEach(function(b){!1===a["native"+b+"Tracks"]&&(g["featuresNative"+b+"Tracks"]=!1)}),
17
- !1===a.nativeCaptions&&(g.featuresNativeTextTracks=!1),g.featuresNativeTextTracks||g.emulateTextTracks(),g.autoRemoteTextTracks_=new t["default"],g.initTextTrackListeners(),g.initTrackListeners(),a.nativeControlsForTouch||g.emitTapEvents(),g.constructor&&(g.name_=g.constructor.name||"Unknown Tech"),g}return g(c,b),c.prototype.manualProgressOn=function(){this.on("durationchange",this.onDurationChange),this.manualProgress=!0,this.one("ready",this.trackProgress)},c.prototype.manualProgressOff=function(){this.manualProgress=!1,this.stopTrackingProgress(),this.off("durationchange",this.onDurationChange)},c.prototype.trackProgress=function(a){this.stopTrackingProgress(),this.progressInterval=this.setInterval(z.bind(this,function(){var a=this.bufferedPercent();this.bufferedPercent_!==a&&this.trigger("progress"),this.bufferedPercent_=a,1===a&&this.stopTrackingProgress()}),500)},c.prototype.onDurationChange=function(a){this.duration_=this.duration()},c.prototype.buffered=function(){return(0,C.createTimeRange)(0,0)},c.prototype.bufferedPercent=function(){return(0,D.bufferedPercent)(this.buffered(),this.duration_)},c.prototype.stopTrackingProgress=function(){this.clearInterval(this.progressInterval)},c.prototype.manualTimeUpdatesOn=function(){this.manualTimeUpdates=!0,this.on("play",this.trackCurrentTime),this.on("pause",this.stopTrackingCurrentTime)},c.prototype.manualTimeUpdatesOff=function(){this.manualTimeUpdates=!1,this.stopTrackingCurrentTime(),this.off("play",this.trackCurrentTime),this.off("pause",this.stopTrackingCurrentTime)},c.prototype.trackCurrentTime=function(){this.currentTimeInterval&&this.stopTrackingCurrentTime(),this.currentTimeInterval=this.setInterval(function(){this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},250)},c.prototype.stopTrackingCurrentTime=function(){this.clearInterval(this.currentTimeInterval),this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},c.prototype.dispose=function(){this.clearTracks(["audio","video","text"]),this.manualProgress&&this.manualProgressOff(),this.manualTimeUpdates&&this.manualTimeUpdatesOff(),b.prototype.dispose.call(this)},c.prototype.clearTracks=function(a){var b=this;a=[].concat(a),a.forEach(function(a){for(var c=b[a+"Tracks"]()||[],d=c.length;d--;){var e=c[d];"text"===a&&b.removeRemoteTextTrack(e),c.removeTrack_(e)}})},c.prototype.cleanupAutoTextTracks=function(){for(var a=this.autoRemoteTextTracks_||[],b=a.length;b--;){var c=a[b];this.removeRemoteTextTrack(c)}},c.prototype.reset=function(){},c.prototype.error=function(a){return a!==undefined&&(this.error_=new F["default"](a),this.trigger("error")),this.error_},c.prototype.played=function(){return this.hasStarted_?(0,C.createTimeRange)(0,0):(0,C.createTimeRange)()},c.prototype.setCurrentTime=function(){this.manualTimeUpdates&&this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},c.prototype.initTextTrackListeners=function(){var a=z.bind(this,function(){this.trigger("texttrackchange")}),b=this.textTracks();b&&(b.addEventListener("removetrack",a),b.addEventListener("addtrack",a),this.on("dispose",z.bind(this,function(){b.removeEventListener("removetrack",a),b.removeEventListener("addtrack",a)})))},c.prototype.initTrackListeners=function(){var a=this;["video","audio"].forEach(function(b){var c=function(){a.trigger(b+"trackchange")},d=a[b+"Tracks"]();d.addEventListener("removetrack",c),d.addEventListener("addtrack",c),a.on("dispose",function(){d.removeEventListener("removetrack",c),d.removeEventListener("addtrack",c)})})},c.prototype.addWebVttScript_=function(){var b=this;if(!H["default"].WebVTT)if(J["default"].body.contains(this.el())){var c=a(99);if(!this.options_["vtt.js"]&&(0,K.isPlain)(c)&&Object.keys(c).length>0)return void this.trigger("vttjsloaded");var d=J["default"].createElement("script");d.src=this.options_["vtt.js"]||"https://vjs.zencdn.net/vttjs/0.12.4/vtt.min.js",d.onload=function(){b.trigger("vttjsloaded")},d.onerror=function(){b.trigger("vttjserror")},this.on("dispose",function(){d.onload=null,d.onerror=null}),H["default"].WebVTT=!0,this.el().parentNode.appendChild(d)}else this.ready(this.addWebVttScript_)},c.prototype.emulateTextTracks=function(){var a=this,b=this.textTracks();if(b){var c=this.remoteTextTracks(),d=function(a){return b.addTrack_(a.track)},e=function(a){return b.removeTrack_(a.track)};c.on("addtrack",d),c.on("removetrack",e),this.addWebVttScript_();var f=function(){return a.trigger("texttrackchange")},g=function(){f();for(var a=0;a<b.length;a++){var c=b[a];c.removeEventListener("cuechange",f),"showing"===c.mode&&c.addEventListener("cuechange",f)}};g(),b.addEventListener("change",g),b.addEventListener("addtrack",g),b.addEventListener("removetrack",g),this.on("dispose",function(){c.off("addtrack",d),c.off("removetrack",e),b.removeEventListener("change",g),b.removeEventListener("addtrack",g),b.removeEventListener("removetrack",g);for(var a=0;a<b.length;a++){b[a].removeEventListener("cuechange",f)}})}},c.prototype.videoTracks=function(){return this.videoTracks_=this.videoTracks_||new v["default"],this.videoTracks_},c.prototype.audioTracks=function(){return this.audioTracks_=this.audioTracks_||new x["default"],this.audioTracks_},c.prototype.textTracks=function(){return this.textTracks_=this.textTracks_||new t["default"],this.textTracks_},c.prototype.remoteTextTracks=function(){return this.remoteTextTracks_=this.remoteTextTracks_||new t["default"],this.remoteTextTracks_},c.prototype.remoteTextTrackEls=function(){return this.remoteTextTrackEls_=this.remoteTextTrackEls_||new n["default"],this.remoteTextTrackEls_},c.prototype.addTextTrack=function(a,b,c){if(!a)throw new Error("TextTrack kind is required but was not provided");return h(this,a,b,c)},c.prototype.createRemoteTextTrack=function(a){var b=(0,p["default"])(a,{tech:this});return new l["default"](b)},c.prototype.addRemoteTextTrack=function(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},b=arguments[1],c=this.createRemoteTextTrack(a);return!0!==b&&!1!==b&&(B["default"].warn('Calling addRemoteTextTrack without explicitly setting the "manualCleanup" parameter to `true` is deprecated and default to `false` in future version of video.js'),b=!0),this.remoteTextTrackEls().addTrackElement_(c),this.remoteTextTracks().addTrack_(c.track),!0!==b&&this.autoRemoteTextTracks_.addTrack_(c.track),c},c.prototype.removeRemoteTextTrack=function(a){var b=this.remoteTextTrackEls().getTrackElementByTrack_(a);this.remoteTextTrackEls().removeTrackElement_(b),this.remoteTextTracks().removeTrack_(a),this.autoRemoteTextTracks_.removeTrack_(a)},c.prototype.getVideoPlaybackQuality=function(){return{}},c.prototype.setPoster=function(){},c.prototype.playsinline=function(){},c.prototype.setPlaysinline=function(){},c.prototype.canPlayType=function(){return""},c.isTech=function(a){return a.prototype instanceof c||a instanceof c||a===c},c.registerTech=function(a,b){if(c.techs_||(c.techs_={}),!c.isTech(b))throw new Error("Tech "+a+" must be a Tech");return c.techs_[a]=b,b},c.getTech=function(a){return c.techs_&&c.techs_[a]?c.techs_[a]:H["default"]&&H["default"].videojs&&H["default"].videojs[a]?(B["default"].warn("The "+a+" tech was added to the videojs object when it should be registered using videojs.registerTech(name, tech)"),H["default"].videojs[a]):void 0},c}(j["default"]);L.prototype.textTracks_,L.prototype.audioTracks_,L.prototype.videoTracks_,L.prototype.featuresVolumeControl=!0,L.prototype.featuresFullscreenResize=!1,L.prototype.featuresPlaybackRate=!1,L.prototype.featuresProgressEvents=!1,L.prototype.featuresTimeupdateEvents=!1,L.prototype.featuresNativeTextTracks=!1,L.withSourceHandlers=function(a){a.registerSourceHandler=function(b,c){var d=a.sourceHandlers;d||(d=a.sourceHandlers=[]),c===undefined&&(c=d.length),d.splice(c,0,b)},a.canPlayType=function(b){for(var c=a.sourceHandlers||[],d=void 0,e=0;e<c.length;e++)if(d=c[e].canPlayType(b))return d;return""},a.selectSourceHandler=function(b,c){for(var d=a.sourceHandlers||[],e=0;e<d.length;e++)if(d[e].canHandleSource(b,c))return d[e];return null},a.canPlaySource=function(b,c){var d=a.selectSourceHandler(b,c);return d?d.canHandleSource(b,c):""},["seekable","duration"].forEach(function(a){var b=this[a];"function"==typeof b&&(this[a]=function(){return this.sourceHandler_&&this.sourceHandler_[a]?this.sourceHandler_[a].apply(this.sourceHandler_,arguments):b.apply(this,arguments)})},a.prototype),a.prototype.setSource=function(b){var c=a.selectSourceHandler(b,this.options_);return c||(a.nativeSourceHandler?c=a.nativeSourceHandler:B["default"].error("No source hander found for the current source.")),this.disposeSourceHandler(),this.off("dispose",this.disposeSourceHandler),c!==a.nativeSourceHandler&&(this.currentSource_=b,this.off(this.el_,"loadstart",a.prototype.firstLoadStartListener_),this.off(this.el_,"loadstart",a.prototype.successiveLoadStartListener_),this.one(this.el_,"loadstart",a.prototype.firstLoadStartListener_)),this.sourceHandler_=c.handleSource(b,this,this.options_),this.on("dispose",this.disposeSourceHandler),this},a.prototype.firstLoadStartListener_=function(){this.one(this.el_,"loadstart",a.prototype.successiveLoadStartListener_)},a.prototype.successiveLoadStartListener_=function(){this.disposeSourceHandler(),this.one(this.el_,"loadstart",a.prototype.successiveLoadStartListener_)},a.prototype.disposeSourceHandler=function(){this.currentSource_&&(this.clearTracks(["audio","video"]),this.currentSource_=null),this.cleanupAutoTextTracks(),this.sourceHandler_&&(this.off(this.el_,"loadstart",a.prototype.firstLoadStartListener_),this.off(this.el_,"loadstart",a.prototype.successiveLoadStartListener_),this.sourceHandler_.dispose&&this.sourceHandler_.dispose(),this.sourceHandler_=null)}},j["default"].registerComponent("Tech",L),j["default"].registerComponent("MediaTechController",L),L.registerTech("Tech",L),c["default"]=L},{46:46,5:5,63:63,65:65,66:66,70:70,72:72,76:76,79:79,83:83,86:86,87:87,88:88,90:90,94:94,95:95,99:99}],63:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(74),i=d(h),j=a(78),k=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(j),l=a(94),m=d(l),n=function(a,b){for(var c=0;c<a.length;c++)b.id!==a[c].id&&(a[c].enabled=!1)},o=function(a){function b(){var c,d,g=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];e(this,b);for(var h=void 0,j=g.length-1;j>=0;j--)if(g[j].enabled){n(g,g[j]);break}if(k.IS_IE8){h=m["default"].createElement("custom");for(var l in i["default"].prototype)"constructor"!==l&&(h[l]=i["default"].prototype[l]);for(var o in b.prototype)"constructor"!==o&&(h[o]=b.prototype[o])}return h=c=f(this,a.call(this,g,h)),h.changing_=!1,d=h,f(c,d)}return g(b,a),b.prototype.addTrack_=function(b){var c=this;b.enabled&&n(this,b),a.prototype.addTrack_.call(this,b),b.addEventListener&&b.addEventListener("enabledchange",function(){c.changing_||(c.changing_=!0,n(c,b),c.changing_=!1,c.trigger("change"))})},b.prototype.addTrack=function(a){this.addTrack_(a)},b.prototype.removeTrack=function(b){a.prototype.removeTrack_.call(this,b)},b}(i["default"]);c["default"]=o},{74:74,78:78,94:94}],64:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(73),i=a(75),j=d(i),k=a(87),l=d(k),m=a(78),n=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(m),o=function(a){function b(){var c,d,g=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};e(this,b);var i=(0,l["default"])(g,{kind:h.AudioTrackKind[g.kind]||""}),j=c=f(this,a.call(this,i)),k=!1;if(n.IS_IE8)for(var m in b.prototype)"constructor"!==m&&(j[m]=b.prototype[m]);return Object.defineProperty(j,"enabled",{get:function(){return k},set:function(a){"boolean"==typeof a&&a!==k&&(k=a,this.trigger("enabledchange"))}}),i.enabled&&(j.enabled=i.enabled),j.loaded_=!0,d=j,f(c,d)}return g(b,a),b}(j["default"]);c["default"]=o},{73:73,75:75,78:78,87:87}],65:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}c.__esModule=!0;var e=a(78),f=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(e),g=a(94),h=function(a){return a&&a.__esModule?a:{"default":a}}(g),i=function(){function a(){var b=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];d(this,a);var c=this;if(f.IS_IE8){c=h["default"].createElement("custom");for(var e in a.prototype)"constructor"!==e&&(c[e]=a.prototype[e])}c.trackElements_=[],Object.defineProperty(c,"length",{get:function(){return this.trackElements_.length}});for(var g=0,i=b.length;g<i;g++)c.addTrackElement_(b[g]);if(f.IS_IE8)return c}return a.prototype.addTrackElement_=function(a){var b=this.trackElements_.length;""+b in this||Object.defineProperty(this,b,{get:function(){return this.trackElements_[b]}}),-1===this.trackElements_.indexOf(a)&&this.trackElements_.push(a)},a.prototype.getTrackElementByTrack_=function(a){for(var b=void 0,c=0,d=this.trackElements_.length;c<d;c++)if(a===this.trackElements_[c].track){b=this.trackElements_[c];break}return b},a.prototype.removeTrackElement_=function(a){for(var b=0,c=this.trackElements_.length;b<c;b++)if(a===this.trackElements_[b]){this.trackElements_.splice(b,1);break}},a}();c["default"]=i},{78:78,94:94}],66:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(78),i=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(h),j=a(94),k=d(j),l=a(42),m=d(l),n=a(72),o=d(n),p=0,q=2,r=function(a){function b(){var c=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};e(this,b);var d=f(this,a.call(this)),g=void 0,h=d;if(i.IS_IE8){h=k["default"].createElement("custom");for(var j in b.prototype)"constructor"!==j&&(h[j]=b.prototype[j])}var l=new o["default"](c);if(h.kind=l.kind,h.src=l.src,h.srclang=l.language,h.label=l.label,h["default"]=l["default"],Object.defineProperty(h,"readyState",{get:function(){return g}}),Object.defineProperty(h,"track",{get:function(){return l}}),g=p,l.addEventListener("loadeddata",function(){g=q,h.trigger({type:"load",target:h})}),i.IS_IE8){var m;return m=h,f(d,m)}return d}return g(b,a),b}(m["default"]);r.prototype.allowedEvents_={load:"load"},r.NONE=p,r.LOADING=1,r.LOADED=q,r.ERROR=3,c["default"]=r},{42:42,72:72,78:78,94:94}],67:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}c.__esModule=!0;var e=a(78),f=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(e),g=a(94),h=function(a){return a&&a.__esModule?a:{"default":a}}(g),i=function(){function a(b){d(this,a);var c=this;if(f.IS_IE8){c=h["default"].createElement("custom");for(var e in a.prototype)"constructor"!==e&&(c[e]=a.prototype[e])}if(a.prototype.setCues_.call(c,b),Object.defineProperty(c,"length",{get:function(){return this.length_}}),f.IS_IE8)return c}return a.prototype.setCues_=function(a){var b=this.length||0,c=0,d=a.length;this.cues_=a,this.length_=a.length;var e=function(a){""+a in this||Object.defineProperty(this,""+a,{get:function(){return this.cues_[a]}})};if(b<d)for(c=b;c<d;c++)e.call(this,c)},a.prototype.getCueById=function(a){for(var b=null,c=0,d=this.length;c<d;c++){var e=this[c];if(e.id===a){b=e;break}}return b},a}();c["default"]=i},{78:78,94:94}],68:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a,b){return"rgba("+parseInt(a[1]+a[1],16)+","+parseInt(a[2]+a[2],16)+","+parseInt(a[3]+a[3],16)+","+b+")"}function i(a,b,c){try{a.style[b]=c}catch(d){return}}c.__esModule=!0;var j=a(5),k=d(j),l=a(83),m=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(l),n=a(95),o=d(n),p={monospace:"monospace",sansSerif:"sans-serif",serif:"serif",monospaceSansSerif:'"Andale Mono", "Lucida Console", monospace',monospaceSerif:'"Courier New", monospace',proportionalSansSerif:"sans-serif",proportionalSerif:"serif",casual:'"Comic Sans MS", Impact, fantasy',script:'"Monotype Corsiva", cursive',smallcaps:'"Andale Mono", "Lucida Console", monospace, sans-serif'},q=function(a){function b(c,d,g){e(this,b);var h=f(this,a.call(this,c,d,g));return c.on("loadstart",m.bind(h,h.toggleDisplay)),c.on("texttrackchange",m.bind(h,h.updateDisplay)),c.ready(m.bind(h,function(){if(c.tech_&&c.tech_.featuresNativeTextTracks)return void this.hide();c.on("fullscreenchange",m.bind(this,this.updateDisplay));for(var a=this.options_.playerOptions.tracks||[],b=0;b<a.length;b++)this.player_.addRemoteTextTrack(a[b],!0);var d={captions:1,subtitles:1},e=this.player_.textTracks(),f=void 0,g=void 0;if(e){for(var h=0;h<e.length;h++){var i=e[h];i["default"]&&("descriptions"!==i.kind||f?i.kind in d&&!g&&(g=i):f=i)}g?g.mode="showing":f&&(f.mode="showing")}})),h}return g(b,a),b.prototype.toggleDisplay=function(){this.player_.tech_&&this.player_.tech_.featuresNativeTextTracks?this.hide():this.show()},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-text-track-display"},{"aria-live":"off","aria-atomic":"true"})},b.prototype.clearDisplay=function(){"function"==typeof o["default"].WebVTT&&o["default"].WebVTT.processCues(o["default"],[],this.el_)},b.prototype.updateDisplay=function(){var a=this.player_.textTracks();if(this.clearDisplay(),a){for(var b=null,c=null,d=a.length;d--;){var e=a[d];"showing"===e.mode&&("descriptions"===e.kind?b=e:c=e)}c?("off"!==this.getAttribute("aria-live")&&this.setAttribute("aria-live","off"),this.updateForTrack(c)):b&&("assertive"!==this.getAttribute("aria-live")&&this.setAttribute("aria-live","assertive"),this.updateForTrack(b))}},b.prototype.updateForTrack=function(a){if("function"==typeof o["default"].WebVTT&&a.activeCues){for(var b=this.player_.textTrackSettings.getValues(),c=[],d=0;d<a.activeCues.length;d++)c.push(a.activeCues[d]);o["default"].WebVTT.processCues(o["default"],c,this.el_);for(var e=c.length;e--;){var f=c[e];if(f){var g=f.displayState;if(b.color&&(g.firstChild.style.color=b.color),b.textOpacity&&i(g.firstChild,"color",h(b.color||"#fff",b.textOpacity)),b.backgroundColor&&(g.firstChild.style.backgroundColor=b.backgroundColor),b.backgroundOpacity&&i(g.firstChild,"backgroundColor",h(b.backgroundColor||"#000",b.backgroundOpacity)),b.windowColor&&(b.windowOpacity?i(g,"backgroundColor",h(b.windowColor,b.windowOpacity)):g.style.backgroundColor=b.windowColor),b.edgeStyle&&("dropshadow"===b.edgeStyle?g.firstChild.style.textShadow="2px 2px 3px #222, 2px 2px 4px #222, 2px 2px 5px #222":"raised"===b.edgeStyle?g.firstChild.style.textShadow="1px 1px #222, 2px 2px #222, 3px 3px #222":"depressed"===b.edgeStyle?g.firstChild.style.textShadow="1px 1px #ccc, 0 1px #ccc, -1px -1px #222, 0 -1px #222":"uniform"===b.edgeStyle&&(g.firstChild.style.textShadow="0 0 4px #222, 0 0 4px #222, 0 0 4px #222, 0 0 4px #222")),b.fontPercent&&1!==b.fontPercent){var j=o["default"].parseFloat(g.style.fontSize);g.style.fontSize=j*b.fontPercent+"px",g.style.height="auto",g.style.top="auto",g.style.bottom="2px"}b.fontFamily&&"default"!==b.fontFamily&&("small-caps"===b.fontFamily?g.firstChild.style.fontVariant="small-caps":g.firstChild.style.fontFamily=p[b.fontFamily])}}}},b}(k["default"]);k["default"].registerComponent("TextTrackDisplay",q),c["default"]=q},{5:5,83:83,95:95}],69:[function(a,b,c){"use strict";c.__esModule=!0;var d=function(a){return["kind","label","language","id","inBandMetadataTrackDispatchType","mode","src"].reduce(function(b,c,d){return a[c]&&(b[c]=a[c]),b},{cues:a.cues&&Array.prototype.map.call(a.cues,function(a){return{startTime:a.startTime,endTime:a.endTime,text:a.text,id:a.id}})})},e=function(a){var b=a.$$("track"),c=Array.prototype.map.call(b,function(a){return a.track});return Array.prototype.map.call(b,function(a){var b=d(a.track);return a.src&&(b.src=a.src),b}).concat(Array.prototype.filter.call(a.textTracks(),function(a){return-1===c.indexOf(a)}).map(d))},f=function(a,b){return a.forEach(function(a){var c=b.addRemoteTextTrack(a).track;!a.src&&a.cues&&a.cues.forEach(function(a){return c.addCue(a)})}),b.textTracks()};c["default"]={textTracksToJson:e,jsonToTextTracks:f,trackToJson_:d}},{}],70:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(74),j=e(i),k=a(83),l=d(k),m=a(78),n=d(m),o=a(94),p=e(o),q=function(a){function b(){var c,d,e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];f(this,b);var h=void 0;if(n.IS_IE8){h=p["default"].createElement("custom");for(var i in j["default"].prototype)"constructor"!==i&&(h[i]=j["default"].prototype[i]);for(var k in b.prototype)"constructor"!==k&&(h[k]=b.prototype[k])}return h=c=g(this,a.call(this,e,h)),d=h,g(c,d)}return h(b,a),b.prototype.addTrack_=function(b){a.prototype.addTrack_.call(this,b),b.addEventListener("modechange",l.bind(this,function(){this.trigger("change")}))},b}(j["default"]);c["default"]=q},{74:74,78:78,83:83,94:94}],71:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function i(a,b){if(b&&(a=b(a)),a&&"none"!==a)return a}function j(a,b){return i(a.options[a.options.selectedIndex].value,b)}function k(a,b,c){if(b)for(var d=0;d<a.options.length;d++)if(i(a.options[d].value,c)===b){a.selectedIndex=d;break}}c.__esModule=!0;var l=a(95),m=e(l),n=a(5),o=e(n),p=a(81),q=a(83),r=d(q),s=a(88),t=d(s),u=a(86),v=e(u),w=["#000","Black"],x=["#00F","Blue"],y=["#0FF","Cyan"],z=["#0F0","Green"],A=["#F0F","Magenta"],B=["#F00","Red"],C=["#FFF","White"],D=["#FF0","Yellow"],E=["1","Opaque"],F=["0.5","Semi-Transparent"],G=["0","Transparent"],H={backgroundColor:{selector:".vjs-bg-color > select",id:"captions-background-color-%s",label:"Color",options:[w,C,B,z,x,D,A,y]},backgroundOpacity:{selector:".vjs-bg-opacity > select",id:"captions-background-opacity-%s",label:"Transparency",options:[E,F,G]},color:{selector:".vjs-fg-color > select",id:"captions-foreground-color-%s",label:"Color",options:[C,w,B,z,x,D,A,y]},edgeStyle:{selector:".vjs-edge-style > select",id:"%s",label:"Text Edge Style",options:[["none","None"],["raised","Raised"],["depressed","Depressed"],["uniform","Uniform"],["dropshadow","Dropshadow"]]},fontFamily:{selector:".vjs-font-family > select",id:"captions-font-family-%s",label:"Font Family",options:[["proportionalSansSerif","Proportional Sans-Serif"],["monospaceSansSerif","Monospace Sans-Serif"],["proportionalSerif","Proportional Serif"],["monospaceSerif","Monospace Serif"],["casual","Casual"],["script","Script"],["small-caps","Small Caps"]]},fontPercent:{selector:".vjs-font-percent > select",id:"captions-font-size-%s",label:"Font Size",options:[["0.50","50%"],["0.75","75%"],["1.00","100%"],["1.25","125%"],["1.50","150%"],["1.75","175%"],["2.00","200%"],["3.00","300%"],["4.00","400%"]],"default":2,parser:function(a){return"1.00"===a?null:Number(a)}},textOpacity:{selector:".vjs-text-opacity > select",id:"captions-foreground-opacity-%s",label:"Transparency",options:[E,F]},windowColor:{selector:".vjs-window-color > select",id:"captions-window-color-%s",label:"Color"},windowOpacity:{selector:".vjs-window-opacity > select",id:"captions-window-opacity-%s",label:"Transparency",options:[G,F,E]}};H.windowColor.options=H.backgroundColor.options;var I=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.setDefaults(),e.hide(),e.updateDisplay=r.bind(e,e.updateDisplay),d.persistTextTrackSettings===undefined&&(e.options_.persistTextTrackSettings=e.options_.playerOptions.persistTextTrackSettings),e.on(e.$(".vjs-done-button"),"click",function(){e.saveSettings(),e.hide()}),e.on(e.$(".vjs-default-button"),"click",function(){e.setDefaults(),e.updateDisplay()}),t.each(H,function(a){e.on(e.$(a.selector),"change",e.updateDisplay)}),e.options_.persistTextTrackSettings&&e.restoreSettings(),e}return h(b,a),b.prototype.createElSelect_=function(a){var b=this,c=H[a],d=c.id.replace("%s",this.id_);return[(0,p.createEl)("label",{className:"vjs-label",textContent:c.label},{"for":d}),(0,p.createEl)("select",{id:d},undefined,c.options.map(function(a){return(0,p.createEl)("option",{textContent:b.localize(a[1]),value:a[0]})}))]},b.prototype.createElFgColor_=function(){var a=(0,p.createEl)("legend",{textContent:this.localize("Text")}),b=this.createElSelect_("color"),c=(0,p.createEl)("span",{className:"vjs-text-opacity vjs-opacity"},undefined,this.createElSelect_("textOpacity"));return(0,p.createEl)("fieldset",{className:"vjs-fg-color vjs-tracksetting"},undefined,[a].concat(b,c))},b.prototype.createElBgColor_=function(){var a=(0,p.createEl)("legend",{textContent:this.localize("Background")}),b=this.createElSelect_("backgroundColor"),c=(0,p.createEl)("span",{className:"vjs-bg-opacity vjs-opacity"},undefined,this.createElSelect_("backgroundOpacity"));return(0,p.createEl)("fieldset",{className:"vjs-bg-color vjs-tracksetting"},undefined,[a].concat(b,c))},b.prototype.createElWinColor_=function(){var a=(0,p.createEl)("legend",{textContent:this.localize("Window")}),b=this.createElSelect_("windowColor"),c=(0,p.createEl)("span",{className:"vjs-window-opacity vjs-opacity"},undefined,this.createElSelect_("windowOpacity"));return(0,p.createEl)("fieldset",{className:"vjs-window-color vjs-tracksetting"},undefined,[a].concat(b,c))},b.prototype.createElColors_=function(){return(0,p.createEl)("div",{className:"vjs-tracksettings-colors"},undefined,[this.createElFgColor_(),this.createElBgColor_(),this.createElWinColor_()])},b.prototype.createElFont_=function(){var a=(0,p.createEl)("div",{className:"vjs-font-percent vjs-tracksetting"},undefined,this.createElSelect_("fontPercent")),b=(0,p.createEl)("div",{className:"vjs-edge-style vjs-tracksetting"},undefined,this.createElSelect_("edgeStyle")),c=(0,p.createEl)("div",{className:"vjs-font-family vjs-tracksetting"},undefined,this.createElSelect_("fontFamily"));return(0,p.createEl)("div",{className:"vjs-tracksettings-font"},undefined,[a,b,c])},b.prototype.createElControls_=function(){var a=(0,p.createEl)("button",{className:"vjs-default-button",textContent:this.localize("Defaults")}),b=(0,p.createEl)("button",{className:"vjs-done-button",textContent:"Done"});return(0,p.createEl)("div",{className:"vjs-tracksettings-controls"},undefined,[a,b])},b.prototype.createEl=function(){var a=(0,p.createEl)("div",{className:"vjs-tracksettings"},undefined,[this.createElColors_(),this.createElFont_(),this.createElControls_()]),b=(0,p.createEl)("div",{className:"vjs-control-text",id:"TTsettingsDialogLabel-"+this.id_,textContent:"Caption Settings Dialog"},{"aria-level":"1",role:"heading"}),c=(0,p.createEl)("div",{className:"vjs-control-text",id:"TTsettingsDialogDescription-"+this.id_,textContent:"Beginning of dialog window. Escape will cancel and close the window."}),d=(0,p.createEl)("div",undefined,{role:"document"},[b,c,a]);return(0,p.createEl)("div",{className:"vjs-caption-settings vjs-modal-overlay",tabIndex:-1},{role:"dialog","aria-labelledby":b.id,"aria-describedby":c.id},d)},b.prototype.getValues=function(){var a=this;return t.reduce(H,function(b,c,d){var e=j(a.$(c.selector),c.parser);return e!==undefined&&(b[d]=e),b},{})},b.prototype.setValues=function(a){var b=this;t.each(H,function(c,d){k(b.$(c.selector),a[d],c.parser)})},b.prototype.setDefaults=function(){var a=this;t.each(H,function(b){var c=b.hasOwnProperty("default")?b["default"]:0;a.$(b.selector).selectedIndex=c})},b.prototype.restoreSettings=function(){var a=void 0;try{a=JSON.parse(m["default"].localStorage.getItem("vjs-text-track-settings"))}catch(b){v["default"].warn(b)}a&&this.setValues(a)},b.prototype.saveSettings=function(){if(this.options_.persistTextTrackSettings){var a=this.getValues();try{Object.keys(a).length?m["default"].localStorage.setItem("vjs-text-track-settings",JSON.stringify(a)):m["default"].localStorage.removeItem("vjs-text-track-settings")
18
- }catch(b){v["default"].warn(b)}}},b.prototype.updateDisplay=function(){var a=this.player_.getChild("textTrackDisplay");a&&a.updateDisplay()},b}(o["default"]);o["default"].registerComponent("TextTrackSettings",I),c["default"]=I},{5:5,81:81,83:83,86:86,88:88,95:95}],72:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(67),j=e(i),k=a(83),l=d(k),m=a(73),n=a(86),o=e(n),p=a(95),q=e(p),r=a(75),s=e(r),t=a(92),u=a(104),v=e(u),w=a(87),x=e(w),y=a(78),z=d(y),A=function(a,b){var c=new q["default"].WebVTT.Parser(q["default"],q["default"].vttjs,q["default"].WebVTT.StringDecoder()),d=[];c.oncue=function(a){b.addCue(a)},c.onparsingerror=function(a){d.push(a)},c.onflush=function(){b.trigger({type:"loadeddata",target:b})},c.parse(a),d.length>0&&(q["default"].console&&q["default"].console.groupCollapsed&&q["default"].console.groupCollapsed("Text Track parsing errors for "+b.src),d.forEach(function(a){return o["default"].error(a)}),q["default"].console&&q["default"].console.groupEnd&&q["default"].console.groupEnd()),c.flush()},B=function(a,b){var c={uri:a},d=(0,t.isCrossOrigin)(a);d&&(c.cors=d),(0,v["default"])(c,l.bind(this,function(a,c,d){if(a)return o["default"].error(a,c);if(b.loaded_=!0,"function"!=typeof q["default"].WebVTT){if(b.tech_){var e=function(){return A(d,b)};b.tech_.on("vttjsloaded",e),b.tech_.on("vttjserror",function(){o["default"].error("vttjs failed to load, stopping trying to process "+b.src),b.tech_.off("vttjsloaded",e)})}}else A(d,b)}))},C=function(a){function b(){var c,d,e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(f(this,b),!e.tech)throw new Error("A tech was not provided.");var h=(0,x["default"])(e,{kind:m.TextTrackKind[e.kind]||"subtitles",language:e.language||e.srclang||""}),i=m.TextTrackMode[h.mode]||"disabled",k=h["default"];"metadata"!==h.kind&&"chapters"!==h.kind||(i="hidden");var n=c=g(this,a.call(this,h));if(n.tech_=h.tech,z.IS_IE8)for(var o in b.prototype)"constructor"!==o&&(n[o]=b.prototype[o]);n.cues_=[],n.activeCues_=[];var p=new j["default"](n.cues_),q=new j["default"](n.activeCues_),r=!1,s=l.bind(n,function(){this.activeCues,r&&(this.trigger("cuechange"),r=!1)});return"disabled"!==i&&n.tech_.ready(function(){n.tech_.on("timeupdate",s)},!0),Object.defineProperty(n,"default",{get:function(){return k},set:function(){}}),Object.defineProperty(n,"mode",{get:function(){return i},set:function(a){var b=this;m.TextTrackMode[a]&&(i=a,"showing"===i&&this.tech_.ready(function(){b.tech_.on("timeupdate",s)},!0),this.trigger("modechange"))}}),Object.defineProperty(n,"cues",{get:function(){return this.loaded_?p:null},set:function(){}}),Object.defineProperty(n,"activeCues",{get:function(){if(!this.loaded_)return null;if(0===this.cues.length)return q;for(var a=this.tech_.currentTime(),b=[],c=0,d=this.cues.length;c<d;c++){var e=this.cues[c];e.startTime<=a&&e.endTime>=a?b.push(e):e.startTime===e.endTime&&e.startTime<=a&&e.startTime+.5>=a&&b.push(e)}if(r=!1,b.length!==this.activeCues_.length)r=!0;else for(var f=0;f<b.length;f++)-1===this.activeCues_.indexOf(b[f])&&(r=!0);return this.activeCues_=b,q.setCues_(this.activeCues_),q},set:function(){}}),h.src?(n.src=h.src,B(h.src,n)):n.loaded_=!0,d=n,g(c,d)}return h(b,a),b.prototype.addCue=function(a){var b=a;if(q["default"].vttjs&&!(a instanceof q["default"].vttjs.VTTCue)){b=new q["default"].vttjs.VTTCue(a.startTime,a.endTime,a.text);for(var c in a)c in b||(b[c]=a[c]);b.id=a.id,b.originalCue_=a}var d=this.tech_.textTracks();if(d)for(var e=0;e<d.length;e++)d[e]!==this&&d[e].removeCue(b);this.cues_.push(b),this.cues.setCues_(this.cues_)},b.prototype.removeCue=function(a){for(var b=this.cues_.length;b--;){var c=this.cues_[b];if(c===a||c.originalCue_&&c.originalCue_===a){this.cues_.splice(b,1),this.cues.setCues_(this.cues_);break}}},b}(s["default"]);C.prototype.allowedEvents_={cuechange:"cuechange"},c["default"]=C},{104:104,67:67,73:73,75:75,78:78,83:83,86:86,87:87,92:92,95:95}],73:[function(a,b,c){"use strict";c.__esModule=!0;c.VideoTrackKind={alternative:"alternative",captions:"captions",main:"main",sign:"sign",subtitles:"subtitles",commentary:"commentary"},c.AudioTrackKind={alternative:"alternative",descriptions:"descriptions",main:"main","main-desc":"main-desc",translation:"translation",commentary:"commentary"},c.TextTrackKind={subtitles:"subtitles",captions:"captions",descriptions:"descriptions",chapters:"chapters",metadata:"metadata"},c.TextTrackMode={disabled:"disabled",hidden:"hidden",showing:"showing"}},{}],74:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(42),i=d(h),j=a(78),k=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(j),l=a(94),m=d(l),n=function(a){function b(){var c,d=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[],g=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;e(this,b);var h=f(this,a.call(this));if(!g&&(g=h,k.IS_IE8)){g=m["default"].createElement("custom");for(var i in b.prototype)"constructor"!==i&&(g[i]=b.prototype[i])}g.tracks_=[],Object.defineProperty(g,"length",{get:function(){return this.tracks_.length}});for(var j=0;j<d.length;j++)g.addTrack_(d[j]);return c=g,f(h,c)}return g(b,a),b.prototype.addTrack_=function(a){var b=this.tracks_.length;""+b in this||Object.defineProperty(this,b,{get:function(){return this.tracks_[b]}}),-1===this.tracks_.indexOf(a)&&(this.tracks_.push(a),this.trigger({track:a,type:"addtrack"}))},b.prototype.removeTrack_=function(a){for(var b=void 0,c=0,d=this.length;c<d;c++)if(this[c]===a){b=this[c],b.off&&b.off(),this.tracks_.splice(c,1);break}b&&this.trigger({track:b,type:"removetrack"})},b.prototype.getTrackById=function(a){for(var b=null,c=0,d=this.length;c<d;c++){var e=this[c];if(e.id===a){b=e;break}}return b},b}(i["default"]);n.prototype.allowedEvents_={change:"change",addtrack:"addtrack",removetrack:"removetrack"};for(var o in n.prototype.allowedEvents_)n.prototype["on"+o]=null;c["default"]=n},{42:42,78:78,94:94}],75:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(78),j=e(i),k=a(94),l=d(k),m=a(85),n=e(m),o=a(42),p=d(o),q=function(a){function b(){var c,d=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};f(this,b);var e=g(this,a.call(this)),h=e;if(j.IS_IE8){h=l["default"].createElement("custom");for(var i in b.prototype)"constructor"!==i&&(h[i]=b.prototype[i])}var k={id:d.id||"vjs_track_"+n.newGUID(),kind:d.kind||"",label:d.label||"",language:d.language||""};for(var m in k)!function(a){Object.defineProperty(h,a,{get:function(){return k[a]},set:function(){}})}(m);return c=h,g(e,c)}return h(b,a),b}(p["default"]);c["default"]=q},{42:42,78:78,85:85,94:94}],76:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(74),i=d(h),j=a(78),k=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(j),l=a(94),m=d(l),n=function(a,b){for(var c=0;c<a.length;c++)b.id!==a[c].id&&(a[c].selected=!1)},o=function(a){function b(){var c,d,g=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];e(this,b);for(var h=void 0,j=g.length-1;j>=0;j--)if(g[j].selected){n(g,g[j]);break}if(k.IS_IE8){h=m["default"].createElement("custom");for(var l in i["default"].prototype)"constructor"!==l&&(h[l]=i["default"].prototype[l]);for(var o in b.prototype)"constructor"!==o&&(h[o]=b.prototype[o])}return h=c=f(this,a.call(this,g,h)),h.changing_=!1,Object.defineProperty(h,"selectedIndex",{get:function(){for(var a=0;a<this.length;a++)if(this[a].selected)return a;return-1},set:function(){}}),d=h,f(c,d)}return g(b,a),b.prototype.addTrack_=function(b){var c=this;b.selected&&n(this,b),a.prototype.addTrack_.call(this,b),b.addEventListener&&b.addEventListener("selectedchange",function(){c.changing_||(c.changing_=!0,n(c,b),c.changing_=!1,c.trigger("change"))})},b.prototype.addTrack=function(a){this.addTrack_(a)},b.prototype.removeTrack=function(b){a.prototype.removeTrack_.call(this,b)},b}(i["default"]);c["default"]=o},{74:74,78:78,94:94}],77:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(73),i=a(75),j=d(i),k=a(87),l=d(k),m=a(78),n=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(m),o=function(a){function b(){var c,d,g=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};e(this,b);var i=(0,l["default"])(g,{kind:h.VideoTrackKind[g.kind]||""}),j=c=f(this,a.call(this,i)),k=!1;if(n.IS_IE8)for(var m in b.prototype)"constructor"!==m&&(j[m]=b.prototype[m]);return Object.defineProperty(j,"selected",{get:function(){return k},set:function(a){"boolean"==typeof a&&a!==k&&(k=a,this.trigger("selectedchange"))}}),i.selected&&(j.selected=i.selected),d=j,f(c,d)}return g(b,a),b}(j["default"]);c["default"]=o},{73:73,75:75,78:78,87:87}],78:[function(a,b,c){"use strict";c.__esModule=!0,c.BACKGROUND_SIZE_SUPPORTED=c.TOUCH_ENABLED=c.IS_ANY_SAFARI=c.IS_SAFARI=c.IE_VERSION=c.IS_IE8=c.CHROME_VERSION=c.IS_CHROME=c.IS_EDGE=c.IS_FIREFOX=c.IS_NATIVE_ANDROID=c.IS_OLD_ANDROID=c.ANDROID_VERSION=c.IS_ANDROID=c.IOS_VERSION=c.IS_IOS=c.IS_IPOD=c.IS_IPHONE=c.IS_IPAD=undefined;var d=a(81),e=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(d),f=a(95),g=function(a){return a&&a.__esModule?a:{"default":a}}(f),h=g["default"].navigator&&g["default"].navigator.userAgent||"",i=/AppleWebKit\/([\d.]+)/i.exec(h),j=i?parseFloat(i.pop()):null,k=c.IS_IPAD=/iPad/i.test(h),l=c.IS_IPHONE=/iPhone/i.test(h)&&!k,m=c.IS_IPOD=/iPod/i.test(h),n=c.IS_IOS=l||k||m,o=(c.IOS_VERSION=function(){var a=h.match(/OS (\d+)_/i);return a&&a[1]?a[1]:null}(),c.IS_ANDROID=/Android/i.test(h)),p=c.ANDROID_VERSION=function(){var a=h.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!a)return null;var b=a[1]&&parseFloat(a[1]),c=a[2]&&parseFloat(a[2]);return b&&c?parseFloat(a[1]+"."+a[2]):b||null}(),q=(c.IS_OLD_ANDROID=o&&/webkit/i.test(h)&&p<2.3,c.IS_NATIVE_ANDROID=o&&p<5&&j<537,c.IS_FIREFOX=/Firefox/i.test(h),c.IS_EDGE=/Edge/i.test(h)),r=c.IS_CHROME=!q&&/Chrome/i.test(h),s=(c.CHROME_VERSION=function(){var a=h.match(/Chrome\/(\d+)/);return a&&a[1]?parseFloat(a[1]):null}(),c.IS_IE8=/MSIE\s8\.0/.test(h),c.IE_VERSION=function(){var a=/MSIE\s(\d+)\.\d/.exec(h),b=a&&parseFloat(a[1]);return!b&&/Trident\/7.0/i.test(h)&&/rv:11.0/.test(h)&&(b=11),b}(),c.IS_SAFARI=/Safari/i.test(h)&&!r&&!o&&!q);c.IS_ANY_SAFARI=s||n,c.TOUCH_ENABLED=e.isReal()&&("ontouchstart"in g["default"]||g["default"].DocumentTouch&&g["default"].document instanceof g["default"].DocumentTouch),c.BACKGROUND_SIZE_SUPPORTED=e.isReal()&&"backgroundSize"in g["default"].document.createElement("video").style},{81:81,95:95}],79:[function(a,b,c){"use strict";function d(a,b){var c=0,d=void 0,f=void 0;if(!b)return 0;a&&a.length||(a=(0,e.createTimeRange)(0,0));for(var g=0;g<a.length;g++)d=a.start(g),f=a.end(g),f>b&&(f=b),c+=f-d;return c/b}c.__esModule=!0,c.bufferedPercent=d;var e=a(90)},{90:90}],80:[function(a,b,c){"use strict";function d(a,b){if(!a||!b)return"";if("function"==typeof f["default"].getComputedStyle){var c=f["default"].getComputedStyle(a);return c?c[b]:""}return a.currentStyle[b]||""}c.__esModule=!0,c["default"]=d;var e=a(95),f=function(a){return a&&a.__esModule?a:{"default":a}}(e)},{95:95}],81:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){return"string"==typeof a&&/\S/.test(a)}function f(a){if(/\s/.test(a))throw new Error("class has illegal whitespace characters")}function g(a){return new RegExp("(^|\\s)"+a+"($|\\s)")}function h(){return L["default"]===N["default"].document&&"undefined"!=typeof L["default"].createElement}function i(a){return(0,U.isObject)(a)&&1===a.nodeType}function j(a){return function(b,c){if(!e(b))return L["default"][a](null);e(c)&&(c=L["default"].querySelector(c));var d=i(c)?c:L["default"];return d[a]&&d[a](b)}}function k(a){return 0===a.indexOf("#")&&(a=a.slice(1)),L["default"].getElementById(a)}function l(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"div",b=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},c=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{},d=arguments[3],e=L["default"].createElement(a);return Object.getOwnPropertyNames(b).forEach(function(a){var c=b[a];-1!==a.indexOf("aria-")||"role"===a||"type"===a?(R["default"].warn((0,T["default"])(J,a,c)),e.setAttribute(a,c)):"textContent"===a?m(e,c):e[a]=c}),Object.getOwnPropertyNames(c).forEach(function(a){e.setAttribute(a,c[a])}),d&&H(e,d),e}function m(a,b){return"undefined"==typeof a.textContent?a.innerText=b:a.textContent=b,a}function n(a,b){b.firstChild?b.insertBefore(a,b.firstChild):b.appendChild(a)}function o(a){var b=a[W];return b||(b=a[W]=P.newGUID()),V[b]||(V[b]={}),V[b]}function p(a){var b=a[W];return!!b&&!!Object.getOwnPropertyNames(V[b]).length}function q(a){var b=a[W];if(b){delete V[b];try{delete a[W]}catch(c){a.removeAttribute?a.removeAttribute(W):a[W]=null}}}function r(a,b){return f(b),a.classList?a.classList.contains(b):g(b).test(a.className)}function s(a,b){return a.classList?a.classList.add(b):r(a,b)||(a.className=(a.className+" "+b).trim()),a}function t(a,b){return a.classList?a.classList.remove(b):(f(b),a.className=a.className.split(/\s+/).filter(function(a){return a!==b}).join(" ")),a}function u(a,b,c){var d=r(a,b);if("function"==typeof c&&(c=c(a,b)),"boolean"!=typeof c&&(c=!d),c!==d)return c?s(a,b):t(a,b),a}function v(a,b){Object.getOwnPropertyNames(b).forEach(function(c){var d=b[c];null===d||void 0===d||!1===d?a.removeAttribute(c):a.setAttribute(c,!0===d?"":d)})}function w(a){var b={};if(a&&a.attributes&&a.attributes.length>0)for(var c=a.attributes,d=c.length-1;d>=0;d--){var e=c[d].name,f=c[d].value;"boolean"!=typeof a[e]&&-1===",autoplay,controls,playsinline,loop,muted,default,defaultMuted,".indexOf(","+e+",")||(f=null!==f),b[e]=f}return b}function x(a,b){return a.getAttribute(b)}function y(a,b,c){a.setAttribute(b,c)}function z(a,b){a.removeAttribute(b)}function A(){L["default"].body.focus(),L["default"].onselectstart=function(){return!1}}function B(){L["default"].onselectstart=function(){return!0}}function C(a){var b=void 0;if(a.getBoundingClientRect&&a.parentNode&&(b=a.getBoundingClientRect()),!b)return{left:0,top:0};var c=L["default"].documentElement,d=L["default"].body,e=c.clientLeft||d.clientLeft||0,f=N["default"].pageXOffset||d.scrollLeft,g=b.left+f-e,h=c.clientTop||d.clientTop||0,i=N["default"].pageYOffset||d.scrollTop,j=b.top+i-h;return{left:Math.round(g),top:Math.round(j)}}function D(a,b){var c={},d=C(a),e=a.offsetWidth,f=a.offsetHeight,g=d.top,h=d.left,i=b.pageY,j=b.pageX;return b.changedTouches&&(j=b.changedTouches[0].pageX,i=b.changedTouches[0].pageY),c.y=Math.max(0,Math.min(1,(g-i+f)/f)),c.x=Math.max(0,Math.min(1,(j-h)/e)),c}function E(a){return(0,U.isObject)(a)&&3===a.nodeType}function F(a){for(;a.firstChild;)a.removeChild(a.firstChild);return a}function G(a){return"function"==typeof a&&(a=a()),(Array.isArray(a)?a:[a]).map(function(a){return"function"==typeof a&&(a=a()),i(a)||E(a)?a:"string"==typeof a&&/\S/.test(a)?L["default"].createTextNode(a):void 0}).filter(function(a){return a})}function H(a,b){return G(b).forEach(function(b){return a.appendChild(b)}),a}function I(a,b){return H(F(a),b)}c.__esModule=!0,c.$$=c.$=undefined;var J=function(a,b){return a.raw=b,a}(["Setting attributes in the second argument of createEl()\n has been deprecated. Use the third argument instead.\n createEl(type, properties, attributes). Attempting to set "," to ","."],["Setting attributes in the second argument of createEl()\n has been deprecated. Use the third argument instead.\n createEl(type, properties, attributes). Attempting to set "," to ","."]);c.isReal=h,c.isEl=i,c.getEl=k,c.createEl=l,c.textContent=m,c.insertElFirst=n,c.getElData=o,c.hasElData=p,c.removeElData=q,c.hasElClass=r,c.addElClass=s,c.removeElClass=t,c.toggleElClass=u,c.setElAttributes=v,c.getElAttributes=w,c.getAttribute=x,c.setAttribute=y,c.removeAttribute=z,c.blockTextSelection=A,c.unblockTextSelection=B,c.findElPosition=C,c.getPointerPosition=D,c.isTextNode=E,c.emptyEl=F,c.normalizeContent=G,c.appendContent=H,c.insertContent=I;var K=a(94),L=d(K),M=a(95),N=d(M),O=a(85),P=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(O),Q=a(86),R=d(Q),S=a(98),T=d(S),U=a(88),V={},W="vdata"+(new Date).getTime();c.$=j("querySelector"),c.$$=j("querySelectorAll")},{85:85,86:86,88:88,94:94,95:95,98:98}],82:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b){var c=n.getElData(a);0===c.handlers[b].length&&(delete c.handlers[b],a.removeEventListener?a.removeEventListener(b,c.dispatcher,!1):a.detachEvent&&a.detachEvent("on"+b,c.dispatcher)),Object.getOwnPropertyNames(c.handlers).length<=0&&(delete c.handlers,delete c.dispatcher,delete c.disabled),0===Object.getOwnPropertyNames(c).length&&n.removeElData(a)}function g(a,b,c,d){c.forEach(function(c){a(b,c,d)})}function h(a){function b(){return!0}function c(){return!1}if(!a||!a.isPropagationStopped){var d=a||t["default"].event;a={};for(var e in d)"layerX"!==e&&"layerY"!==e&&"keyLocation"!==e&&"webkitMovementX"!==e&&"webkitMovementY"!==e&&("returnValue"===e&&d.preventDefault||(a[e]=d[e]));if(a.target||(a.target=a.srcElement||v["default"]),a.relatedTarget||(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement),a.preventDefault=function(){d.preventDefault&&d.preventDefault(),a.returnValue=!1,d.returnValue=!1,a.defaultPrevented=!0},a.defaultPrevented=!1,a.stopPropagation=function(){d.stopPropagation&&d.stopPropagation(),a.cancelBubble=!0,d.cancelBubble=!0,a.isPropagationStopped=b},a.isPropagationStopped=c,a.stopImmediatePropagation=function(){d.stopImmediatePropagation&&d.stopImmediatePropagation(),a.isImmediatePropagationStopped=b,a.stopPropagation()},a.isImmediatePropagationStopped=c,null!==a.clientX&&a.clientX!==undefined){var f=v["default"].documentElement,g=v["default"].body;a.pageX=a.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=a.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)}a.which=a.charCode||a.keyCode,null!==a.button&&a.button!==undefined&&(a.button=1&a.button?0:4&a.button?1:2&a.button?2:0)}return a}function i(a,b,c){if(Array.isArray(b))return g(i,a,b,c);var d=n.getElData(a);if(d.handlers||(d.handlers={}),d.handlers[b]||(d.handlers[b]=[]),c.guid||(c.guid=p.newGUID()),d.handlers[b].push(c),d.dispatcher||(d.disabled=!1,d.dispatcher=function(b,c){if(!d.disabled){b=h(b);var e=d.handlers[b.type];if(e)for(var f=e.slice(0),g=0,i=f.length;g<i&&!b.isImmediatePropagationStopped();g++)try{f[g].call(a,b,c)}catch(j){r["default"].error(j)}}}),1===d.handlers[b].length)if(a.addEventListener){var e=!1;w&&x.indexOf(b)>-1&&(e={passive:!0}),a.addEventListener(b,d.dispatcher,e)}else a.attachEvent&&a.attachEvent("on"+b,d.dispatcher)}function j(a,b,c){if(n.hasElData(a)){var d=n.getElData(a);if(d.handlers){if(Array.isArray(b))return g(j,a,b,c);var e=function(b){d.handlers[b]=[],f(a,b)};if(b){var h=d.handlers[b];if(h){if(!c)return void e(b);if(c.guid)for(var i=0;i<h.length;i++)h[i].guid===c.guid&&h.splice(i--,1);f(a,b)}}else for(var k in d.handlers)e(k)}}}function k(a,b,c){var d=n.hasElData(a)?n.getElData(a):{},e=a.parentNode||a.ownerDocument;if("string"==typeof b&&(b={type:b,target:a}),b=h(b),d.dispatcher&&d.dispatcher.call(a,b,c),e&&!b.isPropagationStopped()&&!0===b.bubbles)k.call(null,e,b,c);else if(!e&&!b.defaultPrevented){var f=n.getElData(b.target);b.target[b.type]&&(f.disabled=!0,"function"==typeof b.target[b.type]&&b.target[b.type](),f.disabled=!1)}return!b.defaultPrevented}function l(a,b,c){if(Array.isArray(b))return g(l,a,b,c);var d=function e(){j(a,b,e),c.apply(this,arguments)};d.guid=c.guid=c.guid||p.newGUID(),i(a,b,d)}c.__esModule=!0,c.fixEvent=h,c.on=i,c.off=j,c.trigger=k,c.one=l;var m=a(81),n=e(m),o=a(85),p=e(o),q=a(86),r=d(q),s=a(95),t=d(s),u=a(94),v=d(u),w=!1;!function(){try{var a=Object.defineProperty({},"passive",{get:function(){w=!0}});t["default"].addEventListener("test",null,a)}catch(b){}}();var x=["touchstart","touchmove"]},{81:81,85:85,86:86,94:94,95:95}],83:[function(a,b,c){"use strict";c.__esModule=!0,c.throttle=c.bind=undefined;var d=a(85);c.bind=function(a,b,c){b.guid||(b.guid=(0,d.newGUID)());var e=function(){return b.apply(a,arguments)};return e.guid=c?c+"_"+b.guid:b.guid,e},c.throttle=function(a,b){var c=Date.now();return function(){var d=Date.now();d-c>=b&&(a.apply(undefined,arguments),c=d)}}},{85:85}],84:[function(a,b,c){"use strict";function d(a){var b=arguments.length>1&&arguments[1]!==undefined?arguments[1]:a;a=a<0?0:a;var c=Math.floor(a%60),d=Math.floor(a/60%60),e=Math.floor(a/3600),f=Math.floor(b/60%60),g=Math.floor(b/3600);return(isNaN(a)||a===Infinity)&&(e=d=c="-"),e=e>0||g>0?e+":":"",d=((e||f>=10)&&d<10?"0"+d:d)+":",c=c<10?"0"+c:c,e+d+c}c.__esModule=!0,c["default"]=d},{}],85:[function(a,b,c){"use strict";function d(){return e++}c.__esModule=!0,c.newGUID=d;var e=1},{}],86:[function(a,b,c){"use strict";c.__esModule=!0,c.logByType=undefined;var d=a(95),e=function(a){return a&&a.__esModule?a:{"default":a}}(d),f=a(78),g=a(88),h=void 0,i=c.logByType=function(a,b){var c=arguments.length>2&&arguments[2]!==undefined?arguments[2]:!!f.IE_VERSION&&f.IE_VERSION<11;"log"!==a&&b.unshift(a.toUpperCase()+":"),h.history.push(b),b.unshift("VIDEOJS:");var d=e["default"].console&&e["default"].console[a];d&&(c&&(b=b.map(function(a){if((0,g.isObject)(a)||Array.isArray(a))try{return JSON.stringify(a)}catch(b){return String(a)}return String(a)}).join(" ")),d.apply?d[Array.isArray(b)?"apply":"call"](e["default"].console,b):d(b))};h=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];i("log",b)},h.history=[],h.error=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return i("error",b)},h.warn=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return i("warn",b)},c["default"]=h},{78:78,88:88,95:95}],87:[function(a,b,c){"use strict";function d(){for(var a={},b=arguments.length,c=Array(b),f=0;f<b;f++)c[f]=arguments[f];return c.forEach(function(b){b&&(0,e.each)(b,function(b,c){if(!(0,e.isPlain)(b))return void(a[c]=b);(0,e.isPlain)(a[c])||(a[c]={}),a[c]=d(a[c],b)})}),a}c.__esModule=!0,c["default"]=d;var e=a(88)},{88:88}],88:[function(a,b,c){"use strict";function d(a,b){k(a).forEach(function(c){return b(a[c],c)})}function e(a,b){var c=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;return k(a).reduce(function(c,d){return b(c,a[d],d)},c)}function f(a){for(var b=arguments.length,c=Array(b>1?b-1:0),e=1;e<b;e++)c[e-1]=arguments[e];return Object.assign?Object.assign.apply(Object,[a].concat(c)):(c.forEach(function(b){b&&d(b,function(b,c){a[c]=b})}),a)}function g(a){return!!a&&"object"===(void 0===a?"undefined":i(a))}function h(a){return g(a)&&"[object Object]"===j.call(a)&&a.constructor===Object}c.__esModule=!0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};c.each=d,c.reduce=e,c.assign=f,c.isObject=g,c.isPlain=h;var j=Object.prototype.toString,k=function(a){return g(a)?Object.keys(a):[]}},{}],89:[function(a,b,c){"use strict";c.__esModule=!0,c.setTextContent=c.createStyleElement=undefined;var d=a(94),e=function(a){return a&&a.__esModule?a:{"default":a}}(d);c.createStyleElement=function(a){var b=e["default"].createElement("style");return b.className=a,b},c.setTextContent=function(a,b){a.styleSheet?a.styleSheet.cssText=b:a.textContent=b}},{94:94}],90:[function(a,b,c){"use strict";function d(a,b,c){if(b<0||b>c)throw new Error("Failed to execute '"+a+"' on 'TimeRanges': The index provided ("+b+") is greater than or equal to the maximum bound ("+c+").")}function e(a,b,c,e){return e===undefined&&(i["default"].warn("DEPRECATED: Function '"+a+"' on 'TimeRanges' called without an index argument."),e=0),d(a,e,c.length-1),c[e][b]}function f(a){return a===undefined||0===a.length?{length:0,start:function(){throw new Error("This TimeRanges object is empty")},end:function(){throw new Error("This TimeRanges object is empty")}}:{length:a.length,start:e.bind(null,"start",0,a),end:e.bind(null,"end",1,a)}}function g(a,b){return Array.isArray(a)?f(a):a===undefined||b===undefined?f():f([[a,b]])}c.__esModule=!0,c.createTimeRange=undefined,c.createTimeRanges=g;var h=a(86),i=function(a){return a&&a.__esModule?a:{"default":a}}(h);c.createTimeRange=g},{86:86}],91:[function(a,b,c){"use strict";function d(a){return"string"!=typeof a?a:a.charAt(0).toUpperCase()+a.slice(1)}c.__esModule=!0,c["default"]=d},{}],92:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0,c.isCrossOrigin=c.getFileExtension=c.getAbsoluteURL=c.parseUrl=undefined;var e=a(94),f=d(e),g=a(95),h=d(g),i=c.parseUrl=function(a){var b=["protocol","hostname","port","pathname","search","hash","host"],c=f["default"].createElement("a");c.href=a;var d=""===c.host&&"file:"!==c.protocol,e=void 0;d&&(e=f["default"].createElement("div"),e.innerHTML='<a href="'+a+'"></a>',c=e.firstChild,e.setAttribute("style","display:none; position:absolute;"),f["default"].body.appendChild(e));for(var g={},h=0;h<b.length;h++)g[b[h]]=c[b[h]];return"http:"===g.protocol&&(g.host=g.host.replace(/:80$/,"")),"https:"===g.protocol&&(g.host=g.host.replace(/:443$/,"")),d&&f["default"].body.removeChild(e),g};c.getAbsoluteURL=function(a){if(!a.match(/^https?:\/\//)){var b=f["default"].createElement("div");b.innerHTML='<a href="'+a+'">x</a>',a=b.firstChild.href}return a},c.getFileExtension=function(a){if("string"==typeof a){var b=/^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/i,c=b.exec(a);if(c)return c.pop().toLowerCase()}return""},c.isCrossOrigin=function(a){var b=h["default"].location,c=i(a);return(":"===c.protocol?b.protocol:c.protocol)+c.host!==b.protocol+b.host}},{94:94,95:95}],93:[function(b,c,d){"use strict";function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a){return a&&a.__esModule?a:{"default":a}}function g(a,b,c){var d=void 0;if("string"==typeof a){if(0===a.indexOf("#")&&(a=a.slice(1)),g.getPlayers()[a])return b&&S["default"].warn('Player "'+a+'" is already initialised. Options will not be applied.'),c&&g.getPlayers()[a].ready(c),g.getPlayers()[a];d=p.getEl(a)}else d=a;if(!d||!d.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");if(d.player||B["default"].players[d.playerId])return d.player||B["default"].players[d.playerId];b=b||{},g.hooks("beforesetup").forEach(function(a){var c=a(d,(0,F["default"])(b));if(!(0,V.isObject)(c)||Array.isArray(c))return void S["default"].error("please return an object in beforesetup hooks");b=(0,F["default"])(b,c)});var e=v["default"].getComponent("Player"),f=new e(d,b,c);return g.hooks("setup").forEach(function(a){return a(f)}),f}d.__esModule=!0;var h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},i=b(95),j=f(i),k=b(94),l=f(k),m=b(78),n=e(m),o=b(81),p=e(o),q=b(56),r=e(q),s=b(89),t=e(s),u=b(5),v=f(u),w=b(42),x=f(w),y=b(82),z=e(y),A=b(51),B=f(A),C=b(52),D=f(C),E=b(87),F=f(E),G=b(83),H=e(G),I=b(72),J=f(I),K=b(64),L=f(K),M=b(77),N=f(M),O=b(90),P=b(84),Q=f(P),R=b(86),S=f(R),T=b(92),U=e(T),V=b(88),W=b(80),X=f(W),Y=b(43),Z=f(Y),$=b(104),_=f($),aa=b(62),ba=f(aa);if("undefined"==typeof HTMLVideoElement&&p.isReal()&&(l["default"].createElement("video"),l["default"].createElement("audio"),l["default"].createElement("track")),g.hooks_={},g.hooks=function(a,b){return g.hooks_[a]=g.hooks_[a]||[],b&&(g.hooks_[a]=g.hooks_[a].concat(b)),g.hooks_[a]},g.hook=function(a,b){g.hooks(a,b)},g.removeHook=function(a,b){var c=g.hooks(a).indexOf(b);return!(c<=-1)&&(g.hooks_[a]=g.hooks_[a].slice(),g.hooks_[a].splice(c,1),!0)},!0!==j["default"].VIDEOJS_NO_DYNAMIC_STYLE&&p.isReal()){var ca=p.$(".vjs-styles-defaults");if(!ca){
19
  ca=t.createStyleElement("vjs-styles-defaults");var da=p.$("head");da&&da.insertBefore(ca,da.firstChild),t.setTextContent(ca,"\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n ")}}r.autoSetupTimeout(1,g),g.VERSION="5.20.5",g.options=B["default"].prototype.options_,g.getPlayers=function(){return B["default"].players},g.players=B["default"].players,g.getComponent=v["default"].getComponent,g.registerComponent=function(a,b){ba["default"].isTech(b)&&S["default"].warn("The "+a+" tech was registered as a component. It should instead be registered using videojs.registerTech(name, tech)"),v["default"].registerComponent.call(v["default"],a,b)},g.getTech=ba["default"].getTech,g.registerTech=ba["default"].registerTech,g.browser=n,g.TOUCH_ENABLED=n.TOUCH_ENABLED,g.extend=Z["default"],g.mergeOptions=F["default"],g.bind=H.bind,g.plugin=D["default"],g.addLanguage=function(a,b){var c;return a=(""+a).toLowerCase(),g.options.languages=(0,F["default"])(g.options.languages,(c={},c[a]=b,c)),g.options.languages[a]},g.log=S["default"],g.createTimeRange=g.createTimeRanges=O.createTimeRanges,g.formatTime=Q["default"],g.parseUrl=U.parseUrl,g.isCrossOrigin=U.isCrossOrigin,g.EventTarget=x["default"],g.on=z.on,g.one=z.one,g.off=z.off,g.trigger=z.trigger,g.xhr=_["default"],g.TextTrack=J["default"],g.AudioTrack=L["default"],g.VideoTrack=N["default"],g.isEl=p.isEl,g.isTextNode=p.isTextNode,g.createEl=p.createEl,g.hasClass=p.hasElClass,g.addClass=p.addElClass,g.removeClass=p.removeElClass,g.toggleClass=p.toggleElClass,g.setAttributes=p.setElAttributes,g.getAttributes=p.getElAttributes,g.emptyEl=p.emptyEl,g.appendContent=p.appendContent,g.insertContent=p.insertContent,g.computedStyle=X["default"],"function"==typeof a&&a.amd?a("videojs",[],function(){return g}):"object"===(void 0===d?"undefined":h(d))&&"object"===(void 0===c?"undef
1
+ /**
2
+ * @license
3
+ * Video.js 5.20.5 <http://videojs.com/>
4
+ * Copyright Brightcove, Inc. <https://www.brightcove.com/>
5
+ * Available under Apache License Version 2.0
6
+ * <https://github.com/videojs/video.js/blob/master/LICENSE>
7
+ *
8
+ * Includes vtt.js <https://github.com/mozilla/vtt.js>
9
+ * Available under Apache License Version 2.0
10
+ * <https://github.com/mozilla/vtt.js/blob/master/LICENSE>
11
+ */
12
+ !function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.videojs=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c||b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(2),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.mouseused_=!1,g.on("mousedown",g.handleMouseDown),g}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-big-play-button"},b.prototype.handleClick=function(a){var b=this.player_.play();if(!(this.mouseused_&&a.clientX&&a.clientY)){var c=this.player_.getChild("controlBar"),d=c&&c.getChild("playToggle");if(!d)return void this.player_.focus();var e=function(){return d.focus()};if(b&&b.then){var f=function(){};b.then(e,f)}else this.setTimeout(e,1)}},b.prototype.handleKeyPress=function(b){this.mouseused_=!1,a.prototype.handleKeyPress.call(this,b)},b.prototype.handleMouseDown=function(a){this.mouseused_=!0},b}(i["default"]);l.prototype.controlText_="Play Video",k["default"].registerComponent("BigPlayButton",l),c["default"]=l},{2:2,5:5}],2:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(3),i=d(h),j=a(5),k=d(j),l=a(86),m=d(l),n=a(88),o=function(a){function b(){return e(this,b),f(this,a.apply(this,arguments))}return g(b,a),b.prototype.createEl=function(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"button",b=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},c=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};b=(0,n.assign)({className:this.buildCSSClass()},b),"button"!==a&&(m["default"].warn("Creating a Button with an HTML element of "+a+" is deprecated; use ClickableComponent instead."),b=(0,n.assign)({tabIndex:0},b),c=(0,n.assign)({role:"button"},c)),c=(0,n.assign)({type:"button","aria-live":"polite"},c);var d=k["default"].prototype.createEl.call(this,a,b,c);return this.createControlTextEl(d),d},b.prototype.addChild=function(a){var b=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},c=this.constructor.name;return m["default"].warn("Adding an actionable (user controllable) child to a Button ("+c+") is not supported; use a ClickableComponent instead."),k["default"].prototype.addChild.call(this,a,b)},b.prototype.enable=function(){a.prototype.enable.call(this),this.el_.removeAttribute("disabled")},b.prototype.disable=function(){a.prototype.disable.call(this),this.el_.setAttribute("disabled","disabled")},b.prototype.handleKeyPress=function(b){32!==b.which&&13!==b.which&&a.prototype.handleKeyPress.call(this,b)},b}(i["default"]);k["default"].registerComponent("Button",o),c["default"]=o},{3:3,5:5,86:86,88:88}],3:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(5),j=e(i),k=a(81),l=d(k),m=a(82),n=d(m),o=a(83),p=d(o),q=a(86),r=e(q),s=a(94),t=e(s),u=a(88),v=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.emitTapEvents(),e.enable(),e}return h(b,a),b.prototype.createEl=function(){var b=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"div",c=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},d=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};c=(0,u.assign)({className:this.buildCSSClass(),tabIndex:0},c),"button"===b&&r["default"].error("Creating a ClickableComponent with an HTML element of "+b+" is not supported; use a Button instead."),d=(0,u.assign)({role:"button","aria-live":"polite"},d),this.tabIndex_=c.tabIndex;var e=a.prototype.createEl.call(this,b,c,d);return this.createControlTextEl(e),e},b.prototype.createControlTextEl=function(a){return this.controlTextEl_=l.createEl("span",{className:"vjs-control-text"}),a&&a.appendChild(this.controlTextEl_),this.controlText(this.controlText_,a),this.controlTextEl_},b.prototype.controlText=function(a){var b=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.el();if(a===undefined)return this.controlText_||"Need Text";var c=this.localize(a);return this.controlText_=a,this.controlTextEl_.innerHTML=c,this.nonIconControl||b.setAttribute("title",c),this},b.prototype.buildCSSClass=function(){return"vjs-control vjs-button "+a.prototype.buildCSSClass.call(this)},b.prototype.enable=function(){return this.removeClass("vjs-disabled"),this.el_.setAttribute("aria-disabled","false"),"undefined"!=typeof this.tabIndex_&&this.el_.setAttribute("tabIndex",this.tabIndex_),this.off(["tap","click"],this.handleClick),this.off("focus",this.handleFocus),this.off("blur",this.handleBlur),this.on(["tap","click"],this.handleClick),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur),this},b.prototype.disable=function(){return this.addClass("vjs-disabled"),this.el_.setAttribute("aria-disabled","true"),"undefined"!=typeof this.tabIndex_&&this.el_.removeAttribute("tabIndex"),this.off(["tap","click"],this.handleClick),this.off("focus",this.handleFocus),this.off("blur",this.handleBlur),this},b.prototype.handleClick=function(a){},b.prototype.handleFocus=function(a){n.on(t["default"],"keydown",p.bind(this,this.handleKeyPress))},b.prototype.handleKeyPress=function(b){32===b.which||13===b.which?(b.preventDefault(),this.handleClick(b)):a.prototype.handleKeyPress&&a.prototype.handleKeyPress.call(this,b)},b.prototype.handleBlur=function(a){n.off(t["default"],"keydown",p.bind(this,this.handleKeyPress))},b}(j["default"]);j["default"].registerComponent("ClickableComponent",v),c["default"]=v},{5:5,81:81,82:82,83:83,86:86,88:88,94:94}],4:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(2),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.controlText(d&&d.controlText||g.localize("Close")),g}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-close-button "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(a){this.trigger({type:"close",bubbles:!1})},b}(i["default"]);k["default"].registerComponent("CloseButton",l),c["default"]=l},{2:2,5:5}],5:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}c.__esModule=!0;var g=a(95),h=e(g),i=a(81),j=d(i),k=a(83),l=d(k),m=a(85),n=d(m),o=a(82),p=d(o),q=a(86),r=e(q),s=a(91),t=e(s),u=a(87),v=e(u),w=function(){function a(b,c,d){if(f(this,a),!b&&this.play?this.player_=b=this:this.player_=b,this.options_=(0,v["default"])({},this.options_),c=this.options_=(0,v["default"])(this.options_,c),this.id_=c.id||c.el&&c.el.id,!this.id_){var e=b&&b.id&&b.id()||"no_player";this.id_=e+"_component_"+n.newGUID()}this.name_=c.name||null,c.el?this.el_=c.el:!1!==c.createEl&&(this.el_=this.createEl()),this.children_=[],this.childIndex_={},this.childNameIndex_={},!1!==c.initChildren&&this.initChildren(),this.ready(d),!1!==c.reportTouchActivity&&this.enableTouchActivity()}return a.prototype.dispose=function(){if(this.trigger({type:"dispose",bubbles:!1}),this.children_)for(var a=this.children_.length-1;a>=0;a--)this.children_[a].dispose&&this.children_[a].dispose();this.children_=null,this.childIndex_=null,this.childNameIndex_=null,this.off(),this.el_.parentNode&&this.el_.parentNode.removeChild(this.el_),j.removeElData(this.el_),this.el_=null},a.prototype.player=function(){return this.player_},a.prototype.options=function(a){return r["default"].warn("this.options() has been deprecated and will be moved to the constructor in 6.0"),a?(this.options_=(0,v["default"])(this.options_,a),this.options_):this.options_},a.prototype.el=function(){return this.el_},a.prototype.createEl=function(a,b,c){return j.createEl(a,b,c)},a.prototype.localize=function(a){var b=this.player_.language&&this.player_.language(),c=this.player_.languages&&this.player_.languages();if(!b||!c)return a;var d=c[b];if(d&&d[a])return d[a];var e=b.split("-")[0],f=c[e];return f&&f[a]?f[a]:a},a.prototype.contentEl=function(){return this.contentEl_||this.el_},a.prototype.id=function(){return this.id_},a.prototype.name=function(){return this.name_},a.prototype.children=function(){return this.children_},a.prototype.getChildById=function(a){return this.childIndex_[a]},a.prototype.getChild=function(a){if(a)return a=(0,t["default"])(a),this.childNameIndex_[a]},a.prototype.addChild=function(b){var c=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},d=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.children_.length,e=void 0,f=void 0;if("string"==typeof b){f=(0,t["default"])(b),c||(c={}),!0===c&&(r["default"].warn("Initializing a child component with `true` is deprecated.Children should be defined in an array when possible, but if necessary use an object instead of `true`."),c={});var g=c.componentClass||f;c.name=f;var h=a.getComponent(g);if(!h)throw new Error("Component "+g+" does not exist");if("function"!=typeof h)return null;e=new h(this.player_||this,c)}else e=b;if(this.children_.splice(d,0,e),"function"==typeof e.id&&(this.childIndex_[e.id()]=e),f=f||e.name&&(0,t["default"])(e.name()),f&&(this.childNameIndex_[f]=e),"function"==typeof e.el&&e.el()){var i=this.contentEl().children,j=i[d]||null;this.contentEl().insertBefore(e.el(),j)}return e},a.prototype.removeChild=function(a){if("string"==typeof a&&(a=this.getChild(a)),a&&this.children_){for(var b=!1,c=this.children_.length-1;c>=0;c--)if(this.children_[c]===a){b=!0,this.children_.splice(c,1);break}if(b){this.childIndex_[a.id()]=null,this.childNameIndex_[a.name()]=null;var d=a.el();d&&d.parentNode===this.contentEl()&&this.contentEl().removeChild(a.el())}}},a.prototype.initChildren=function(){var b=this,c=this.options_.children;if(c){var d=this.options_,e=function(a){var c=a.name,e=a.opts;if(d[c]!==undefined&&(e=d[c]),!1!==e){!0===e&&(e={}),e.playerOptions=b.options_.playerOptions;var f=b.addChild(c,e);f&&(b[c]=f)}},f=void 0,g=a.getComponent("Tech");f=Array.isArray(c)?c:Object.keys(c),f.concat(Object.keys(this.options_).filter(function(a){return!f.some(function(b){return"string"==typeof b?a===b:a===b.name})})).map(function(a){var d=void 0,e=void 0;return"string"==typeof a?(d=a,e=c[d]||b.options_[d]||{}):(d=a.name,e=a),{name:d,opts:e}}).filter(function(b){var c=a.getComponent(b.opts.componentClass||(0,t["default"])(b.name));return c&&!g.isTech(c)}).forEach(e)}},a.prototype.buildCSSClass=function(){return""},a.prototype.on=function(a,b,c){var d=this;if("string"==typeof a||Array.isArray(a))p.on(this.el_,a,l.bind(this,b));else{var e=a,f=b,g=l.bind(this,c),h=function(){return d.off(e,f,g)};h.guid=g.guid,this.on("dispose",h);var i=function(){return d.off("dispose",h)};i.guid=g.guid,a.nodeName?(p.on(e,f,g),p.on(e,"dispose",i)):"function"==typeof a.on&&(e.on(f,g),e.on("dispose",i))}return this},a.prototype.off=function(a,b,c){if(!a||"string"==typeof a||Array.isArray(a))p.off(this.el_,a,b);else{var d=a,e=b,f=l.bind(this,c);this.off("dispose",f),a.nodeName?(p.off(d,e,f),p.off(d,"dispose",f)):(d.off(e,f),d.off("dispose",f))}return this},a.prototype.one=function(a,b,c){var d=this,e=arguments;if("string"==typeof a||Array.isArray(a))p.one(this.el_,a,l.bind(this,b));else{var f=a,g=b,h=l.bind(this,c),i=function j(){d.off(f,g,j),h.apply(null,e)};i.guid=h.guid,this.on(f,g,i)}return this},a.prototype.trigger=function(a,b){return p.trigger(this.el_,a,b),this},a.prototype.ready=function(a){var b=arguments.length>1&&arguments[1]!==undefined&&arguments[1];return a&&(this.isReady_?b?a.call(this):this.setTimeout(a,1):(this.readyQueue_=this.readyQueue_||[],this.readyQueue_.push(a))),this},a.prototype.triggerReady=function(){this.isReady_=!0,this.setTimeout(function(){var a=this.readyQueue_;this.readyQueue_=[],a&&a.length>0&&a.forEach(function(a){a.call(this)},this),this.trigger("ready")},1)},a.prototype.$=function(a,b){return j.$(a,b||this.contentEl())},a.prototype.$$=function(a,b){return j.$$(a,b||this.contentEl())},a.prototype.hasClass=function(a){return j.hasElClass(this.el_,a)},a.prototype.addClass=function(a){return j.addElClass(this.el_,a),this},a.prototype.removeClass=function(a){return j.removeElClass(this.el_,a),this},a.prototype.toggleClass=function(a,b){return j.toggleElClass(this.el_,a,b),this},a.prototype.show=function(){return this.removeClass("vjs-hidden"),this},a.prototype.hide=function(){return this.addClass("vjs-hidden"),this},a.prototype.lockShowing=function(){return this.addClass("vjs-lock-showing"),this},a.prototype.unlockShowing=function(){return this.removeClass("vjs-lock-showing"),this},a.prototype.getAttribute=function(a){return j.getAttribute(this.el_,a)},a.prototype.setAttribute=function(a,b){return j.setAttribute(this.el_,a,b),this},a.prototype.removeAttribute=function(a){return j.removeAttribute(this.el_,a),this},a.prototype.width=function(a,b){return this.dimension("width",a,b)},a.prototype.height=function(a,b){return this.dimension("height",a,b)},a.prototype.dimensions=function(a,b){return this.width(a,!0).height(b)},a.prototype.dimension=function(a,b,c){if(b!==undefined)return null!==b&&b===b||(b=0),-1!==(""+b).indexOf("%")||-1!==(""+b).indexOf("px")?this.el_.style[a]=b:this.el_.style[a]="auto"===b?"":b+"px",c||this.trigger("resize"),this;if(!this.el_)return 0;var d=this.el_.style[a],e=d.indexOf("px");return-1!==e?parseInt(d.slice(0,e),10):parseInt(this.el_["offset"+(0,t["default"])(a)],10)},a.prototype.currentDimension=function(a){var b=0;if("width"!==a&&"height"!==a)throw new Error("currentDimension only accepts width or height value");if("function"==typeof h["default"].getComputedStyle){var c=h["default"].getComputedStyle(this.el_);b=c.getPropertyValue(a)||c[a]}if(0===(b=parseFloat(b))){var d="offset"+(0,t["default"])(a);b=this.el_[d]}return b},a.prototype.currentDimensions=function(){return{width:this.currentDimension("width"),height:this.currentDimension("height")}},a.prototype.currentWidth=function(){return this.currentDimension("width")},a.prototype.currentHeight=function(){return this.currentDimension("height")},a.prototype.focus=function(){this.el_.focus()},a.prototype.blur=function(){this.el_.blur()},a.prototype.emitTapEvents=function(){var a=0,b=null,c=void 0;this.on("touchstart",function(d){1===d.touches.length&&(b={pageX:d.touches[0].pageX,pageY:d.touches[0].pageY},a=(new Date).getTime(),c=!0)}),this.on("touchmove",function(a){if(a.touches.length>1)c=!1;else if(b){var d=a.touches[0].pageX-b.pageX,e=a.touches[0].pageY-b.pageY,f=Math.sqrt(d*d+e*e);f>10&&(c=!1)}});var d=function(){c=!1};this.on("touchleave",d),this.on("touchcancel",d),this.on("touchend",function(d){if(b=null,!0===c){(new Date).getTime()-a<200&&(d.preventDefault(),this.trigger("tap"))}})},a.prototype.enableTouchActivity=function(){if(this.player()&&this.player().reportUserActivity){var a=l.bind(this.player(),this.player().reportUserActivity),b=void 0;this.on("touchstart",function(){a(),this.clearInterval(b),b=this.setInterval(a,250)});var c=function(c){a(),this.clearInterval(b)};this.on("touchmove",a),this.on("touchend",c),this.on("touchcancel",c)}},a.prototype.setTimeout=function(a,b){a=l.bind(this,a);var c=h["default"].setTimeout(a,b),d=function(){this.clearTimeout(c)};return d.guid="vjs-timeout-"+c,this.on("dispose",d),c},a.prototype.clearTimeout=function(a){h["default"].clearTimeout(a);var b=function(){};return b.guid="vjs-timeout-"+a,this.off("dispose",b),a},a.prototype.setInterval=function(a,b){a=l.bind(this,a);var c=h["default"].setInterval(a,b),d=function(){this.clearInterval(c)};return d.guid="vjs-interval-"+c,this.on("dispose",d),c},a.prototype.clearInterval=function(a){h["default"].clearInterval(a);var b=function(){};return b.guid="vjs-interval-"+a,this.off("dispose",b),a},a.registerComponent=function(b,c){if(b){if(b=(0,t["default"])(b),a.components_||(a.components_={}),"Player"===b&&a.components_[b]){var d=a.components_[b];if(d.players&&Object.keys(d.players).length>0&&Object.keys(d.players).map(function(a){return d.players[a]}).every(Boolean))throw new Error("Can not register Player component after player has been created")}return a.components_[b]=c,c}},a.getComponent=function(b){if(b)return b=(0,t["default"])(b),a.components_&&a.components_[b]?a.components_[b]:h["default"]&&h["default"].videojs&&h["default"].videojs[b]?(r["default"].warn("The "+b+" component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)"),h["default"].videojs[b]):void 0},a.extend=function(b){b=b||{},r["default"].warn("Component.extend({}) has been deprecated, use videojs.extend(Component, {}) instead");var c=b.init||b.init||this.prototype.init||this.prototype.init||function(){},d=function(){c.apply(this,arguments)};d.prototype=Object.create(this.prototype),d.prototype.constructor=d,d.extend=a.extend;for(var e in b)b.hasOwnProperty(e)&&(d.prototype[e]=b[e]);return d},a}();w.registerComponent("Component",w),c["default"]=w},{81:81,82:82,83:83,85:85,86:86,87:87,91:91,95:95}],6:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(36),i=d(h),j=a(5),k=d(j),l=a(7),m=d(l),n=function(a){function b(c){var d=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};e(this,b),d.tracks=c.audioTracks&&c.audioTracks();var g=f(this,a.call(this,c,d));return g.el_.setAttribute("aria-label","Audio Menu"),g}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-audio-button "+a.prototype.buildCSSClass.call(this)},b.prototype.createItems=function(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];this.hideThreshold_=1;var b=this.player_.audioTracks&&this.player_.audioTracks();if(!b)return a;for(var c=0;c<b.length;c++){var d=b[c];a.push(new m["default"](this.player_,{track:d,selectable:!0}))}return a},b}(i["default"]);n.prototype.controlText_="Audio Track",k["default"].registerComponent("AudioTrackButton",n),c["default"]=n},{36:36,5:5,7:7}],7:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(48),i=d(h),j=a(5),k=d(j),l=a(83),m=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(l),n=function(a){function b(c,d){e(this,b);var g=d.track,h=c.audioTracks();d.label=g.label||g.language||"Unknown",d.selected=g.enabled;var i=f(this,a.call(this,c,d));if(i.track=g,h){var j=m.bind(i,i.handleTracksChange);h.addEventListener("change",j),i.on("dispose",function(){h.removeEventListener("change",j)})}return i}return g(b,a),b.prototype.handleClick=function(b){var c=this.player_.audioTracks();if(a.prototype.handleClick.call(this,b),c)for(var d=0;d<c.length;d++){var e=c[d];e.enabled=e===this.track}},b.prototype.handleTracksChange=function(a){this.selected(this.track.enabled)},b}(i["default"]);k["default"].registerComponent("AudioTrackMenuItem",n),c["default"]=n},{48:48,5:5,83:83}],8:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g);a(12),a(32),a(33),a(35),a(34),a(10),a(18),a(9),a(38),a(40),a(11),a(25),a(27),a(29),a(24),a(6),a(13),a(21);var i=function(a){function b(){return d(this,b),e(this,a.apply(this,arguments))}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-control-bar",dir:"ltr"},{role:"group"})},b}(h["default"]);i.prototype.options_={children:["playToggle","volumeMenuButton","currentTimeDisplay","timeDivider","durationDisplay","progressControl","liveDisplay","remainingTimeDisplay","customControlSpacer","playbackRateMenuButton","chaptersButton","descriptionsButton","subtitlesButton","captionsButton","audioTrackButton","fullscreenToggle"]},h["default"].registerComponent("ControlBar",i),c["default"]=i},{10:10,11:11,12:12,13:13,18:18,21:21,24:24,25:25,27:27,29:29,32:32,33:33,34:34,35:35,38:38,40:40,5:5,6:6,9:9}],9:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(2),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"fullscreenchange",g.handleFullscreenChange),g}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-fullscreen-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleFullscreenChange=function(a){this.player_.isFullscreen()?this.controlText("Non-Fullscreen"):this.controlText("Fullscreen")},b.prototype.handleClick=function(a){this.player_.isFullscreen()?this.player_.exitFullscreen():this.player_.requestFullscreen()},b}(i["default"]);l.prototype.controlText_="Fullscreen",k["default"].registerComponent("FullscreenToggle",l),c["default"]=l},{2:2,5:5}],10:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g),i=a(81),j=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(i),k=function(a){function b(c,f){d(this,b);var g=e(this,a.call(this,c,f));return g.updateShowing(),g.on(g.player(),"durationchange",g.updateShowing),g}return f(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-live-control vjs-control"});return this.contentEl_=j.createEl("div",{className:"vjs-live-display",innerHTML:'<span class="vjs-control-text">'+this.localize("Stream Type")+"</span>"+this.localize("LIVE")},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateShowing=function(a){this.player().duration()===Infinity?this.show():this.hide()},b}(h["default"]);h["default"].registerComponent("LiveDisplay",k),c["default"]=k},{5:5,81:81}],11:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(2),i=d(h),j=a(5),k=d(j),l=a(81),m=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(l),n=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"volumechange",g.update),c.tech_&&!1===c.tech_.featuresVolumeControl&&g.addClass("vjs-hidden"),g.on(c,"loadstart",function(){this.update(),!1===c.tech_.featuresVolumeControl?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}),g}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-mute-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(a){this.player_.muted(!this.player_.muted())},b.prototype.update=function(a){var b=this.player_.volume(),c=3;this.player_.muted()?c=0:b<.33?c=1:b<.67&&(c=2);var d=this.player_.muted()?"Unmute":"Mute";this.controlText()!==d&&this.controlText(d);for(var e=0;e<4;e++)m.removeElClass(this.el_,"vjs-vol-"+e);m.addElClass(this.el_,"vjs-vol-"+c)},b}(i["default"]);n.prototype.controlText_="Mute",k["default"].registerComponent("MuteToggle",n),c["default"]=n},{2:2,5:5,81:81}],12:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(2),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"play",g.handlePlay),g.on(c,"pause",g.handlePause),g}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-play-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(a){this.player_.paused()?this.player_.play():this.player_.pause()},b.prototype.handlePlay=function(a){this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.controlText("Pause")},b.prototype.handlePause=function(a){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.controlText("Play")},b}(i["default"]);l.prototype.controlText_="Play",k["default"].registerComponent("PlayToggle",l),c["default"]=l},{2:2,5:5}],13:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(47),i=d(h),j=a(49),k=d(j),l=a(14),m=d(l),n=a(5),o=d(n),p=a(81),q=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(p),r=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.updateVisibility(),g.updateLabel(),g.on(c,"loadstart",g.updateVisibility),g.on(c,"ratechange",g.updateLabel),g}
13
+ return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this);return this.labelEl_=q.createEl("div",{className:"vjs-playback-rate-value",innerHTML:1}),b.appendChild(this.labelEl_),b},b.prototype.buildCSSClass=function(){return"vjs-playback-rate "+a.prototype.buildCSSClass.call(this)},b.prototype.createMenu=function(){var a=new k["default"](this.player()),b=this.playbackRates();if(b)for(var c=b.length-1;c>=0;c--)a.addChild(new m["default"](this.player(),{rate:b[c]+"x"}));return a},b.prototype.updateARIAAttributes=function(){this.el().setAttribute("aria-valuenow",this.player().playbackRate())},b.prototype.handleClick=function(a){for(var b=this.player().playbackRate(),c=this.playbackRates(),d=c[0],e=0;e<c.length;e++)if(c[e]>b){d=c[e];break}this.player().playbackRate(d)},b.prototype.playbackRates=function(){return this.options_.playbackRates||this.options_.playerOptions&&this.options_.playerOptions.playbackRates},b.prototype.playbackRateSupported=function(){return this.player().tech_&&this.player().tech_.featuresPlaybackRate&&this.playbackRates()&&this.playbackRates().length>0},b.prototype.updateVisibility=function(a){this.playbackRateSupported()?this.removeClass("vjs-hidden"):this.addClass("vjs-hidden")},b.prototype.updateLabel=function(a){this.playbackRateSupported()&&(this.labelEl_.innerHTML=this.player().playbackRate()+"x")},b}(i["default"]);r.prototype.controlText_="Playback Rate",o["default"].registerComponent("PlaybackRateMenuButton",r),c["default"]=r},{14:14,47:47,49:49,5:5,81:81}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(48),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b);var g=d.rate,h=parseFloat(g,10);d.label=g,d.selected=1===h,d.selectable=!0;var i=f(this,a.call(this,c,d));return i.label=g,i.rate=h,i.on(c,"ratechange",i.update),i}return g(b,a),b.prototype.handleClick=function(b){a.prototype.handleClick.call(this),this.player().playbackRate(this.rate)},b.prototype.update=function(a){this.selected(this.player().playbackRate()===this.rate)},b}(i["default"]);l.prototype.contentElType="button",k["default"].registerComponent("PlaybackRateMenuItem",l),c["default"]=l},{48:48,5:5}],15:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g),i=a(81),j=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(i),k=function(a){function b(c,f){d(this,b);var g=e(this,a.call(this,c,f));return g.partEls_=[],g.on(c,"progress",g.update),g}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-load-progress",innerHTML:'<span class="vjs-control-text"><span>'+this.localize("Loaded")+"</span>: 0%</span>"})},b.prototype.update=function(a){var b=this.player_.buffered(),c=this.player_.duration(),d=this.player_.bufferedEnd(),e=this.partEls_,f=function(a,b){var c=a/b||0;return 100*(c>=1?1:c)+"%"};this.el_.style.width=f(d,c);for(var g=0;g<b.length;g++){var h=b.start(g),i=b.end(g),k=e[g];k||(k=this.el_.appendChild(j.createEl()),e[g]=k),k.style.left=f(h,d),k.style.width=f(i-h,d)}for(var l=e.length;l>b.length;l--)this.el_.removeChild(e[l-1]);e.length=b.length},b}(h["default"]);h["default"].registerComponent("LoadProgressBar",k),c["default"]=k},{5:5,81:81}],16:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(5),j=e(i),k=a(81),l=d(k),m=a(83),n=d(m),o=a(84),p=e(o),q=a(80),r=e(q),s=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return d.playerOptions&&d.playerOptions.controlBar&&d.playerOptions.controlBar.progressControl&&d.playerOptions.controlBar.progressControl.keepTooltipsInside&&(e.keepTooltipsInside=d.playerOptions.controlBar.progressControl.keepTooltipsInside),e.keepTooltipsInside&&(e.tooltip=l.createEl("div",{className:"vjs-time-tooltip"}),e.el().appendChild(e.tooltip),e.addClass("vjs-keep-tooltips-inside")),e.update(0,0),c.on("ready",function(){e.on(c.controlBar.progressControl.el(),"mousemove",n.throttle(n.bind(e,e.handleMouseMove),25))}),e}return h(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-mouse-display"})},b.prototype.handleMouseMove=function(a){var b=this.player_.duration(),c=this.calculateDistance(a)*b,d=a.pageX-l.findElPosition(this.el().parentNode).left;this.update(c,d)},b.prototype.update=function(a,b){var c=(0,p["default"])(a,this.player_.duration());if(this.el().style.left=b+"px",this.el().setAttribute("data-current-time",c),this.keepTooltipsInside){var d=this.clampPosition_(b),e=b-d+1,f=parseFloat((0,r["default"])(this.tooltip,"width")),g=f/2;this.tooltip.innerHTML=c,this.tooltip.style.right="-"+(g-e)+"px"}},b.prototype.calculateDistance=function(a){return l.getPointerPosition(this.el().parentNode,a).x},b.prototype.clampPosition_=function(a){if(!this.keepTooltipsInside)return a;var b=parseFloat((0,r["default"])(this.player().el(),"width")),c=parseFloat((0,r["default"])(this.tooltip,"width")),d=c/2,e=a;return a<d?e=Math.ceil(d):a>b-d&&(e=Math.floor(b-d)),e},b}(j["default"]);j["default"].registerComponent("MouseTimeDisplay",s),c["default"]=s},{5:5,80:80,81:81,83:83,84:84}],17:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=a(83),k=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(j),l=a(84),m=d(l),n=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.updateDataAttr(),g.on(c,"timeupdate",g.updateDataAttr),c.ready(k.bind(g,g.updateDataAttr)),d.playerOptions&&d.playerOptions.controlBar&&d.playerOptions.controlBar.progressControl&&d.playerOptions.controlBar.progressControl.keepTooltipsInside&&(g.keepTooltipsInside=d.playerOptions.controlBar.progressControl.keepTooltipsInside),g.keepTooltipsInside&&g.addClass("vjs-keep-tooltips-inside"),g}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-play-progress vjs-slider-bar",innerHTML:'<span class="vjs-control-text"><span>'+this.localize("Progress")+"</span>: 0%</span>"})},b.prototype.updateDataAttr=function(a){var b=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("data-current-time",(0,m["default"])(b,this.player_.duration()))},b}(i["default"]);i["default"].registerComponent("PlayProgressBar",n),c["default"]=n},{5:5,83:83,84:84}],18:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g);a(19),a(16);var i=function(a){function b(){return d(this,b),e(this,a.apply(this,arguments))}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-control vjs-control"})},b}(h["default"]);i.prototype.options_={children:["seekBar"]},h["default"].registerComponent("ProgressControl",i),c["default"]=i},{16:16,19:19,5:5}],19:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(57),i=d(h),j=a(5),k=d(j),l=a(83),m=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(l),n=a(84),o=d(n),p=a(80),q=d(p);a(15),a(17),a(20);var r=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"timeupdate",g.updateProgress),g.on(c,"ended",g.updateProgress),c.ready(m.bind(g,g.updateProgress)),d.playerOptions&&d.playerOptions.controlBar&&d.playerOptions.controlBar.progressControl&&d.playerOptions.controlBar.progressControl.keepTooltipsInside&&(g.keepTooltipsInside=d.playerOptions.controlBar.progressControl.keepTooltipsInside),g.keepTooltipsInside&&(g.tooltipProgressBar=g.addChild("TooltipProgressBar")),g}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-holder"},{"aria-label":"progress bar"})},b.prototype.updateProgress=function(a){if(this.updateAriaAttributes(this.el_),this.keepTooltipsInside){this.updateAriaAttributes(this.tooltipProgressBar.el_),this.tooltipProgressBar.el_.style.width=this.bar.el_.style.width;var b=parseFloat((0,q["default"])(this.player().el(),"width")),c=parseFloat((0,q["default"])(this.tooltipProgressBar.tooltip,"width")),d=this.tooltipProgressBar.el().style;d.maxWidth=Math.floor(b-c/2)+"px",d.minWidth=Math.ceil(c/2)+"px",d.right="-"+c/2+"px"}},b.prototype.updateAriaAttributes=function(a){var b=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();a.setAttribute("aria-valuenow",(100*this.getPercent()).toFixed(2)),a.setAttribute("aria-valuetext",(0,o["default"])(b,this.player_.duration()))},b.prototype.getPercent=function(){var a=this.player_.currentTime()/this.player_.duration();return a>=1?1:a},b.prototype.handleMouseDown=function(b){this.player_.scrubbing(!0),this.videoWasPlaying=!this.player_.paused(),this.player_.pause(),a.prototype.handleMouseDown.call(this,b)},b.prototype.handleMouseMove=function(a){var b=this.calculateDistance(a)*this.player_.duration();b===this.player_.duration()&&(b-=.1),this.player_.currentTime(b)},b.prototype.handleMouseUp=function(b){a.prototype.handleMouseUp.call(this,b),this.player_.scrubbing(!1),this.videoWasPlaying&&this.player_.play()},b.prototype.stepForward=function(){this.player_.currentTime(this.player_.currentTime()+5)},b.prototype.stepBack=function(){this.player_.currentTime(this.player_.currentTime()-5)},b}(i["default"]);r.prototype.options_={children:["loadProgressBar","mouseTimeDisplay","playProgressBar"],barName:"playProgressBar"},r.prototype.playerEvent="timeupdate",k["default"].registerComponent("SeekBar",r),c["default"]=r},{15:15,17:17,20:20,5:5,57:57,80:80,83:83,84:84}],20:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=a(83),k=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(j),l=a(84),m=d(l),n=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.updateDataAttr(),g.on(c,"timeupdate",g.updateDataAttr),c.ready(k.bind(g,g.updateDataAttr)),g}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-tooltip-progress-bar vjs-slider-bar",innerHTML:'<div class="vjs-time-tooltip"></div>\n <span class="vjs-control-text"><span>'+this.localize("Progress")+"</span>: 0%</span>"});return this.tooltip=b.querySelector(".vjs-time-tooltip"),b},b.prototype.updateDataAttr=function(a){var b=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime(),c=(0,m["default"])(b,this.player_.duration());this.el_.setAttribute("data-current-time",c),this.tooltip.innerHTML=c},b}(i["default"]);i["default"].registerComponent("TooltipProgressBar",n),c["default"]=n},{5:5,83:83,84:84}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(22),i=d(h),j=a(5),k=d(j),l=function(a){function b(){return e(this,b),f(this,a.apply(this,arguments))}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-custom-control-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,{className:this.buildCSSClass()});return b.innerHTML="&nbsp;",b},b}(i["default"]);k["default"].registerComponent("CustomControlSpacer",l),c["default"]=l},{22:22,5:5}],22:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g),i=function(a){function b(){return d(this,b),e(this,a.apply(this,arguments))}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},b}(h["default"]);h["default"].registerComponent("Spacer",i),c["default"]=i},{5:5}],23:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(31),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b),d.track={player:c,kind:d.kind,label:d.kind+" settings",selectable:!1,"default":!1,mode:"disabled"},d.selectable=!1;var g=f(this,a.call(this,c,d));return g.addClass("vjs-texttrack-settings"),g.controlText(", opens "+d.kind+" settings dialog"),g}return g(b,a),b.prototype.handleClick=function(a){this.player().getChild("textTrackSettings").show(),this.player().getChild("textTrackSettings").el_.focus()},b}(i["default"]);k["default"].registerComponent("CaptionSettingsMenuItem",l),c["default"]=l},{31:31,5:5}],24:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(30),i=d(h),j=a(5),k=d(j),l=a(23),m=d(l),n=function(a){function b(c,d,g){e(this,b);var h=f(this,a.call(this,c,d,g));return h.el_.setAttribute("aria-label","Captions Menu"),h}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-captions-button "+a.prototype.buildCSSClass.call(this)},b.prototype.createItems=function(){var b=[];return this.player().tech_&&this.player().tech_.featuresNativeTextTracks||(b.push(new m["default"](this.player_,{kind:this.kind_})),this.hideThreshold_+=1),a.prototype.createItems.call(this,b)},b}(i["default"]);n.prototype.kind_="captions",n.prototype.controlText_="Captions",k["default"].registerComponent("CaptionsButton",n),c["default"]=n},{23:23,30:30,5:5}],25:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(30),i=d(h),j=a(5),k=d(j),l=a(26),m=d(l),n=a(91),o=d(n),p=function(a){function b(c,d,g){e(this,b);var h=f(this,a.call(this,c,d,g));return h.el_.setAttribute("aria-label","Chapters Menu"),h}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-chapters-button "+a.prototype.buildCSSClass.call(this)},b.prototype.update=function(b){this.track_&&(!b||"addtrack"!==b.type&&"removetrack"!==b.type)||this.setTrack(this.findChaptersTrack()),a.prototype.update.call(this)},b.prototype.setTrack=function(a){if(this.track_!==a){if(this.updateHandler_||(this.updateHandler_=this.update.bind(this)),this.track_){var b=this.player_.remoteTextTrackEls().getTrackElementByTrack_(this.track_);b&&b.removeEventListener("load",this.updateHandler_),this.track_=null}if(this.track_=a,this.track_){this.track_.mode="hidden";var c=this.player_.remoteTextTrackEls().getTrackElementByTrack_(this.track_);c&&c.addEventListener("load",this.updateHandler_)}}},b.prototype.findChaptersTrack=function(){for(var a=this.player_.textTracks()||[],b=a.length-1;b>=0;b--){var c=a[b];if(c.kind===this.kind_)return c}},b.prototype.getMenuCaption=function(){return this.track_&&this.track_.label?this.track_.label:this.localize((0,o["default"])(this.kind_))},b.prototype.createMenu=function(){return this.options_.title=this.getMenuCaption(),a.prototype.createMenu.call(this)},b.prototype.createItems=function(){var a=[];if(!this.track_)return a;var b=this.track_.cues;if(!b)return a;for(var c=0,d=b.length;c<d;c++){var e=b[c],f=new m["default"](this.player_,{track:this.track_,cue:e});a.push(f)}return a},b}(i["default"]);p.prototype.kind_="chapters",p.prototype.controlText_="Chapters",k["default"].registerComponent("ChaptersButton",p),c["default"]=p},{26:26,30:30,5:5,91:91}],26:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(48),i=d(h),j=a(5),k=d(j),l=a(83),m=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(l),n=function(a){function b(c,d){e(this,b);var g=d.track,h=d.cue,i=c.currentTime();d.selectable=!0,d.label=h.text,d.selected=h.startTime<=i&&i<h.endTime;var j=f(this,a.call(this,c,d));return j.track=g,j.cue=h,g.addEventListener("cuechange",m.bind(j,j.update)),j}return g(b,a),b.prototype.handleClick=function(b){a.prototype.handleClick.call(this),this.player_.currentTime(this.cue.startTime),this.update(this.cue.startTime)},b.prototype.update=function(a){var b=this.cue,c=this.player_.currentTime();this.selected(b.startTime<=c&&c<b.endTime)},b}(i["default"]);k["default"].registerComponent("ChaptersTrackMenuItem",n),c["default"]=n},{48:48,5:5,83:83}],27:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(30),i=d(h),j=a(5),k=d(j),l=a(83),m=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(l),n=function(a){function b(c,d,g){e(this,b);var h=f(this,a.call(this,c,d,g));h.el_.setAttribute("aria-label","Descriptions Menu");var i=c.textTracks();if(i){var j=m.bind(h,h.handleTracksChange);i.addEventListener("change",j),h.on("dispose",function(){i.removeEventListener("change",j)})}return h}return g(b,a),b.prototype.handleTracksChange=function(a){for(var b=this.player().textTracks(),c=!1,d=0,e=b.length;d<e;d++){var f=b[d];if(f.kind!==this.kind_&&"showing"===f.mode){c=!0;break}}c?this.disable():this.enable()},b.prototype.buildCSSClass=function(){return"vjs-descriptions-button "+a.prototype.buildCSSClass.call(this)},b}(i["default"]);n.prototype.kind_="descriptions",n.prototype.controlText_="Descriptions",k["default"].registerComponent("DescriptionsButton",n),c["default"]=n},{30:30,5:5,83:83}],28:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(31),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b),d.track={player:c,kind:d.kind,label:d.kind+" off","default":!1,mode:"disabled"},d.selectable=!0;var g=f(this,a.call(this,c,d));return g.selected(!0),g}return g(b,a),b.prototype.handleTracksChange=function(a){for(var b=this.player().textTracks(),c=!0,d=0,e=b.length;d<e;d++){var f=b[d];if(f.kind===this.track.kind&&"showing"===f.mode){c=!1;break}}this.selected(c)},b}(i["default"]);k["default"].registerComponent("OffTextTrackMenuItem",l),c["default"]=l},{31:31,5:5}],29:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(30),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d,g){e(this,b);var h=f(this,a.call(this,c,d,g));return h.el_.setAttribute("aria-label","Subtitles Menu"),h}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-subtitles-button "+a.prototype.buildCSSClass.call(this)},b}(i["default"]);l.prototype.kind_="subtitles",l.prototype.controlText_="Subtitles",k["default"].registerComponent("SubtitlesButton",l),c["default"]=l},{30:30,5:5}],30:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(36),i=d(h),j=a(5),k=d(j),l=a(31),m=d(l),n=a(28),o=d(n),p=function(a){function b(c){var d=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};return e(this,b),d.tracks=c.textTracks(),f(this,a.call(this,c,d))}return g(b,a),b.prototype.createItems=function(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];a.push(new o["default"](this.player_,{kind:this.kind_})),this.hideThreshold_+=1;var b=this.player_.textTracks();if(!b)return a;for(var c=0;c<b.length;c++){var d=b[c];d.kind===this.kind_&&a.push(new m["default"](this.player_,{track:d,selectable:!0}))}return a},b}(i["default"]);k["default"].registerComponent("TextTrackButton",p),c["default"]=p},{28:28,31:31,36:36,5:5}],31:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},i=a(48),j=d(i),k=a(5),l=d(k),m=a(83),n=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(m),o=a(95),p=d(o),q=a(94),r=d(q),s=function(a){function b(c,d){e(this,b);var g=d.track,i=c.textTracks();d.label=g.label||g.language||"Unknown",d.selected=g["default"]||"showing"===g.mode;var j=f(this,a.call(this,c,d));if(j.track=g,i){var k=n.bind(j,j.handleTracksChange);c.on(["loadstart","texttrackchange"],k),i.addEventListener("change",k),j.on("dispose",function(){i.removeEventListener("change",k)})}if(i&&i.onchange===undefined){var l=void 0;j.on(["tap","click"],function(){if("object"!==h(p["default"].Event))try{l=new p["default"].Event("change")}catch(a){}l||(l=r["default"].createEvent("Event"),l.initEvent("change",!0,!0)),i.dispatchEvent(l)})}return j}return g(b,a),b.prototype.handleClick=function(b){var c=this.track.kind,d=this.player_.textTracks();if(a.prototype.handleClick.call(this,b),d)for(var e=0;e<d.length;e++){var f=d[e];f.kind===c&&(f===this.track?"showing"!==f.mode&&(f.mode="showing"):"disabled"!==f.mode&&(f.mode="disabled"))}},b.prototype.handleTracksChange=function(a){this.selected("showing"===this.track.mode)},b}(j["default"]);l["default"].registerComponent("TextTrackMenuItem",s),c["default"]=s},{48:48,5:5,83:83,94:94,95:95}],32:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){
14
+ if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=a(81),k=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(j),l=a(84),m=d(l),n=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"timeupdate",g.updateContent),g}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-current-time vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-current-time-display",innerHTML:'<span class="vjs-control-text">Current Time </span>0:00'},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(a){var b=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime(),c=this.localize("Current Time"),d=(0,m["default"])(b,this.player_.duration());d!==this.formattedTime_&&(this.formattedTime_=d,this.contentEl_.innerHTML='<span class="vjs-control-text">'+c+"</span> "+d)},b}(i["default"]);i["default"].registerComponent("CurrentTimeDisplay",n),c["default"]=n},{5:5,81:81,84:84}],33:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=a(81),k=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(j),l=a(84),m=d(l),n=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"durationchange",g.updateContent),g.on(c,"timeupdate",g.updateContent),g.on(c,"loadedmetadata",g.updateContent),g}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-duration vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-duration-display",innerHTML:'<span class="vjs-control-text">'+this.localize("Duration Time")+"</span> 0:00"},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(a){var b=this.player_.duration();if(b&&this.duration_!==b){this.duration_=b;var c=this.localize("Duration Time"),d=(0,m["default"])(b);this.contentEl_.innerHTML='<span class="vjs-control-text">'+c+"</span> "+d}},b}(i["default"]);i["default"].registerComponent("DurationDisplay",n),c["default"]=n},{5:5,81:81,84:84}],34:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=a(81),k=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(j),l=a(84),m=d(l),n=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"timeupdate",g.updateContent),g.on(c,"durationchange",g.updateContent),g}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-remaining-time vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-remaining-time-display",innerHTML:'<span class="vjs-control-text">'+this.localize("Remaining Time")+"</span> -0:00"},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(a){if(this.player_.duration()){var b=this.localize("Remaining Time"),c=(0,m["default"])(this.player_.remainingTime());c!==this.formattedTime_&&(this.formattedTime_=c,this.contentEl_.innerHTML='<span class="vjs-control-text">'+b+"</span> -"+c)}},b}(i["default"]);i["default"].registerComponent("RemainingTimeDisplay",n),c["default"]=n},{5:5,81:81,84:84}],35:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g),i=function(a){function b(){return d(this,b),e(this,a.apply(this,arguments))}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-time-control vjs-time-divider",innerHTML:"<div><span>/</span></div>"})},b}(h["default"]);h["default"].registerComponent("TimeDivider",i),c["default"]=i},{5:5}],36:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(47),i=d(h),j=a(5),k=d(j),l=a(83),m=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(l),n=function(a){function b(c,d){e(this,b);var g=d.tracks,h=f(this,a.call(this,c,d));if(h.items.length<=1&&h.hide(),!g)return f(h);var i=m.bind(h,h.update);return g.addEventListener("removetrack",i),g.addEventListener("addtrack",i),h.player_.on("dispose",function(){g.removeEventListener("removetrack",i),g.removeEventListener("addtrack",i)}),h}return g(b,a),b}(i["default"]);k["default"].registerComponent("TrackButton",n),c["default"]=n},{47:47,5:5,83:83}],37:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(57),i=d(h),j=a(5),k=d(j),l=a(83),m=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(l);a(39);var n=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"volumechange",g.updateARIAAttributes),c.ready(m.bind(g,g.updateARIAAttributes)),g}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-bar vjs-slider-bar"},{"aria-label":"volume level"})},b.prototype.handleMouseMove=function(a){this.checkMuted(),this.player_.volume(this.calculateDistance(a))},b.prototype.checkMuted=function(){this.player_.muted()&&this.player_.muted(!1)},b.prototype.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},b.prototype.stepForward=function(){this.checkMuted(),this.player_.volume(this.player_.volume()+.1)},b.prototype.stepBack=function(){this.checkMuted(),this.player_.volume(this.player_.volume()-.1)},b.prototype.updateARIAAttributes=function(a){var b=(100*this.player_.volume()).toFixed(2);this.el_.setAttribute("aria-valuenow",b),this.el_.setAttribute("aria-valuetext",b+"%")},b}(i["default"]);n.prototype.options_={children:["volumeLevel"],barName:"volumeLevel"},n.prototype.playerEvent="volumechange",k["default"].registerComponent("VolumeBar",n),c["default"]=n},{39:39,5:5,57:57,83:83}],38:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g);a(37);var i=function(a){function b(c,f){d(this,b);var g=e(this,a.call(this,c,f));return c.tech_&&!1===c.tech_.featuresVolumeControl&&g.addClass("vjs-hidden"),g.on(c,"loadstart",function(){!1===c.tech_.featuresVolumeControl?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}),g}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-control vjs-control"})},b}(h["default"]);i.prototype.options_={children:["volumeBar"]},h["default"].registerComponent("VolumeControl",i),c["default"]=i},{37:37,5:5}],39:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g),i=function(a){function b(){return d(this,b),e(this,a.apply(this,arguments))}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-level",innerHTML:'<span class="vjs-control-text"></span>'})},b}(h["default"]);h["default"].registerComponent("VolumeLevel",i),c["default"]=i},{5:5}],40:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(83),i=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(h),j=a(5),k=d(j),l=a(54),m=d(l),n=a(53),o=d(n),p=a(11),q=d(p),r=a(37),s=d(r),t=function(a){function b(c){function d(){c.tech_&&!1===c.tech_.featuresVolumeControl?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}var g=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};e(this,b),g.inline===undefined&&(g.inline=!0),g.vertical===undefined&&(g.inline?g.vertical=!1:g.vertical=!0),g.volumeBar=g.volumeBar||{},g.volumeBar.vertical=!!g.vertical;var h=f(this,a.call(this,c,g));return h.on(c,"volumechange",h.volumeUpdate),h.on(c,"loadstart",h.volumeUpdate),d.call(h),h.on(c,"loadstart",d),h.on(h.volumeBar,["slideractive","focus"],function(){this.addClass("vjs-slider-active")}),h.on(h.volumeBar,["sliderinactive","blur"],function(){this.removeClass("vjs-slider-active")}),h.on(h.volumeBar,["focus"],function(){this.addClass("vjs-lock-showing")}),h.on(h.volumeBar,["blur"],function(){this.removeClass("vjs-lock-showing")}),h}return g(b,a),b.prototype.buildCSSClass=function(){var b="";return b=this.options_.vertical?"vjs-volume-menu-button-vertical":"vjs-volume-menu-button-horizontal","vjs-volume-menu-button "+a.prototype.buildCSSClass.call(this)+" "+b},b.prototype.createPopup=function(){var a=new m["default"](this.player_,{contentElType:"div"}),b=new s["default"](this.player_,this.options_.volumeBar);return a.addChild(b),this.menuContent=a,this.volumeBar=b,this.attachVolumeBarEvents(),a},b.prototype.handleClick=function(b){q["default"].prototype.handleClick.call(this),a.prototype.handleClick.call(this)},b.prototype.attachVolumeBarEvents=function(){this.menuContent.on(["mousedown","touchdown"],i.bind(this,this.handleMouseDown))},b.prototype.handleMouseDown=function(a){this.on(["mousemove","touchmove"],i.bind(this.volumeBar,this.volumeBar.handleMouseMove)),this.on(this.el_.ownerDocument,["mouseup","touchend"],this.handleMouseUp)},b.prototype.handleMouseUp=function(a){this.off(["mousemove","touchmove"],i.bind(this.volumeBar,this.volumeBar.handleMouseMove))},b}(o["default"]);t.prototype.volumeUpdate=q["default"].prototype.update,t.prototype.controlText_="Mute",k["default"].registerComponent("VolumeMenuButton",t),c["default"]=t},{11:11,37:37,5:5,53:53,54:54,83:83}],41:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=a(50),k=d(j),l=a(87),m=d(l),n=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"error",g.open),g}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-error-display "+a.prototype.buildCSSClass.call(this)},b.prototype.content=function(){var a=this.player().error();return a?this.localize(a.message):""},b}(k["default"]);n.prototype.options_=(0,m["default"])(k["default"].prototype.options_,{pauseOnOpen:!1,fillAlways:!0,temporary:!1,uncloseable:!0}),i["default"].registerComponent("ErrorDisplay",n),c["default"]=n},{5:5,50:50,87:87}],42:[function(a,b,c){"use strict";c.__esModule=!0;var d=a(82),e=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(d),f=function(){};f.prototype.allowedEvents_={},f.prototype.on=function(a,b){var c=this.addEventListener;this.addEventListener=function(){},e.on(this,a,b),this.addEventListener=c},f.prototype.addEventListener=f.prototype.on,f.prototype.off=function(a,b){e.off(this,a,b)},f.prototype.removeEventListener=f.prototype.off,f.prototype.one=function(a,b){var c=this.addEventListener;this.addEventListener=function(){},e.one(this,a,b),this.addEventListener=c},f.prototype.trigger=function(a){var b=a.type||a;"string"==typeof a&&(a={type:b}),a=e.fixEvent(a),this.allowedEvents_[b]&&this["on"+b]&&this["on"+b](a),e.trigger(this,a)},f.prototype.dispatchEvent=f.prototype.trigger,c["default"]=f},{82:82}],43:[function(a,b,c){"use strict";c.__esModule=!0;var d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},e=a(86),f=function(a){return a&&a.__esModule?a:{"default":a}}(e),g=a(88),h=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+(void 0===b?"undefined":d(b)));a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.super_=b)},i=function(a){var b=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},c=function(){a.apply(this,arguments)},d={};(0,g.isObject)(b)?("function"==typeof b.init&&(f["default"].warn("Constructor logic via init() is deprecated; please use constructor() instead."),b.constructor=b.init),b.constructor!==Object.prototype.constructor&&(c=b.constructor),d=b):"function"==typeof b&&(c=b),h(c,a);for(var e in d)d.hasOwnProperty(e)&&(c.prototype[e]=d[e]);return c};c["default"]=i},{86:86,88:88}],44:[function(a,b,c){"use strict";c.__esModule=!0;for(var d=a(94),e=function(a){return a&&a.__esModule?a:{"default":a}}(d),f={},g=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],h=g[0],i=void 0,j=0;j<g.length;j++)if(g[j][1]in e["default"]){i=g[j];break}if(i)for(var k=0;k<i.length;k++)f[h[k]]=i[k];c["default"]=f},{94:94}],45:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g),i=function(a){function b(){return d(this,b),e(this,a.apply(this,arguments))}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-loading-spinner",dir:"ltr"})},b}(h["default"]);h["default"].registerComponent("LoadingSpinner",i),c["default"]=i},{5:5}],46:[function(a,b,c){"use strict";function d(a){if(a instanceof d)return a;"number"==typeof a?this.code=a:"string"==typeof a?this.message=a:(0,e.isObject)(a)&&("number"==typeof a.code&&(this.code=a.code),(0,e.assign)(this,a)),this.message||(this.message=d.defaultMessages[this.code]||"")}c.__esModule=!0;var e=a(88);d.prototype.code=0,d.prototype.message="",d.prototype.status=null,d.errorTypes=["MEDIA_ERR_CUSTOM","MEDIA_ERR_ABORTED","MEDIA_ERR_NETWORK","MEDIA_ERR_DECODE","MEDIA_ERR_SRC_NOT_SUPPORTED","MEDIA_ERR_ENCRYPTED"],d.defaultMessages={1:"You aborted the media playback",2:"A network error caused the media download to fail part-way.",3:"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.",4:"The media could not be loaded, either because the server or network failed or because the format is not supported.",5:"The media is encrypted and we do not have the keys to decrypt it."};for(var f=0;f<d.errorTypes.length;f++)d[d.errorTypes[f]]=f,d.prototype[d.errorTypes[f]]=f;c["default"]=d},{88:88}],47:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(3),j=e(i),k=a(5),l=e(k),m=a(49),n=e(m),o=a(81),p=d(o),q=a(83),r=d(q),s=a(91),t=e(s),u=function(a){function b(c){var d=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};f(this,b);var e=g(this,a.call(this,c,d));return e.update(),e.enabled_=!0,e.el_.setAttribute("aria-haspopup","true"),e.el_.setAttribute("role","menuitem"),e.on("keydown",e.handleSubmenuKeyPress),e}return h(b,a),b.prototype.update=function(){var a=this.createMenu();this.menu&&this.removeChild(this.menu),this.menu=a,this.addChild(a),this.buttonPressed_=!1,this.el_.setAttribute("aria-expanded","false"),this.items&&this.items.length<=this.hideThreshold_?this.hide():this.show()},b.prototype.createMenu=function(){var a=new n["default"](this.player_);if(this.hideThreshold_=0,this.options_.title){var b=p.createEl("li",{className:"vjs-menu-title",innerHTML:(0,t["default"])(this.options_.title),tabIndex:-1});this.hideThreshold_+=1,a.children_.unshift(b),p.insertElFirst(b,a.contentEl())}if(this.items=this.createItems(),this.items)for(var c=0;c<this.items.length;c++)a.addItem(this.items[c]);return a},b.prototype.createItems=function(){},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},b.prototype.buildCSSClass=function(){var b="vjs-menu-button";return!0===this.options_.inline?b+="-inline":b+="-popup","vjs-menu-button "+b+" "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(a){this.one(this.menu.contentEl(),"mouseleave",r.bind(this,function(a){this.unpressButton(),this.el_.blur()})),this.buttonPressed_?this.unpressButton():this.pressButton()},b.prototype.handleKeyPress=function(b){27===b.which||9===b.which?(this.buttonPressed_&&this.unpressButton(),9!==b.which&&b.preventDefault()):38===b.which||40===b.which?this.buttonPressed_||(this.pressButton(),b.preventDefault()):a.prototype.handleKeyPress.call(this,b)},b.prototype.handleSubmenuKeyPress=function(a){27!==a.which&&9!==a.which||(this.buttonPressed_&&this.unpressButton(),9!==a.which&&a.preventDefault())},b.prototype.pressButton=function(){this.enabled_&&(this.buttonPressed_=!0,this.menu.lockShowing(),this.el_.setAttribute("aria-expanded","true"),this.menu.focus())},b.prototype.unpressButton=function(){this.enabled_&&(this.buttonPressed_=!1,this.menu.unlockShowing(),this.el_.setAttribute("aria-expanded","false"),this.el_.focus())},b.prototype.disable=function(){return this.buttonPressed_=!1,this.menu.unlockShowing(),this.el_.setAttribute("aria-expanded","false"),this.enabled_=!1,a.prototype.disable.call(this)},b.prototype.enable=function(){return this.enabled_=!0,a.prototype.enable.call(this)},b}(j["default"]);l["default"].registerComponent("MenuButton",u),c["default"]=u},{3:3,49:49,5:5,81:81,83:83,91:91}],48:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(3),i=d(h),j=a(5),k=d(j),l=a(88),m=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.selectable=d.selectable,g.selected(d.selected),g.selectable?g.el_.setAttribute("role","menuitemcheckbox"):g.el_.setAttribute("role","menuitem"),g}return g(b,a),b.prototype.createEl=function(b,c,d){return this.nonIconControl=!0,a.prototype.createEl.call(this,"li",(0,l.assign)({className:"vjs-menu-item",innerHTML:this.localize(this.options_.label),tabIndex:-1},c),d)},b.prototype.handleClick=function(a){this.selected(!0)},b.prototype.selected=function(a){this.selectable&&(a?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-checked","true"),this.controlText(", selected")):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-checked","false"),this.controlText("")))},b}(i["default"]);k["default"].registerComponent("MenuItem",m),c["default"]=m},{3:3,5:5,88:88}],49:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=function(a){return a&&a.__esModule?a:{"default":a}}(h),j=a(81),k=d(j),l=a(83),m=d(l),n=a(82),o=d(n),p=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.focusedChild_=-1,g.on("keydown",g.handleKeyPress),g}return g(b,a),b.prototype.addItem=function(a){this.addChild(a),a.on("click",m.bind(this,function(a){this.unlockShowing()}))},b.prototype.createEl=function(){var b=this.options_.contentElType||"ul";this.contentEl_=k.createEl(b,{className:"vjs-menu-content"}),this.contentEl_.setAttribute("role","menu");var c=a.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"vjs-menu"});return c.setAttribute("role","presentation"),c.appendChild(this.contentEl_),o.on(c,"click",function(a){a.preventDefault(),a.stopImmediatePropagation()}),c},b.prototype.handleKeyPress=function(a){37===a.which||40===a.which?(a.preventDefault(),this.stepForward()):38!==a.which&&39!==a.which||(a.preventDefault(),this.stepBack())},b.prototype.stepForward=function(){var a=0;this.focusedChild_!==undefined&&(a=this.focusedChild_+1),this.focus(a)},b.prototype.stepBack=function(){var a=0;this.focusedChild_!==undefined&&(a=this.focusedChild_-1),this.focus(a)},b.prototype.focus=function(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0,b=this.children().slice();b.length&&b[0].className&&/vjs-menu-title/.test(b[0].className)&&b.shift(),b.length>0&&(a<0?a=0:a>=b.length&&(a=b.length-1),this.focusedChild_=a,b[a].el_.focus())},b}(i["default"]);i["default"].registerComponent("Menu",p),c["default"]=p},{5:5,81:81,82:82,83:83}],50:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(81),i=d(h),j=a(83),k=d(j),l=a(5),m=function(a){return a&&a.__esModule?a:{"default":a}}(l),n="vjs-modal-dialog",o=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.opened_=g.hasBeenOpened_=g.hasBeenFilled_=!1,g.closeable(!g.options_.uncloseable),g.content(g.options_.content),g.contentEl_=i.createEl("div",{className:n+"-content"},{role:"document"}),g.descEl_=i.createEl("p",{className:n+"-description vjs-offscreen",id:g.el().getAttribute("aria-describedby")}),i.textContent(g.descEl_,g.description()),g.el_.appendChild(g.descEl_),g.el_.appendChild(g.contentEl_),g}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass(),tabIndex:-1},{"aria-describedby":this.id()+"_description","aria-hidden":"true","aria-label":this.label(),role:"dialog"})},b.prototype.buildCSSClass=function(){return n+" vjs-hidden "+a.prototype.buildCSSClass.call(this)},b.prototype.handleKeyPress=function(a){27===a.which&&this.closeable()&&this.close()},b.prototype.label=function(){return this.options_.label||this.localize("Modal Window")},b.prototype.description=function(){var a=this.options_.description||this.localize("This is a modal window.");return this.closeable()&&(a+=" "+this.localize("This modal can be closed by pressing the Escape key or activating the close button.")),a},b.prototype.open=function(){if(!this.opened_){var a=this.player();this.trigger("beforemodalopen"),this.opened_=!0,(this.options_.fillAlways||!this.hasBeenOpened_&&!this.hasBeenFilled_)&&this.fill(),this.wasPlaying_=!a.paused(),this.options_.pauseOnOpen&&this.wasPlaying_&&a.pause(),this.closeable()&&this.on(this.el_.ownerDocument,"keydown",k.bind(this,this.handleKeyPress)),a.controls(!1),this.show(),this.el().setAttribute("aria-hidden","false"),this.trigger("modalopen"),this.hasBeenOpened_=!0}return this},b.prototype.opened=function(a){return"boolean"==typeof a&&this[a?"open":"close"](),this.opened_},b.prototype.close=function(){if(this.opened_){var a=this.player();this.trigger("beforemodalclose"),this.opened_=!1,this.wasPlaying_&&this.options_.pauseOnOpen&&a.play(),this.closeable()&&this.off(this.el_.ownerDocument,"keydown",k.bind(this,this.handleKeyPress)),a.controls(!0),this.hide(),this.el().setAttribute("aria-hidden","true"),this.trigger("modalclose"),this.options_.temporary&&this.dispose()}return this},b.prototype.closeable=function(a){
15
+ if("boolean"==typeof a){var b=this.closeable_=!!a,c=this.getChild("closeButton");if(b&&!c){var d=this.contentEl_;this.contentEl_=this.el_,c=this.addChild("closeButton",{controlText:"Close Modal Dialog"}),this.contentEl_=d,this.on(c,"close",this.close)}!b&&c&&(this.off(c,"close",this.close),this.removeChild(c),c.dispose())}return this.closeable_},b.prototype.fill=function(){return this.fillWith(this.content())},b.prototype.fillWith=function(a){var b=this.contentEl(),c=b.parentNode,d=b.nextSibling;return this.trigger("beforemodalfill"),this.hasBeenFilled_=!0,c.removeChild(b),this.empty(),i.insertContent(b,a),this.trigger("modalfill"),d?c.insertBefore(b,d):c.appendChild(b),this},b.prototype.empty=function(){return this.trigger("beforemodalempty"),i.emptyEl(this.contentEl()),this.trigger("modalempty"),this},b.prototype.content=function(a){return void 0!==a&&(this.content_=a),this.content_},b}(m["default"]);o.prototype.options_={pauseOnOpen:!0,temporary:!0},m["default"].registerComponent("ModalDialog",o),c["default"]=o},{5:5,81:81,83:83}],51:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(5),j=e(i),k=a(94),l=e(k),m=a(95),n=e(m),o=a(82),p=d(o),q=a(81),r=d(q),s=a(83),t=d(s),u=a(85),v=d(u),w=a(78),x=d(w),y=a(86),z=e(y),A=a(91),B=e(A),C=a(90),D=a(79),E=a(89),F=d(E),G=a(44),H=e(G),I=a(46),J=e(I),K=a(97),L=e(K),M=a(88),N=a(87),O=e(N),P=a(69),Q=e(P),R=a(50),S=e(R),T=a(62),U=e(T),V=a(63),W=e(V),X=a(76),Y=e(X);a(61),a(59),a(55),a(68),a(45),a(1),a(4),a(8),a(41),a(71),a(60);var Z=["progress","abort","suspend","emptied","stalled","loadedmetadata","loadeddata","timeupdate","ratechange","volumechange","texttrackchange"],$=function(a){function b(c,d,e){if(f(this,b),c.id=c.id||"vjs_video_"+v.newGUID(),d=(0,M.assign)(b.getTagSettings(c),d),d.initChildren=!1,d.createEl=!1,d.reportTouchActivity=!1,!d.language)if("function"==typeof c.closest){var h=c.closest("[lang]");h&&(d.language=h.getAttribute("lang"))}else for(var i=c;i&&1===i.nodeType;){if(r.getElAttributes(i).hasOwnProperty("lang")){d.language=i.getAttribute("lang");break}i=i.parentNode}var j=g(this,a.call(this,null,d,e));if(!j.options_||!j.options_.techOrder||!j.options_.techOrder.length)throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?");if(j.tag=c,j.tagAttributes=c&&r.getElAttributes(c),j.language(j.options_.language),d.languages){var k={};Object.getOwnPropertyNames(d.languages).forEach(function(a){k[a.toLowerCase()]=d.languages[a]}),j.languages_=k}else j.languages_=b.prototype.options_.languages;j.cache_={},j.poster_=d.poster||"",j.controls_=!!d.controls,c.controls=!1,j.scrubbing_=!1,j.el_=j.createEl();var l=(0,O["default"])(j.options_);if(d.plugins){var m=d.plugins;Object.getOwnPropertyNames(m).forEach(function(a){"function"==typeof this[a]?this[a](m[a]):z["default"].error("Unable to find plugin:",a)},j)}j.options_.playerOptions=l,j.initChildren(),j.isAudio("audio"===c.nodeName.toLowerCase()),j.controls()?j.addClass("vjs-controls-enabled"):j.addClass("vjs-controls-disabled"),j.el_.setAttribute("role","region"),j.isAudio()?j.el_.setAttribute("aria-label","audio player"):j.el_.setAttribute("aria-label","video player"),j.isAudio()&&j.addClass("vjs-audio"),j.flexNotSupported_()&&j.addClass("vjs-no-flex"),x.IS_IOS||j.addClass("vjs-workinghover"),b.players[j.id_]=j;var n="5.20.5".split(".")[0];return j.addClass("vjs-v"+n),j.userActive(!0),j.reportUserActivity(),j.listenForUserActivity_(),j.on("fullscreenchange",j.handleFullscreenChange_),j.on("stageclick",j.handleStageClick_),j}return h(b,a),b.prototype.dispose=function(){this.trigger("dispose"),this.off("dispose"),this.styleEl_&&this.styleEl_.parentNode&&this.styleEl_.parentNode.removeChild(this.styleEl_),b.players[this.id_]=null,this.tag&&this.tag.player&&(this.tag.player=null),this.el_&&this.el_.player&&(this.el_.player=null),this.tech_&&this.tech_.dispose(),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var b=this.tag,c=void 0,d=this.playerElIngest_=b.parentNode&&b.parentNode.hasAttribute&&b.parentNode.hasAttribute("data-vjs-player");c=this.el_=d?b.parentNode:a.prototype.createEl.call(this,"div"),b.setAttribute("tabindex","-1"),b.removeAttribute("width"),b.removeAttribute("height");var e=r.getElAttributes(b);if(Object.getOwnPropertyNames(e).forEach(function(a){"class"===a?c.className+=" "+e[a]:c.setAttribute(a,e[a])}),b.playerId=b.id,b.id+="_html5_api",b.className="vjs-tech",b.player=c.player=this,this.addClass("vjs-paused"),!0!==n["default"].VIDEOJS_NO_DYNAMIC_STYLE){this.styleEl_=F.createStyleElement("vjs-styles-dimensions");var f=r.$(".vjs-styles-defaults"),g=r.$("head");g.insertBefore(this.styleEl_,f?f.nextSibling:g.firstChild)}this.width(this.options_.width),this.height(this.options_.height),this.fluid(this.options_.fluid),this.aspectRatio(this.options_.aspectRatio);for(var h=b.getElementsByTagName("a"),i=0;i<h.length;i++){var j=h.item(i);r.addElClass(j,"vjs-hidden"),j.setAttribute("hidden","hidden")}return b.initNetworkState_=b.networkState,b.parentNode&&!d&&b.parentNode.insertBefore(c,b),r.insertElFirst(b,c),this.children_.unshift(b),this.el_=c,c},b.prototype.width=function(a){return this.dimension("width",a)},b.prototype.height=function(a){return this.dimension("height",a)},b.prototype.dimension=function(a,b){var c=a+"_";if(b===undefined)return this[c]||0;if(""===b)this[c]=undefined;else{var d=parseFloat(b);if(isNaN(d))return z["default"].error('Improper value "'+b+'" supplied for for '+a),this;this[c]=d}return this.updateStyleEl_(),this},b.prototype.fluid=function(a){if(a===undefined)return!!this.fluid_;this.fluid_=!!a,a?this.addClass("vjs-fluid"):this.removeClass("vjs-fluid"),this.updateStyleEl_()},b.prototype.aspectRatio=function(a){if(a===undefined)return this.aspectRatio_;if(!/^\d+\:\d+$/.test(a))throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.");this.aspectRatio_=a,this.fluid(!0),this.updateStyleEl_()},b.prototype.updateStyleEl_=function(){if(!0===n["default"].VIDEOJS_NO_DYNAMIC_STYLE){var a="number"==typeof this.width_?this.width_:this.options_.width,b="number"==typeof this.height_?this.height_:this.options_.height,c=this.tech_&&this.tech_.el();return void(c&&(a>=0&&(c.width=a),b>=0&&(c.height=b)))}var d=void 0,e=void 0,f=void 0,g=void 0;f=this.aspectRatio_!==undefined&&"auto"!==this.aspectRatio_?this.aspectRatio_:this.videoWidth()>0?this.videoWidth()+":"+this.videoHeight():"16:9";var h=f.split(":"),i=h[1]/h[0];d=this.width_!==undefined?this.width_:this.height_!==undefined?this.height_/i:this.videoWidth()||300,e=this.height_!==undefined?this.height_:d*i,g=/^[^a-zA-Z]/.test(this.id())?"dimensions-"+this.id():this.id()+"-dimensions",this.addClass(g),F.setTextContent(this.styleEl_,"\n ."+g+" {\n width: "+d+"px;\n height: "+e+"px;\n }\n\n ."+g+".vjs-fluid {\n padding-top: "+100*i+"%;\n }\n ")},b.prototype.loadTech_=function(a,b){var c=this;this.tech_&&this.unloadTech_(),"Html5"!==a&&this.tag&&(U["default"].getTech("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName_=a,this.isReady_=!1;var d=(0,M.assign)({source:b,nativeControlsForTouch:this.options_.nativeControlsForTouch,playerId:this.id(),techId:this.id()+"_"+a+"_api",videoTracks:this.videoTracks_,textTracks:this.textTracks_,audioTracks:this.audioTracks_,autoplay:this.options_.autoplay,playsinline:this.options_.playsinline,preload:this.options_.preload,loop:this.options_.loop,muted:this.options_.muted,poster:this.poster(),language:this.language(),playerElIngest:this.playerElIngest_||!1,"vtt.js":this.options_["vtt.js"]},this.options_[a.toLowerCase()]);this.tag&&(d.tag=this.tag),b&&(this.currentType_=b.type,b.src===this.cache_.src&&this.cache_.currentTime>0&&(d.startTime=this.cache_.currentTime),this.cache_.sources=null,this.cache_.source=b,this.cache_.src=b.src);var e=U["default"].getTech(a);e||(e=j["default"].getComponent(a)),this.tech_=new e(d),this.tech_.ready(t.bind(this,this.handleTechReady_),!0),Q["default"].jsonToTextTracks(this.textTracksJson_||[],this.tech_),Z.forEach(function(a){c.on(c.tech_,a,c["handleTech"+(0,B["default"])(a)+"_"])}),this.on(this.tech_,"loadstart",this.handleTechLoadStart_),this.on(this.tech_,"waiting",this.handleTechWaiting_),this.on(this.tech_,"canplay",this.handleTechCanPlay_),this.on(this.tech_,"canplaythrough",this.handleTechCanPlayThrough_),this.on(this.tech_,"playing",this.handleTechPlaying_),this.on(this.tech_,"ended",this.handleTechEnded_),this.on(this.tech_,"seeking",this.handleTechSeeking_),this.on(this.tech_,"seeked",this.handleTechSeeked_),this.on(this.tech_,"play",this.handleTechPlay_),this.on(this.tech_,"firstplay",this.handleTechFirstPlay_),this.on(this.tech_,"pause",this.handleTechPause_),this.on(this.tech_,"durationchange",this.handleTechDurationChange_),this.on(this.tech_,"fullscreenchange",this.handleTechFullscreenChange_),this.on(this.tech_,"error",this.handleTechError_),this.on(this.tech_,"loadedmetadata",this.updateStyleEl_),this.on(this.tech_,"posterchange",this.handleTechPosterChange_),this.on(this.tech_,"textdata",this.handleTechTextData_),this.usingNativeControls(this.techGet_("controls")),this.controls()&&!this.usingNativeControls()&&this.addTechControlsListeners_(),this.tech_.el().parentNode===this.el()||"Html5"===a&&this.tag||r.insertElFirst(this.tech_.el(),this.el()),this.tag&&(this.tag.player=null,this.tag=null)},b.prototype.unloadTech_=function(){this.videoTracks_=this.videoTracks(),this.textTracks_=this.textTracks(),this.audioTracks_=this.audioTracks(),this.textTracksJson_=Q["default"].textTracksToJson(this.tech_),this.isReady_=!1,this.tech_.dispose(),this.tech_=!1},b.prototype.tech=function(a){if(a&&a.IWillNotUseThisInPlugins)return this.tech_;var b="\n Please make sure that you are not using this inside of a plugin.\n To disable this alert and error, please pass in an object with\n `IWillNotUseThisInPlugins` to the `tech` method. See\n https://github.com/videojs/video.js/issues/2617 for more info.\n ";throw n["default"].alert(b),new Error(b)},b.prototype.addTechControlsListeners_=function(){this.removeTechControlsListeners_(),this.on(this.tech_,"mousedown",this.handleTechClick_),this.on(this.tech_,"touchstart",this.handleTechTouchStart_),this.on(this.tech_,"touchmove",this.handleTechTouchMove_),this.on(this.tech_,"touchend",this.handleTechTouchEnd_),this.on(this.tech_,"tap",this.handleTechTap_)},b.prototype.removeTechControlsListeners_=function(){this.off(this.tech_,"tap",this.handleTechTap_),this.off(this.tech_,"touchstart",this.handleTechTouchStart_),this.off(this.tech_,"touchmove",this.handleTechTouchMove_),this.off(this.tech_,"touchend",this.handleTechTouchEnd_),this.off(this.tech_,"mousedown",this.handleTechClick_)},b.prototype.handleTechReady_=function(){if(this.triggerReady(),this.cache_.volume&&this.techCall_("setVolume",this.cache_.volume),this.handleTechPosterChange_(),this.handleTechDurationChange_(),(this.src()||this.currentSrc())&&this.tag&&this.options_.autoplay&&this.paused()){try{delete this.tag.poster}catch(a){(0,z["default"])("deleting tag.poster throws in some browsers",a)}this.play()}},b.prototype.handleTechLoadStart_=function(){this.removeClass("vjs-ended"),this.removeClass("vjs-seeking"),this.error(null),this.paused()?(this.hasStarted(!1),this.trigger("loadstart")):(this.trigger("loadstart"),this.trigger("firstplay"))},b.prototype.hasStarted=function(a){return a!==undefined?(this.hasStarted_!==a&&(this.hasStarted_=a,a?(this.addClass("vjs-has-started"),this.trigger("firstplay")):this.removeClass("vjs-has-started")),this):!!this.hasStarted_},b.prototype.handleTechPlay_=function(){this.removeClass("vjs-ended"),this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.hasStarted(!0),this.trigger("play")},b.prototype.handleTechWaiting_=function(){var a=this;this.addClass("vjs-waiting"),this.trigger("waiting"),this.one("timeupdate",function(){return a.removeClass("vjs-waiting")})},b.prototype.handleTechCanPlay_=function(){this.removeClass("vjs-waiting"),this.trigger("canplay")},b.prototype.handleTechCanPlayThrough_=function(){this.removeClass("vjs-waiting"),this.trigger("canplaythrough")},b.prototype.handleTechPlaying_=function(){this.removeClass("vjs-waiting"),this.trigger("playing")},b.prototype.handleTechSeeking_=function(){this.addClass("vjs-seeking"),this.trigger("seeking")},b.prototype.handleTechSeeked_=function(){this.removeClass("vjs-seeking"),this.trigger("seeked")},b.prototype.handleTechFirstPlay_=function(){this.options_.starttime&&(z["default"].warn("Passing the `starttime` option to the player will be deprecated in 6.0"),this.currentTime(this.options_.starttime)),this.addClass("vjs-has-started"),this.trigger("firstplay")},b.prototype.handleTechPause_=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.trigger("pause")},b.prototype.handleTechEnded_=function(){this.addClass("vjs-ended"),this.options_.loop?(this.currentTime(0),this.play()):this.paused()||this.pause(),this.trigger("ended")},b.prototype.handleTechDurationChange_=function(){this.duration(this.techGet_("duration"))},b.prototype.handleTechClick_=function(a){0===a.button&&this.controls()&&(this.paused()?this.play():this.pause())},b.prototype.handleTechTap_=function(){this.userActive(!this.userActive())},b.prototype.handleTechTouchStart_=function(){this.userWasActive=this.userActive()},b.prototype.handleTechTouchMove_=function(){this.userWasActive&&this.reportUserActivity()},b.prototype.handleTechTouchEnd_=function(a){a.preventDefault()},b.prototype.handleFullscreenChange_=function(){this.isFullscreen()?this.addClass("vjs-fullscreen"):this.removeClass("vjs-fullscreen")},b.prototype.handleStageClick_=function(){this.reportUserActivity()},b.prototype.handleTechFullscreenChange_=function(a,b){b&&this.isFullscreen(b.isFullscreen),this.trigger("fullscreenchange")},b.prototype.handleTechError_=function(){var a=this.tech_.error();this.error(a)},b.prototype.handleTechTextData_=function(){var a=null;arguments.length>1&&(a=arguments[1]),this.trigger("textdata",a)},b.prototype.getCache=function(){return this.cache_},b.prototype.techCall_=function(a,b){if(this.tech_&&!this.tech_.isReady_)this.tech_.ready(function(){this[a](b)},!0);else try{this.tech_&&this.tech_[a](b)}catch(c){throw(0,z["default"])(c),c}},b.prototype.techGet_=function(a){if(this.tech_&&this.tech_.isReady_)try{return this.tech_[a]()}catch(b){throw this.tech_[a]===undefined?(0,z["default"])("Video.js: "+a+" method not defined for "+this.techName_+" playback technology.",b):"TypeError"===b.name?((0,z["default"])("Video.js: "+a+" unavailable on "+this.techName_+" playback technology element.",b),this.tech_.isReady_=!1):(0,z["default"])(b),b}},b.prototype.play=function(){return this.src()||this.currentSrc()?this.techCall_("play"):this.tech_.one("loadstart",function(){this.play()}),this},b.prototype.pause=function(){return this.techCall_("pause"),this},b.prototype.paused=function(){return!1!==this.techGet_("paused")},b.prototype.scrubbing=function(a){return a!==undefined?(this.scrubbing_=!!a,a?this.addClass("vjs-scrubbing"):this.removeClass("vjs-scrubbing"),this):this.scrubbing_},b.prototype.currentTime=function(a){return a!==undefined?(this.techCall_("setCurrentTime",a),this):(this.cache_.currentTime=this.techGet_("currentTime")||0,this.cache_.currentTime)},b.prototype.duration=function(a){return a===undefined?this.cache_.duration!==undefined?this.cache_.duration:NaN:(a=parseFloat(a),a<0&&(a=Infinity),a!==this.cache_.duration&&(this.cache_.duration=a,a===Infinity?this.addClass("vjs-live"):this.removeClass("vjs-live"),this.trigger("durationchange")),this)},b.prototype.remainingTime=function(){return this.duration()-this.currentTime()},b.prototype.buffered=function(){var a=this.techGet_("buffered");return a&&a.length||(a=(0,C.createTimeRange)(0,0)),a},b.prototype.bufferedPercent=function(){return(0,D.bufferedPercent)(this.buffered(),this.duration())},b.prototype.bufferedEnd=function(){var a=this.buffered(),b=this.duration(),c=a.end(a.length-1);return c>b&&(c=b),c},b.prototype.volume=function(a){var b=void 0;return a!==undefined?(b=Math.max(0,Math.min(1,parseFloat(a))),this.cache_.volume=b,this.techCall_("setVolume",b),this):(b=parseFloat(this.techGet_("volume")),isNaN(b)?1:b)},b.prototype.muted=function(a){return a!==undefined?(this.techCall_("setMuted",a),this):this.techGet_("muted")||!1},b.prototype.supportsFullScreen=function(){return this.techGet_("supportsFullScreen")||!1},b.prototype.isFullscreen=function(a){return a!==undefined?(this.isFullscreen_=!!a,this):!!this.isFullscreen_},b.prototype.requestFullscreen=function(){var a=H["default"];return this.isFullscreen(!0),a.requestFullscreen?(p.on(l["default"],a.fullscreenchange,t.bind(this,function b(c){this.isFullscreen(l["default"][a.fullscreenElement]),!1===this.isFullscreen()&&p.off(l["default"],a.fullscreenchange,b),this.trigger("fullscreenchange")})),this.el_[a.requestFullscreen]()):this.tech_.supportsFullScreen()?this.techCall_("enterFullScreen"):(this.enterFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.exitFullscreen=function(){var a=H["default"];return this.isFullscreen(!1),a.requestFullscreen?l["default"][a.exitFullscreen]():this.tech_.supportsFullScreen()?this.techCall_("exitFullScreen"):(this.exitFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.enterFullWindow=function(){this.isFullWindow=!0,this.docOrigOverflow=l["default"].documentElement.style.overflow,p.on(l["default"],"keydown",t.bind(this,this.fullWindowOnEscKey)),l["default"].documentElement.style.overflow="hidden",r.addElClass(l["default"].body,"vjs-full-window"),this.trigger("enterFullWindow")},b.prototype.fullWindowOnEscKey=function(a){27===a.keyCode&&(!0===this.isFullscreen()?this.exitFullscreen():this.exitFullWindow())},b.prototype.exitFullWindow=function(){this.isFullWindow=!1,p.off(l["default"],"keydown",this.fullWindowOnEscKey),l["default"].documentElement.style.overflow=this.docOrigOverflow,r.removeElClass(l["default"].body,"vjs-full-window"),this.trigger("exitFullWindow")},b.prototype.canPlayType=function(a){for(var b=void 0,c=0,d=this.options_.techOrder;c<d.length;c++){var e=(0,B["default"])(d[c]),f=U["default"].getTech(e);if(f||(f=j["default"].getComponent(e)),f){if(f.isSupported()&&(b=f.canPlayType(a)))return b}else z["default"].error('The "'+e+'" tech is undefined. Skipped browser support check for that tech.')}return""},b.prototype.selectSource=function(a){var b=this,c=this.options_.techOrder.map(B["default"]).map(function(a){return[a,U["default"].getTech(a)||j["default"].getComponent(a)]}).filter(function(a){var b=a[0],c=a[1];return c?c.isSupported():(z["default"].error('The "'+b+'" tech is undefined. Skipped browser support check for that tech.'),!1)}),d=function(a,b,c){var d=void 0;return a.some(function(a){return b.some(function(b){if(d=c(a,b))return!0})}),d},e=function(a,c){var d=a[0];if(a[1].canPlaySource(c,b.options_[d.toLowerCase()]))return{source:c,tech:d}};return(this.options_.sourceOrder?d(a,c,function(a){return function(b,c){return a(c,b)}}(e)):d(c,a,e))||!1},b.prototype.src=function(a){if(a===undefined)return this.techGet_("src");var b=U["default"].getTech(this.techName_);return b||(b=j["default"].getComponent(this.techName_)),Array.isArray(a)?this.sourceList_(a):"string"==typeof a?this.src({src:a}):a instanceof Object&&(a.type&&!b.canPlaySource(a,this.options_[this.techName_.toLowerCase()])?this.sourceList_([a]):(this.cache_.sources=null,this.cache_.source=a,this.cache_.src=a.src,this.currentType_=a.type||"",this.ready(function(){b.prototype.hasOwnProperty("setSource")?this.techCall_("setSource",a):this.techCall_("src",a.src),"auto"===this.options_.preload&&this.load(),this.options_.autoplay&&this.play()},!0))),this},b.prototype.sourceList_=function(a){var b=this.selectSource(a);b?(b.tech===this.techName_?this.src(b.source):this.loadTech_(b.tech,b.source),this.cache_.sources=a):(this.setTimeout(function(){this.error({code:4,message:this.localize(this.options_.notSupportedMessage)})},0),this.triggerReady())},b.prototype.load=function(){return this.techCall_("load"),this},b.prototype.reset=function(){return this.loadTech_((0,B["default"])(this.options_.techOrder[0]),null),this.techCall_("reset"),this},b.prototype.currentSources=function(){var a=this.currentSource(),b=[];return 0!==Object.keys(a).length&&b.push(a),this.cache_.sources||b},b.prototype.currentSource=function(){var a={},b=this.currentSrc();return b&&(a.src=b),this.cache_.source||a},b.prototype.currentSrc=function(){return this.techGet_("currentSrc")||this.cache_.src||""},b.prototype.currentType=function(){return this.currentType_||""},b.prototype.preload=function(a){return a!==undefined?(this.techCall_("setPreload",a),this.options_.preload=a,this):this.techGet_("preload")},b.prototype.autoplay=function(a){return a!==undefined?(this.techCall_("setAutoplay",a),this.options_.autoplay=a,this):this.techGet_("autoplay",a)},b.prototype.playsinline=function(a){return a!==undefined?(this.techCall_("setPlaysinline",a),this.options_.playsinline=a,this):this.techGet_("playsinline")},b.prototype.loop=function(a){return a!==undefined?(this.techCall_("setLoop",a),this.options_.loop=a,this):this.techGet_("loop")},b.prototype.poster=function(a){return a===undefined?this.poster_:(a||(a=""),this.poster_=a,this.techCall_("setPoster",a),this.trigger("posterchange"),this)},b.prototype.handleTechPosterChange_=function(){!this.poster_&&this.tech_&&this.tech_.poster&&(this.poster_=this.tech_.poster()||"",this.trigger("posterchange"))},b.prototype.controls=function(a){return a!==undefined?(a=!!a,this.controls_!==a&&(this.controls_=a,this.usingNativeControls()&&this.techCall_("setControls",a),a?(this.removeClass("vjs-controls-disabled"),this.addClass("vjs-controls-enabled"),this.trigger("controlsenabled"),this.usingNativeControls()||this.addTechControlsListeners_()):(this.removeClass("vjs-controls-enabled"),this.addClass("vjs-controls-disabled"),this.trigger("controlsdisabled"),this.usingNativeControls()||this.removeTechControlsListeners_())),this):!!this.controls_},b.prototype.usingNativeControls=function(a){return a!==undefined?(a=!!a,this.usingNativeControls_!==a&&(this.usingNativeControls_=a,a?(this.addClass("vjs-using-native-controls"),this.trigger("usingnativecontrols")):(this.removeClass("vjs-using-native-controls"),this.trigger("usingcustomcontrols"))),this):!!this.usingNativeControls_},b.prototype.error=function(a){return a===undefined?this.error_||null:null===a?(this.error_=a,this.removeClass("vjs-error"),this.errorDisplay&&this.errorDisplay.close(),this):(this.error_=new J["default"](a),this.addClass("vjs-error"),z["default"].error("(CODE:"+this.error_.code+" "+J["default"].errorTypes[this.error_.code]+")",this.error_.message,this.error_),this.trigger("error"),this)},b.prototype.reportUserActivity=function(a){this.userActivity_=!0},b.prototype.userActive=function(a){return a!==undefined?(a=!!a,a!==this.userActive_&&(this.userActive_=a,a?(this.userActivity_=!0,this.removeClass("vjs-user-inactive"),this.addClass("vjs-user-active"),this.trigger("useractive")):(this.userActivity_=!1,this.tech_&&this.tech_.one("mousemove",function(a){a.stopPropagation(),a.preventDefault()}),this.removeClass("vjs-user-active"),this.addClass("vjs-user-inactive"),this.trigger("userinactive"))),this):this.userActive_},b.prototype.listenForUserActivity_=function(){var a=void 0,b=void 0,c=void 0,d=t.bind(this,this.reportUserActivity),e=function(a){a.screenX===b&&a.screenY===c||(b=a.screenX,c=a.screenY,d())},f=function(){d(),this.clearInterval(a),a=this.setInterval(d,250)},g=function(b){d(),this.clearInterval(a)};this.on("mousedown",f),this.on("mousemove",e),this.on("mouseup",g),this.on("keydown",d),this.on("keyup",d);var h=void 0;this.setInterval(function(){if(this.userActivity_){this.userActivity_=!1,this.userActive(!0),this.clearTimeout(h);var a=this.options_.inactivityTimeout;a>0&&(h=this.setTimeout(function(){this.userActivity_||this.userActive(!1)},a))}},250)},b.prototype.playbackRate=function(a){return a!==undefined?(this.techCall_("setPlaybackRate",a),this):this.tech_&&this.tech_.featuresPlaybackRate?this.techGet_("playbackRate"):1},b.prototype.isAudio=function(a){return a!==undefined?(this.isAudio_=!!a,this):!!this.isAudio_},b.prototype.videoTracks=function(){return this.tech_?this.tech_.videoTracks():(this.videoTracks_=this.videoTracks_||new Y["default"],this.videoTracks_)},b.prototype.audioTracks=function(){return this.tech_?this.tech_.audioTracks():(this.audioTracks_=this.audioTracks_||new W["default"],this.audioTracks_)},b.prototype.textTracks=function(){if(this.tech_)return this.tech_.textTracks()},b.prototype.remoteTextTracks=function(){if(this.tech_)return this.tech_.remoteTextTracks()},b.prototype.remoteTextTrackEls=function(){if(this.tech_)return this.tech_.remoteTextTrackEls()},b.prototype.addTextTrack=function(a,b,c){if(this.tech_)return this.tech_.addTextTrack(a,b,c)},b.prototype.addRemoteTextTrack=function(a,b){if(this.tech_)return this.tech_.addRemoteTextTrack(a,b)},b.prototype.removeRemoteTextTrack=function(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},b=a.track,c=b===undefined?arguments[0]:b;if(this.tech_)return this.tech_.removeRemoteTextTrack(c)},b.prototype.getVideoPlaybackQuality=function(){return this.techGet_("getVideoPlaybackQuality")},b.prototype.videoWidth=function(){return this.tech_&&this.tech_.videoWidth&&this.tech_.videoWidth()||0},b.prototype.videoHeight=function(){return this.tech_&&this.tech_.videoHeight&&this.tech_.videoHeight()||0},b.prototype.language=function(a){return a===undefined?this.language_:(this.language_=String(a).toLowerCase(),this)},b.prototype.languages=function(){return(0,O["default"])(b.prototype.options_.languages,this.languages_)},b.prototype.toJSON=function(){var a=(0,O["default"])(this.options_),b=a.tracks;a.tracks=[];for(var c=0;c<b.length;c++){var d=b[c];d=(0,O["default"])(d),d.player=undefined,a.tracks[c]=d}return a},b.prototype.createModal=function(a,b){var c=this;b=b||{},b.content=a||"";var d=new S["default"](this,b);return this.addChild(d),d.on("dispose",function(){c.removeChild(d)}),d.open()},b.getTagSettings=function(a){var b={sources:[],tracks:[]},c=r.getElAttributes(a),d=c["data-setup"];if(r.hasElClass(a,"vjs-fluid")&&(c.fluid=!0),null!==d){var e=(0,L["default"])(d||"{}"),f=e[0],g=e[1];f&&z["default"].error(f),(0,M.assign)(c,g)}if((0,M.assign)(b,c),a.hasChildNodes())for(var h=a.childNodes,i=0,j=h.length;i<j;i++){var k=h[i],l=k.nodeName.toLowerCase();"source"===l?b.sources.push(r.getElAttributes(k)):"track"===l&&b.tracks.push(r.getElAttributes(k))}return b},b.prototype.flexNotSupported_=function(){var a=l["default"].createElement("i");return!("flexBasis"in a.style||"webkitFlexBasis"in a.style||"mozFlexBasis"in a.style||"msFlexBasis"in a.style||"msFlexOrder"in a.style)},b}(j["default"]);$.players={};var _=n["default"].navigator;$.prototype.options_={techOrder:["html5","flash"],html5:{},flash:{},defaultVolume:0,inactivityTimeout:2e3,playbackRates:[],children:["mediaLoader","posterImage","textTrackDisplay","loadingSpinner","bigPlayButton","controlBar","errorDisplay","textTrackSettings"],language:_&&(_.languages&&_.languages[0]||_.userLanguage||_.language)||"en",languages:{},notSupportedMessage:"No compatible source was found for this media."},["ended","seeking","seekable","networkState","readyState"].forEach(function(a){$.prototype[a]=function(){return this.techGet_(a)}}),Z.forEach(function(a){$.prototype["handleTech"+(0,B["default"])(a)+"_"]=function(){return this.trigger(a)}}),j["default"].registerComponent("Player",$),c["default"]=$},{1:1,4:4,41:41,44:44,45:45,46:46,5:5,50:50,55:55,59:59,60:60,61:61,62:62,63:63,68:68,69:69,71:71,76:76,78:78,79:79,8:8,81:81,82:82,83:83,85:85,86:86,87:87,88:88,89:89,90:90,91:91,94:94,95:95,97:97}],52:[function(a,b,c){"use strict";c.__esModule=!0;var d=a(51),e=function(a){return a&&a.__esModule?a:{"default":a}}(d),f=function(a,b){e["default"].prototype[a]=b};c["default"]=f},{51:51}],53:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(3),i=d(h),j=a(5),k=d(j),l=function(a){function b(c){var d=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};e(this,b);var g=f(this,a.call(this,c,d));return g.update(),g}return g(b,a),b.prototype.update=function(){var a=this.createPopup();this.popup&&this.removeChild(this.popup),this.popup=a,this.addChild(a),this.items&&0===this.items.length?this.hide():this.items&&this.items.length>1&&this.show()},b.prototype.createPopup=function(){},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},b.prototype.buildCSSClass=function(){var b="vjs-menu-button";return!0===this.options_.inline?b+="-inline":b+="-popup","vjs-menu-button "+b+" "+a.prototype.buildCSSClass.call(this)},b}(i["default"]);k["default"].registerComponent("PopupButton",l),c["default"]=l},{3:3,5:5}],54:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=function(a){return a&&a.__esModule?a:{"default":a}}(h),j=a(81),k=d(j),l=a(83),m=d(l),n=a(82),o=d(n),p=function(a){function b(){return e(this,b),f(this,a.apply(this,arguments))}return g(b,a),b.prototype.addItem=function(a){this.addChild(a),a.on("click",m.bind(this,function(){this.unlockShowing()}))},b.prototype.createEl=function(){var b=this.options_.contentElType||"ul";this.contentEl_=k.createEl(b,{className:"vjs-menu-content"});var c=a.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"vjs-menu"});return c.appendChild(this.contentEl_),o.on(c,"click",function(a){a.preventDefault(),a.stopImmediatePropagation()}),c},b}(i["default"]);i["default"].registerComponent("Popup",p),c["default"]=p},{5:5,81:81,82:82,83:83}],55:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a
16
+ ;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(3),j=e(i),k=a(5),l=e(k),m=a(83),n=d(m),o=a(81),p=d(o),q=a(78),r=d(q),s=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.update(),c.on("posterchange",n.bind(e,e.update)),e}return h(b,a),b.prototype.dispose=function(){this.player().off("posterchange",this.update),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var a=p.createEl("div",{className:"vjs-poster",tabIndex:-1});return r.BACKGROUND_SIZE_SUPPORTED||(this.fallbackImg_=p.createEl("img"),a.appendChild(this.fallbackImg_)),a},b.prototype.update=function(a){var b=this.player().poster();this.setSrc(b),b?this.show():this.hide()},b.prototype.setSrc=function(a){if(this.fallbackImg_)this.fallbackImg_.src=a;else{var b="";a&&(b='url("'+a+'")'),this.el_.style.backgroundImage=b}},b.prototype.handleClick=function(a){this.player_.controls()&&(this.player_.paused()?this.player_.play():this.player_.pause())},b}(j["default"]);l["default"].registerComponent("PosterImage",s),c["default"]=s},{3:3,5:5,78:78,81:81,83:83}],56:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b){b&&(p=b),n["default"].setTimeout(q,a)}c.__esModule=!0,c.hasLoaded=c.autoSetupTimeout=c.autoSetup=undefined;var g=a(81),h=e(g),i=a(82),j=e(i),k=a(94),l=d(k),m=a(95),n=d(m),o=!1,p=void 0,q=function(){if(h.isReal()){var a=l["default"].getElementsByTagName("video"),b=l["default"].getElementsByTagName("audio"),c=[];if(a&&a.length>0)for(var d=0,e=a.length;d<e;d++)c.push(a[d]);if(b&&b.length>0)for(var g=0,i=b.length;g<i;g++)c.push(b[g]);if(c&&c.length>0)for(var j=0,k=c.length;j<k;j++){var m=c[j];if(!m||!m.getAttribute){f(1);break}if(m.player===undefined){var n=m.getAttribute("data-setup");null!==n&&p(m)}}else o||f(1)}};h.isReal()&&"complete"===l["default"].readyState?o=!0:j.one(n["default"],"load",function(){o=!0});var r=function(){return o};c.autoSetup=q,c.autoSetupTimeout=f,c.hasLoaded=r},{81:81,82:82,94:94,95:95}],57:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a(5),h=function(a){return a&&a.__esModule?a:{"default":a}}(g),i=a(81),j=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(i),k=a(88),l=function(a){function b(c,f){d(this,b);var g=e(this,a.call(this,c,f));return g.bar=g.getChild(g.options_.barName),g.vertical(!!g.options_.vertical),g.on("mousedown",g.handleMouseDown),g.on("touchstart",g.handleMouseDown),g.on("focus",g.handleFocus),g.on("blur",g.handleBlur),g.on("click",g.handleClick),g.on(c,"controlsvisible",g.update),g.on(c,g.playerEvent,g.update),g}return f(b,a),b.prototype.createEl=function(b){var c=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},d=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};return c.className=c.className+" vjs-slider",c=(0,k.assign)({tabIndex:0},c),d=(0,k.assign)({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},d),a.prototype.createEl.call(this,b,c,d)},b.prototype.handleMouseDown=function(a){var b=this.bar.el_.ownerDocument;a.preventDefault(),j.blockTextSelection(),this.addClass("vjs-sliding"),this.trigger("slideractive"),this.on(b,"mousemove",this.handleMouseMove),this.on(b,"mouseup",this.handleMouseUp),this.on(b,"touchmove",this.handleMouseMove),this.on(b,"touchend",this.handleMouseUp),this.handleMouseMove(a)},b.prototype.handleMouseMove=function(a){},b.prototype.handleMouseUp=function(){var a=this.bar.el_.ownerDocument;j.unblockTextSelection(),this.removeClass("vjs-sliding"),this.trigger("sliderinactive"),this.off(a,"mousemove",this.handleMouseMove),this.off(a,"mouseup",this.handleMouseUp),this.off(a,"touchmove",this.handleMouseMove),this.off(a,"touchend",this.handleMouseUp),this.update()},b.prototype.update=function(){if(this.el_){var a=this.getPercent(),b=this.bar;if(b){("number"!=typeof a||a!==a||a<0||a===Infinity)&&(a=0);var c=(100*a).toFixed(2)+"%";this.vertical()?b.el().style.height=c:b.el().style.width=c}}},b.prototype.calculateDistance=function(a){var b=j.getPointerPosition(this.el_,a);return this.vertical()?b.y:b.x},b.prototype.handleFocus=function(){this.on(this.bar.el_.ownerDocument,"keydown",this.handleKeyPress)},b.prototype.handleKeyPress=function(a){37===a.which||40===a.which?(a.preventDefault(),this.stepBack()):38!==a.which&&39!==a.which||(a.preventDefault(),this.stepForward())},b.prototype.handleBlur=function(){this.off(this.bar.el_.ownerDocument,"keydown",this.handleKeyPress)},b.prototype.handleClick=function(a){a.stopImmediatePropagation(),a.preventDefault()},b.prototype.vertical=function(a){return a===undefined?this.vertical_||!1:(this.vertical_=!!a,this.vertical_?this.addClass("vjs-slider-vertical"):this.addClass("vjs-slider-horizontal"),this)},b}(h["default"]);h["default"].registerComponent("Slider",l),c["default"]=l},{5:5,81:81,88:88}],58:[function(a,b,c){"use strict";function d(a){return a.streamingFormats={"rtmp/mp4":"MP4","rtmp/flv":"FLV"},a.streamFromParts=function(a,b){return a+"&"+b},a.streamToParts=function(a){var b={connection:"",stream:""};if(!a)return b;var c=a.search(/&(?!\w+=)/),d=void 0;return-1!==c?d=c+1:0===(c=d=a.lastIndexOf("/")+1)&&(c=d=a.length),b.connection=a.substring(0,c),b.stream=a.substring(d,a.length),b},a.isStreamingType=function(b){return b in a.streamingFormats},a.RTMP_RE=/^rtmp[set]?:\/\//i,a.isStreamingSrc=function(b){return a.RTMP_RE.test(b)},a.rtmpSourceHandler={},a.rtmpSourceHandler.canPlayType=function(b){return a.isStreamingType(b)?"maybe":""},a.rtmpSourceHandler.canHandleSource=function(b,c){var d=a.rtmpSourceHandler.canPlayType(b.type);return d||(a.isStreamingSrc(b.src)?"maybe":"")},a.rtmpSourceHandler.handleSource=function(b,c,d){var e=a.streamToParts(b.src);c.setRtmpConnection(e.connection),c.setRtmpStream(e.stream)},a.registerSourceHandler(a.rtmpSourceHandler),a}c.__esModule=!0,c["default"]=d},{}],59:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function i(a){z[a]=function(){return this.el_.vjs_getProperty(a)}}c.__esModule=!0;for(var j=a(62),k=e(j),l=a(81),m=d(l),n=a(92),o=d(n),p=a(90),q=a(58),r=e(q),s=a(5),t=e(s),u=a(95),v=e(u),w=a(88),x=v["default"].navigator,y=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return c.source&&e.ready(function(){this.setSource(c.source)},!0),c.startTime&&e.ready(function(){this.load(),this.play(),this.currentTime(c.startTime)},!0),v["default"].videojs=v["default"].videojs||{},v["default"].videojs.Flash=v["default"].videojs.Flash||{},v["default"].videojs.Flash.onReady=b.onReady,v["default"].videojs.Flash.onEvent=b.onEvent,v["default"].videojs.Flash.onError=b.onError,e.on("seeked",function(){this.lastSeekTarget_=undefined}),e}return h(b,a),b.prototype.createEl=function(){var a=this.options_;if(!a.swf){a.swf="//vjs.zencdn.net/swf/5.4.1/video-js.swf"}var c=a.techId,d=(0,w.assign)({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.preload,loop:a.loop,muted:a.muted},a.flashVars),e=(0,w.assign)({wmode:"opaque",bgcolor:"#000000"},a.params),f=(0,w.assign)({id:c,name:c,"class":"vjs-tech"},a.attributes);return this.el_=b.embed(a.swf,d,e,f),this.el_.tech=this,this.el_},b.prototype.play=function(){this.ended()&&this.setCurrentTime(0),this.el_.vjs_play()},b.prototype.pause=function(){this.el_.vjs_pause()},b.prototype.src=function(a){return a===undefined?this.currentSrc():this.setSrc(a)},b.prototype.setSrc=function(a){var b=this;a=o.getAbsoluteURL(a),this.el_.vjs_src(a),this.autoplay()&&this.setTimeout(function(){return b.play()},0)},b.prototype.seeking=function(){return this.lastSeekTarget_!==undefined},b.prototype.setCurrentTime=function(b){var c=this.seekable();c.length&&(b=b>c.start(0)?b:c.start(0),b=b<c.end(c.length-1)?b:c.end(c.length-1),this.lastSeekTarget_=b,this.trigger("seeking"),this.el_.vjs_setProperty("currentTime",b),a.prototype.setCurrentTime.call(this))},b.prototype.currentTime=function(){return this.seeking()?this.lastSeekTarget_||0:this.el_.vjs_getProperty("currentTime")},b.prototype.currentSrc=function(){return this.currentSource_?this.currentSource_.src:this.el_.vjs_getProperty("currentSrc")},b.prototype.duration=function(){if(0===this.readyState())return NaN;var a=this.el_.vjs_getProperty("duration");return a>=0?a:Infinity},b.prototype.load=function(){this.el_.vjs_load()},b.prototype.poster=function(){this.el_.vjs_getProperty("poster")},b.prototype.setPoster=function(){},b.prototype.seekable=function(){var a=this.duration();return 0===a?(0,p.createTimeRange)():(0,p.createTimeRange)(0,a)},b.prototype.buffered=function(){var a=this.el_.vjs_getProperty("buffered");return 0===a.length?(0,p.createTimeRange)():(0,p.createTimeRange)(a[0][0],a[0][1])},b.prototype.supportsFullScreen=function(){return!1},b.prototype.enterFullScreen=function(){return!1},b.prototype.getVideoPlaybackQuality=function(){var a=this.el_.vjs_getProperty("getVideoPlaybackQuality");return v["default"].performance&&"function"==typeof v["default"].performance.now?a.creationTime=v["default"].performance.now():v["default"].performance&&v["default"].performance.timing&&"number"==typeof v["default"].performance.timing.navigationStart&&(a.creationTime=v["default"].Date.now()-v["default"].performance.timing.navigationStart),a},b}(k["default"]),z=y.prototype,A="rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted".split(","),B="networkState,readyState,initialTime,startOffsetTime,paused,ended,videoWidth,videoHeight".split(","),C=0;C<A.length;C++)i(A[C]),function(a){var b=a.charAt(0).toUpperCase()+a.slice(1);z["set"+b]=function(b){return this.el_.vjs_setProperty(a,b)}}(A[C]);for(var D=0;D<B.length;D++)i(B[D]);y.isSupported=function(){return y.version()[0]>=10},k["default"].withSourceHandlers(y),y.nativeSourceHandler={},y.nativeSourceHandler.canPlayType=function(a){return a in y.formats?"maybe":""},y.nativeSourceHandler.canHandleSource=function(a,b){var c=void 0;return c=a.type?a.type.replace(/;.*/,"").toLowerCase():function(a){var b=o.getFileExtension(a);return b?"video/"+b:""}(a.src),y.nativeSourceHandler.canPlayType(c)},y.nativeSourceHandler.handleSource=function(a,b,c){b.setSrc(a.src)},y.nativeSourceHandler.dispose=function(){},y.registerSourceHandler(y.nativeSourceHandler),y.formats={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},y.onReady=function(a){var b=m.getEl(a),c=b&&b.tech;c&&c.el()&&y.checkReady(c)},y.checkReady=function(a){a.el()&&(a.el().vjs_getProperty?a.triggerReady():this.setTimeout(function(){y.checkReady(a)},50))},y.onEvent=function(a,b){var c=m.getEl(a).tech,d=Array.prototype.slice.call(arguments,2);c.setTimeout(function(){c.trigger(b,d)},1)},y.onError=function(a,b){var c=m.getEl(a).tech;if("srcnotfound"===b)return c.error(4);c.error("FLASH: "+b)},y.version=function(){var a="0,0,0";try{a=new v["default"].ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(b){try{x.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(x.plugins["Shockwave Flash 2.0"]||x.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(c){}}return a.split(",")},y.embed=function(a,b,c,d){var e=y.getEmbedCode(a,b,c,d);return m.createEl("div",{innerHTML:e}).childNodes[0]},y.getEmbedCode=function(a,b,c,d){var e="",f="",g="";return b&&Object.getOwnPropertyNames(b).forEach(function(a){e+=a+"="+b[a]+"&amp;"}),c=(0,w.assign)({movie:a,flashvars:e,allowScriptAccess:"always",allowNetworking:"all"},c),Object.getOwnPropertyNames(c).forEach(function(a){f+='<param name="'+a+'" value="'+c[a]+'" />'}),d=(0,w.assign)({data:a,width:"100%",height:"100%"},d),Object.getOwnPropertyNames(d).forEach(function(a){g+=a+'="'+d[a]+'" '}),'<object type="application/x-shockwave-flash" '+g+">"+f+"</object>"},(0,r["default"])(y),t["default"].registerComponent("Flash",y),k["default"].registerTech("Flash",y),c["default"]=y},{5:5,58:58,62:62,81:81,88:88,90:90,92:92,95:95}],60:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=function(a,b){return a.raw=b,a}(["Text Tracks are being loaded from another origin but the crossorigin attribute isn't used.\n This may prevent text tracks from loading."],["Text Tracks are being loaded from another origin but the crossorigin attribute isn't used.\n This may prevent text tracks from loading."]),j=a(62),k=e(j),l=a(5),m=e(l),n=a(81),o=d(n),p=a(92),q=d(p),r=a(83),s=d(r),t=a(86),u=e(t),v=a(98),w=e(v),x=a(78),y=d(x),z=a(94),A=e(z),B=a(95),C=e(B),D=a(88),E=a(87),F=e(E),G=a(91),H=e(G),I=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d)),h=c.source,j=!1;if(h&&(e.el_.currentSrc!==h.src||c.tag&&3===c.tag.initNetworkState_)?e.setSource(h):e.handleLateInit_(e.el_),e.el_.hasChildNodes()){for(var k=e.el_.childNodes,l=k.length,m=[];l--;){var n=k[l];"track"===n.nodeName.toLowerCase()&&(e.featuresNativeTextTracks?(e.remoteTextTrackEls().addTrackElement_(n),e.remoteTextTracks().addTrack_(n.track),j||e.el_.hasAttribute("crossorigin")||!q.isCrossOrigin(n.src)||(j=!0)):m.push(n))}for(var o=0;o<m.length;o++)e.el_.removeChild(m[o])}return["audio","video"].forEach(function(a){var b=e.el()[a+"Tracks"],c=e[a+"Tracks"](),d=(0,H["default"])(a);e["featuresNative"+d+"Tracks"]&&b&&b.addEventListener&&(e["handle"+d+"TrackChange_"]=function(a){c.trigger({type:"change",target:c,currentTarget:c,srcElement:c})},e["handle"+d+"TrackAdd_"]=function(a){return c.addTrack(a.track)},e["handle"+d+"TrackRemove_"]=function(a){return c.removeTrack(a.track)},b.addEventListener("change",e["handle"+d+"TrackChange_"]),b.addEventListener("addtrack",e["handle"+d+"TrackAdd_"]),b.addEventListener("removetrack",e["handle"+d+"TrackRemove_"]),e["removeOld"+d+"Tracks_"]=function(a){return e.removeOldTracks_(c,b)},e.on("loadstart",e["removeOld"+d+"Tracks_"]))}),e.featuresNativeTextTracks&&(j&&u["default"].warn((0,w["default"])(i)),e.handleTextTrackChange_=s.bind(e,e.handleTextTrackChange),e.handleTextTrackAdd_=s.bind(e,e.handleTextTrackAdd),e.handleTextTrackRemove_=s.bind(e,e.handleTextTrackRemove),e.proxyNativeTextTracks_()),e.restoreMetadataTracksInIOSNativePlayer_(),(y.TOUCH_ENABLED||y.IS_IPHONE||y.IS_NATIVE_ANDROID)&&!0===c.nativeControlsForTouch&&e.setControls(!0),e.proxyWebkitFullscreen_(),e.triggerReady(),e}return h(b,a),b.prototype.dispose=function(){var c=this;["audio","video","text"].forEach(function(a){var b=(0,H["default"])(a),d=c.el_[a+"Tracks"];d&&d.removeEventListener&&(d.removeEventListener("change",c["handle"+b+"TrackChange_"]),d.removeEventListener("addtrack",c["handle"+b+"TrackAdd_"]),d.removeEventListener("removetrack",c["handle"+b+"TrackRemove_"])),d&&c.off("loadstart",c["removeOld"+b+"Tracks_"])}),b.disposeMediaElement(this.el_),a.prototype.dispose.call(this)},b.prototype.restoreMetadataTracksInIOSNativePlayer_=function(){var a=this.textTracks(),b=void 0,c=function(){b=[];for(var c=0;c<a.length;c++){var d=a[c];"metadata"===d.kind&&b.push({track:d,storedMode:d.mode})}};c(),a.addEventListener("change",c);var d=function e(){for(var c=0;c<b.length;c++){var d=b[c];"disabled"===d.track.mode&&d.track.mode!==d.storedMode&&(d.track.mode=d.storedMode)}a.removeEventListener("change",e)};this.on("webkitbeginfullscreen",function(){a.removeEventListener("change",c),a.removeEventListener("change",d),a.addEventListener("change",d)}),this.on("webkitendfullscreen",function(){a.removeEventListener("change",c),a.addEventListener("change",c),a.removeEventListener("change",d)})},b.prototype.createEl=function(){var a=this.options_.tag;if(!a||!this.options_.playerElIngest&&!this.movingMediaElementInDOM){if(a){var c=a.cloneNode(!0);a.parentNode&&a.parentNode.insertBefore(c,a),b.disposeMediaElement(a),a=c}else{a=A["default"].createElement("video");var d=this.options_.tag&&o.getElAttributes(this.options_.tag),e=(0,F["default"])({},d);y.TOUCH_ENABLED&&!0===this.options_.nativeControlsForTouch||delete e.controls,o.setElAttributes(a,(0,D.assign)(e,{id:this.options_.techId,"class":"vjs-tech"}))}a.playerId=this.options_.playerId}"undefined"!=typeof this.options_.preload&&o.setAttribute(a,"preload",this.options_.preload);for(var f=["loop","muted","playsinline","autoplay"],g=f.length-1;g>=0;g--){var h=f[g],i=this.options_[h];void 0!==i&&(i?o.setAttribute(a,h,h):o.removeAttribute(a,h),a[h]=i)}return a},b.prototype.handleLateInit_=function(a){if(0!==a.networkState&&3!==a.networkState){if(0===a.readyState){var b=!1,c=function(){b=!0};this.on("loadstart",c);var d=function(){b||this.trigger("loadstart")};return this.on("loadedmetadata",d),void this.ready(function(){this.off("loadstart",c),this.off("loadedmetadata",d),b||this.trigger("loadstart")})}var e=["loadstart"];e.push("loadedmetadata"),a.readyState>=2&&e.push("loadeddata"),a.readyState>=3&&e.push("canplay"),a.readyState>=4&&e.push("canplaythrough"),this.ready(function(){e.forEach(function(a){this.trigger(a)},this)})}},b.prototype.proxyNativeTextTracks_=function(){var a=this.el().textTracks;if(a){for(var b=0;b<a.length;b++)this.textTracks().addTrack_(a[b]);a.addEventListener&&(a.addEventListener("change",this.handleTextTrackChange_),a.addEventListener("addtrack",this.handleTextTrackAdd_),a.addEventListener("removetrack",this.handleTextTrackRemove_)),this.on("loadstart",this.removeOldTextTracks_)}},b.prototype.handleTextTrackChange=function(a){var b=this.textTracks();this.textTracks().trigger({type:"change",target:b,currentTarget:b,srcElement:b})},b.prototype.handleTextTrackAdd=function(a){this.textTracks().addTrack_(a.track)},b.prototype.handleTextTrackRemove=function(a){this.textTracks().removeTrack_(a.track)},b.prototype.removeOldTracks_=function(a,b){var c=[];if(b){for(var d=0;d<a.length;d++){for(var e=a[d],f=!1,g=0;g<b.length;g++)if(b[g]===e){f=!0;break}f||c.push(e)}for(var h=0;h<c.length;h++){var i=c[h];a.removeTrack_(i)}}},b.prototype.removeOldTextTracks_=function(a){var b=this.textTracks(),c=this.el().textTracks;this.removeOldTracks_(b,c)},b.prototype.play=function(){var a=this.el_.play();a!==undefined&&"function"==typeof a.then&&a.then(null,function(a){})},b.prototype.setCurrentTime=function(a){try{this.el_.currentTime=a}catch(b){(0,u["default"])(b,"Video is not ready. (Video.js)")}},b.prototype.duration=function(){var a=this;if(this.el_.duration===Infinity&&y.IS_ANDROID&&y.IS_CHROME&&0===this.el_.currentTime){var b=function c(){a.el_.currentTime>0&&(a.el_.duration===Infinity&&a.trigger("durationchange"),a.off("timeupdate",c))};return this.on("timeupdate",b),NaN}return this.el_.duration||NaN},b.prototype.width=function(){return this.el_.offsetWidth},b.prototype.height=function(){return this.el_.offsetHeight},b.prototype.proxyWebkitFullscreen_=function(){var a=this;if("webkitDisplayingFullscreen"in this.el_){var b=function(){this.trigger("fullscreenchange",{isFullscreen:!1})},c=function(){"webkitPresentationMode"in this.el_&&"picture-in-picture"!==this.el_.webkitPresentationMode&&(this.one("webkitendfullscreen",b),this.trigger("fullscreenchange",{isFullscreen:!0}))};this.on("webkitbeginfullscreen",c),this.on("dispose",function(){a.off("webkitbeginfullscreen",c),a.off("webkitendfullscreen",b)})}},b.prototype.supportsFullScreen=function(){if("function"==typeof this.el_.webkitEnterFullScreen){var a=C["default"].navigator&&C["default"].navigator.userAgent||"";if(/Android/.test(a)||!/Chrome|Mac OS X 10.5/.test(a))return!0}return!1},b.prototype.enterFullScreen=function(){var a=this.el_;a.paused&&a.networkState<=a.HAVE_METADATA?(this.el_.play(),this.setTimeout(function(){a.pause(),a.webkitEnterFullScreen()},0)):a.webkitEnterFullScreen()},b.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()},b.prototype.src=function(a){if(a===undefined)return this.el_.src;this.setSrc(a)},b.prototype.reset=function(){b.resetMediaElement(this.el_)},b.prototype.currentSrc=function(){return this.currentSource_?this.currentSource_.src:this.el_.currentSrc},b.prototype.setControls=function(a){this.el_.controls=!!a},b.prototype.addTextTrack=function(b,c,d){return this.featuresNativeTextTracks?this.el_.addTextTrack(b,c,d):a.prototype.addTextTrack.call(this,b,c,d)},b.prototype.createRemoteTextTrack=function(b){if(!this.featuresNativeTextTracks)return a.prototype.createRemoteTextTrack.call(this,b);var c=A["default"].createElement("track");return b.kind&&(c.kind=b.kind),b.label&&(c.label=b.label),(b.language||b.srclang)&&(c.srclang=b.language||b.srclang),b["default"]&&(c["default"]=b["default"]),b.id&&(c.id=b.id),b.src&&(c.src=b.src),c},b.prototype.addRemoteTextTrack=function(b,c){var d=a.prototype.addRemoteTextTrack.call(this,b,c);return this.featuresNativeTextTracks&&this.el().appendChild(d),d},b.prototype.removeRemoteTextTrack=function(b){if(a.prototype.removeRemoteTextTrack.call(this,b),this.featuresNativeTextTracks)for(var c=this.$$("track"),d=c.length;d--;)b!==c[d]&&b!==c[d].track||this.el().removeChild(c[d])},b.prototype.getVideoPlaybackQuality=function(){if("function"==typeof this.el().getVideoPlaybackQuality)return this.el().getVideoPlaybackQuality();var a={};return"undefined"!=typeof this.el().webkitDroppedFrameCount&&"undefined"!=typeof this.el().webkitDecodedFrameCount&&(a.droppedVideoFrames=this.el().webkitDroppedFrameCount,a.totalVideoFrames=this.el().webkitDecodedFrameCount),C["default"].performance&&"function"==typeof C["default"].performance.now?a.creationTime=C["default"].performance.now():C["default"].performance&&C["default"].performance.timing&&"number"==typeof C["default"].performance.timing.navigationStart&&(a.creationTime=C["default"].Date.now()-C["default"].performance.timing.navigationStart),a},b}(k["default"]);if(o.isReal()){I.TEST_VID=A["default"].createElement("video");var J=A["default"].createElement("track");J.kind="captions",J.srclang="en",J.label="English",I.TEST_VID.appendChild(J)}I.isSupported=function(){try{I.TEST_VID.volume=.5}catch(a){return!1}return!(!I.TEST_VID||!I.TEST_VID.canPlayType)},I.canControlVolume=function(){try{var a=I.TEST_VID.volume;return I.TEST_VID.volume=a/2+.1,a!==I.TEST_VID.volume}catch(b){return!1}},I.canControlPlaybackRate=function(){if(y.IS_ANDROID&&y.IS_CHROME&&y.CHROME_VERSION<58)return!1;try{var a=I.TEST_VID.playbackRate;return I.TEST_VID.playbackRate=a/2+.1,a!==I.TEST_VID.playbackRate}catch(b){return!1}},I.supportsNativeTextTracks=function(){return y.IS_ANY_SAFARI},I.supportsNativeVideoTracks=function(){return!(!I.TEST_VID||!I.TEST_VID.videoTracks)},I.supportsNativeAudioTracks=function(){return!(!I.TEST_VID||!I.TEST_VID.audioTracks)},I.Events=["loadstart","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","ended","durationchange","timeupdate","progress","play","pause","ratechange","volumechange"],I.prototype.featuresVolumeControl=I.canControlVolume(),I.prototype.featuresPlaybackRate=I.canControlPlaybackRate(),I.prototype.movingMediaElementInDOM=!y.IS_IOS,I.prototype.featuresFullscreenResize=!0,I.prototype.featuresProgressEvents=!0,I.prototype.featuresTimeupdateEvents=!0,I.prototype.featuresNativeTextTracks=I.supportsNativeTextTracks(),I.prototype.featuresNativeVideoTracks=I.supportsNativeVideoTracks(),I.prototype.featuresNativeAudioTracks=I.supportsNativeAudioTracks();var K=I.TEST_VID&&I.TEST_VID.constructor.prototype.canPlayType,L=/^application\/(?:x-|vnd\.apple\.)mpegurl/i,M=/^video\/mp4/i;I.patchCanPlayType=function(){y.ANDROID_VERSION>=4&&!y.IS_FIREFOX?I.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&L.test(a)?"maybe":K.call(this,a)}:y.IS_OLD_ANDROID&&(I.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&M.test(a)?"maybe":K.call(this,a)})},I.unpatchCanPlayType=function(){var a=I.TEST_VID.constructor.prototype.canPlayType;return I.TEST_VID.constructor.prototype.canPlayType=K,a},I.patchCanPlayType(),I.disposeMediaElement=function(a){if(a){for(a.parentNode&&a.parentNode.removeChild(a);a.hasChildNodes();)a.removeChild(a.firstChild);a.removeAttribute("src"),"function"==typeof a.load&&function(){try{a.load()}catch(b){}}()}},I.resetMediaElement=function(a){if(a){for(var b=a.querySelectorAll("source"),c=b.length;c--;)a.removeChild(b[c]);a.removeAttribute("src"),"function"==typeof a.load&&function(){try{a.load()}catch(b){}}()}},["muted","defaultMuted","autoplay","controls","loop","playsinline"].forEach(function(a){I.prototype[a]=function(){return this.el_[a]||this.el_.hasAttribute(a)}}),["muted","defaultMuted","autoplay","loop","playsinline"].forEach(function(a){I.prototype["set"+(0,H["default"])(a)]=function(b){this.el_[a]=b,b?this.el_.setAttribute(a,a):this.el_.removeAttribute(a)}}),["paused","currentTime","buffered","volume","poster","preload","error","seeking","seekable","ended","playbackRate","played","networkState","readyState","videoWidth","videoHeight"].forEach(function(a){I.prototype[a]=function(){return this.el_[a]}}),["volume","src","poster","preload","playbackRate"].forEach(function(a){I.prototype["set"+(0,H["default"])(a)]=function(b){this.el_[a]=b}}),["pause","load"].forEach(function(a){I.prototype[a]=function(){return this.el_[a]()}}),k["default"].withSourceHandlers(I),I.nativeSourceHandler={},I.nativeSourceHandler.canPlayType=function(a){try{return I.TEST_VID.canPlayType(a)}catch(b){return""}},I.nativeSourceHandler.canHandleSource=function(a,b){if(a.type)return I.nativeSourceHandler.canPlayType(a.type);if(a.src){var c=q.getFileExtension(a.src);return I.nativeSourceHandler.canPlayType("video/"+c)}return""},I.nativeSourceHandler.handleSource=function(a,b,c){b.setSrc(a.src)},I.nativeSourceHandler.dispose=function(){},I.registerSourceHandler(I.nativeSourceHandler),m["default"].registerComponent("Html5",I),k["default"].registerTech("Html5",I),c["default"]=I},{5:5,62:62,78:78,81:81,83:83,86:86,87:87,88:88,91:91,92:92,94:94,95:95,98:98}],61:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=a(62),k=d(j),l=a(91),m=d(l),n=function(a){function b(c,d,g){e(this,b);var h=f(this,a.call(this,c,d,g));if(d.playerOptions.sources&&0!==d.playerOptions.sources.length)c.src(d.playerOptions.sources);else for(var j=0,l=d.playerOptions.techOrder;j<l.length;j++){var n=(0,m["default"])(l[j]),o=k["default"].getTech(n);if(n||(o=i["default"].getComponent(n)),o&&o.isSupported()){c.loadTech_(n);break}}return h}return g(b,a),b}(i["default"]);i["default"].registerComponent("MediaLoader",n),c["default"]=n},{5:5,62:62,91:91}],62:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a,b,c,d){var e=arguments.length>4&&arguments[4]!==undefined?arguments[4]:{},f=a.textTracks();e.kind=b,c&&(e.label=c),d&&(e.language=d),e.tech=a;var g=new r["default"](e);return f.addTrack_(g),g}c.__esModule=!0;var i=a(5),j=d(i),k=a(66),l=d(k),m=a(65),n=d(m),o=a(87),p=d(o),q=a(72),r=d(q),s=a(70),t=d(s),u=a(76),v=d(u),w=a(63),x=d(w),y=a(83),z=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(y),A=a(86),B=d(A),C=a(90),D=a(79),E=a(46),F=d(E),G=a(95),H=d(G),I=a(94),J=d(I),K=a(88),L=function(b){function c(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},d=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(){};e(this,c),a.reportTouchActivity=!1;var g=f(this,b.call(this,null,a,d));return g.hasStarted_=!1,g.on("playing",function(){this.hasStarted_=!0}),g.on("loadstart",function(){this.hasStarted_=!1}),g.textTracks_=a.textTracks,g.videoTracks_=a.videoTracks,g.audioTracks_=a.audioTracks,g.featuresProgressEvents||g.manualProgressOn(),g.featuresTimeupdateEvents||g.manualTimeUpdatesOn(),["Text","Audio","Video"].forEach(function(b){!1===a["native"+b+"Tracks"]&&(g["featuresNative"+b+"Tracks"]=!1)}),
17
+ !1===a.nativeCaptions&&(g.featuresNativeTextTracks=!1),g.featuresNativeTextTracks||g.emulateTextTracks(),g.autoRemoteTextTracks_=new t["default"],g.initTextTrackListeners(),g.initTrackListeners(),a.nativeControlsForTouch||g.emitTapEvents(),g.constructor&&(g.name_=g.constructor.name||"Unknown Tech"),g}return g(c,b),c.prototype.manualProgressOn=function(){this.on("durationchange",this.onDurationChange),this.manualProgress=!0,this.one("ready",this.trackProgress)},c.prototype.manualProgressOff=function(){this.manualProgress=!1,this.stopTrackingProgress(),this.off("durationchange",this.onDurationChange)},c.prototype.trackProgress=function(a){this.stopTrackingProgress(),this.progressInterval=this.setInterval(z.bind(this,function(){var a=this.bufferedPercent();this.bufferedPercent_!==a&&this.trigger("progress"),this.bufferedPercent_=a,1===a&&this.stopTrackingProgress()}),500)},c.prototype.onDurationChange=function(a){this.duration_=this.duration()},c.prototype.buffered=function(){return(0,C.createTimeRange)(0,0)},c.prototype.bufferedPercent=function(){return(0,D.bufferedPercent)(this.buffered(),this.duration_)},c.prototype.stopTrackingProgress=function(){this.clearInterval(this.progressInterval)},c.prototype.manualTimeUpdatesOn=function(){this.manualTimeUpdates=!0,this.on("play",this.trackCurrentTime),this.on("pause",this.stopTrackingCurrentTime)},c.prototype.manualTimeUpdatesOff=function(){this.manualTimeUpdates=!1,this.stopTrackingCurrentTime(),this.off("play",this.trackCurrentTime),this.off("pause",this.stopTrackingCurrentTime)},c.prototype.trackCurrentTime=function(){this.currentTimeInterval&&this.stopTrackingCurrentTime(),this.currentTimeInterval=this.setInterval(function(){this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},250)},c.prototype.stopTrackingCurrentTime=function(){this.clearInterval(this.currentTimeInterval),this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},c.prototype.dispose=function(){this.clearTracks(["audio","video","text"]),this.manualProgress&&this.manualProgressOff(),this.manualTimeUpdates&&this.manualTimeUpdatesOff(),b.prototype.dispose.call(this)},c.prototype.clearTracks=function(a){var b=this;a=[].concat(a),a.forEach(function(a){for(var c=b[a+"Tracks"]()||[],d=c.length;d--;){var e=c[d];"text"===a&&b.removeRemoteTextTrack(e),c.removeTrack_(e)}})},c.prototype.cleanupAutoTextTracks=function(){for(var a=this.autoRemoteTextTracks_||[],b=a.length;b--;){var c=a[b];this.removeRemoteTextTrack(c)}},c.prototype.reset=function(){},c.prototype.error=function(a){return a!==undefined&&(this.error_=new F["default"](a),this.trigger("error")),this.error_},c.prototype.played=function(){return this.hasStarted_?(0,C.createTimeRange)(0,0):(0,C.createTimeRange)()},c.prototype.setCurrentTime=function(){this.manualTimeUpdates&&this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},c.prototype.initTextTrackListeners=function(){var a=z.bind(this,function(){this.trigger("texttrackchange")}),b=this.textTracks();b&&(b.addEventListener("removetrack",a),b.addEventListener("addtrack",a),this.on("dispose",z.bind(this,function(){b.removeEventListener("removetrack",a),b.removeEventListener("addtrack",a)})))},c.prototype.initTrackListeners=function(){var a=this;["video","audio"].forEach(function(b){var c=function(){a.trigger(b+"trackchange")},d=a[b+"Tracks"]();d.addEventListener("removetrack",c),d.addEventListener("addtrack",c),a.on("dispose",function(){d.removeEventListener("removetrack",c),d.removeEventListener("addtrack",c)})})},c.prototype.addWebVttScript_=function(){var b=this;if(!H["default"].WebVTT)if(J["default"].body.contains(this.el())){var c=a(99);if(!this.options_["vtt.js"]&&(0,K.isPlain)(c)&&Object.keys(c).length>0)return void this.trigger("vttjsloaded");var d=J["default"].createElement("script");d.src=this.options_["vtt.js"]||"https://vjs.zencdn.net/vttjs/0.12.4/vtt.min.js",d.onload=function(){b.trigger("vttjsloaded")},d.onerror=function(){b.trigger("vttjserror")},this.on("dispose",function(){d.onload=null,d.onerror=null}),H["default"].WebVTT=!0,this.el().parentNode.appendChild(d)}else this.ready(this.addWebVttScript_)},c.prototype.emulateTextTracks=function(){var a=this,b=this.textTracks();if(b){var c=this.remoteTextTracks(),d=function(a){return b.addTrack_(a.track)},e=function(a){return b.removeTrack_(a.track)};c.on("addtrack",d),c.on("removetrack",e),this.addWebVttScript_();var f=function(){return a.trigger("texttrackchange")},g=function(){f();for(var a=0;a<b.length;a++){var c=b[a];c.removeEventListener("cuechange",f),"showing"===c.mode&&c.addEventListener("cuechange",f)}};g(),b.addEventListener("change",g),b.addEventListener("addtrack",g),b.addEventListener("removetrack",g),this.on("dispose",function(){c.off("addtrack",d),c.off("removetrack",e),b.removeEventListener("change",g),b.removeEventListener("addtrack",g),b.removeEventListener("removetrack",g);for(var a=0;a<b.length;a++){b[a].removeEventListener("cuechange",f)}})}},c.prototype.videoTracks=function(){return this.videoTracks_=this.videoTracks_||new v["default"],this.videoTracks_},c.prototype.audioTracks=function(){return this.audioTracks_=this.audioTracks_||new x["default"],this.audioTracks_},c.prototype.textTracks=function(){return this.textTracks_=this.textTracks_||new t["default"],this.textTracks_},c.prototype.remoteTextTracks=function(){return this.remoteTextTracks_=this.remoteTextTracks_||new t["default"],this.remoteTextTracks_},c.prototype.remoteTextTrackEls=function(){return this.remoteTextTrackEls_=this.remoteTextTrackEls_||new n["default"],this.remoteTextTrackEls_},c.prototype.addTextTrack=function(a,b,c){if(!a)throw new Error("TextTrack kind is required but was not provided");return h(this,a,b,c)},c.prototype.createRemoteTextTrack=function(a){var b=(0,p["default"])(a,{tech:this});return new l["default"](b)},c.prototype.addRemoteTextTrack=function(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},b=arguments[1],c=this.createRemoteTextTrack(a);return!0!==b&&!1!==b&&(B["default"].warn('Calling addRemoteTextTrack without explicitly setting the "manualCleanup" parameter to `true` is deprecated and default to `false` in future version of video.js'),b=!0),this.remoteTextTrackEls().addTrackElement_(c),this.remoteTextTracks().addTrack_(c.track),!0!==b&&this.autoRemoteTextTracks_.addTrack_(c.track),c},c.prototype.removeRemoteTextTrack=function(a){var b=this.remoteTextTrackEls().getTrackElementByTrack_(a);this.remoteTextTrackEls().removeTrackElement_(b),this.remoteTextTracks().removeTrack_(a),this.autoRemoteTextTracks_.removeTrack_(a)},c.prototype.getVideoPlaybackQuality=function(){return{}},c.prototype.setPoster=function(){},c.prototype.playsinline=function(){},c.prototype.setPlaysinline=function(){},c.prototype.canPlayType=function(){return""},c.isTech=function(a){return a.prototype instanceof c||a instanceof c||a===c},c.registerTech=function(a,b){if(c.techs_||(c.techs_={}),!c.isTech(b))throw new Error("Tech "+a+" must be a Tech");return c.techs_[a]=b,b},c.getTech=function(a){return c.techs_&&c.techs_[a]?c.techs_[a]:H["default"]&&H["default"].videojs&&H["default"].videojs[a]?(B["default"].warn("The "+a+" tech was added to the videojs object when it should be registered using videojs.registerTech(name, tech)"),H["default"].videojs[a]):void 0},c}(j["default"]);L.prototype.textTracks_,L.prototype.audioTracks_,L.prototype.videoTracks_,L.prototype.featuresVolumeControl=!0,L.prototype.featuresFullscreenResize=!1,L.prototype.featuresPlaybackRate=!1,L.prototype.featuresProgressEvents=!1,L.prototype.featuresTimeupdateEvents=!1,L.prototype.featuresNativeTextTracks=!1,L.withSourceHandlers=function(a){a.registerSourceHandler=function(b,c){var d=a.sourceHandlers;d||(d=a.sourceHandlers=[]),c===undefined&&(c=d.length),d.splice(c,0,b)},a.canPlayType=function(b){for(var c=a.sourceHandlers||[],d=void 0,e=0;e<c.length;e++)if(d=c[e].canPlayType(b))return d;return""},a.selectSourceHandler=function(b,c){for(var d=a.sourceHandlers||[],e=0;e<d.length;e++)if(d[e].canHandleSource(b,c))return d[e];return null},a.canPlaySource=function(b,c){var d=a.selectSourceHandler(b,c);return d?d.canHandleSource(b,c):""},["seekable","duration"].forEach(function(a){var b=this[a];"function"==typeof b&&(this[a]=function(){return this.sourceHandler_&&this.sourceHandler_[a]?this.sourceHandler_[a].apply(this.sourceHandler_,arguments):b.apply(this,arguments)})},a.prototype),a.prototype.setSource=function(b){var c=a.selectSourceHandler(b,this.options_);return c||(a.nativeSourceHandler?c=a.nativeSourceHandler:B["default"].error("No source hander found for the current source.")),this.disposeSourceHandler(),this.off("dispose",this.disposeSourceHandler),c!==a.nativeSourceHandler&&(this.currentSource_=b,this.off(this.el_,"loadstart",a.prototype.firstLoadStartListener_),this.off(this.el_,"loadstart",a.prototype.successiveLoadStartListener_),this.one(this.el_,"loadstart",a.prototype.firstLoadStartListener_)),this.sourceHandler_=c.handleSource(b,this,this.options_),this.on("dispose",this.disposeSourceHandler),this},a.prototype.firstLoadStartListener_=function(){this.one(this.el_,"loadstart",a.prototype.successiveLoadStartListener_)},a.prototype.successiveLoadStartListener_=function(){this.disposeSourceHandler(),this.one(this.el_,"loadstart",a.prototype.successiveLoadStartListener_)},a.prototype.disposeSourceHandler=function(){this.currentSource_&&(this.clearTracks(["audio","video"]),this.currentSource_=null),this.cleanupAutoTextTracks(),this.sourceHandler_&&(this.off(this.el_,"loadstart",a.prototype.firstLoadStartListener_),this.off(this.el_,"loadstart",a.prototype.successiveLoadStartListener_),this.sourceHandler_.dispose&&this.sourceHandler_.dispose(),this.sourceHandler_=null)}},j["default"].registerComponent("Tech",L),j["default"].registerComponent("MediaTechController",L),L.registerTech("Tech",L),c["default"]=L},{46:46,5:5,63:63,65:65,66:66,70:70,72:72,76:76,79:79,83:83,86:86,87:87,88:88,90:90,94:94,95:95,99:99}],63:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(74),i=d(h),j=a(78),k=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(j),l=a(94),m=d(l),n=function(a,b){for(var c=0;c<a.length;c++)b.id!==a[c].id&&(a[c].enabled=!1)},o=function(a){function b(){var c,d,g=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];e(this,b);for(var h=void 0,j=g.length-1;j>=0;j--)if(g[j].enabled){n(g,g[j]);break}if(k.IS_IE8){h=m["default"].createElement("custom");for(var l in i["default"].prototype)"constructor"!==l&&(h[l]=i["default"].prototype[l]);for(var o in b.prototype)"constructor"!==o&&(h[o]=b.prototype[o])}return h=c=f(this,a.call(this,g,h)),h.changing_=!1,d=h,f(c,d)}return g(b,a),b.prototype.addTrack_=function(b){var c=this;b.enabled&&n(this,b),a.prototype.addTrack_.call(this,b),b.addEventListener&&b.addEventListener("enabledchange",function(){c.changing_||(c.changing_=!0,n(c,b),c.changing_=!1,c.trigger("change"))})},b.prototype.addTrack=function(a){this.addTrack_(a)},b.prototype.removeTrack=function(b){a.prototype.removeTrack_.call(this,b)},b}(i["default"]);c["default"]=o},{74:74,78:78,94:94}],64:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(73),i=a(75),j=d(i),k=a(87),l=d(k),m=a(78),n=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(m),o=function(a){function b(){var c,d,g=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};e(this,b);var i=(0,l["default"])(g,{kind:h.AudioTrackKind[g.kind]||""}),j=c=f(this,a.call(this,i)),k=!1;if(n.IS_IE8)for(var m in b.prototype)"constructor"!==m&&(j[m]=b.prototype[m]);return Object.defineProperty(j,"enabled",{get:function(){return k},set:function(a){"boolean"==typeof a&&a!==k&&(k=a,this.trigger("enabledchange"))}}),i.enabled&&(j.enabled=i.enabled),j.loaded_=!0,d=j,f(c,d)}return g(b,a),b}(j["default"]);c["default"]=o},{73:73,75:75,78:78,87:87}],65:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}c.__esModule=!0;var e=a(78),f=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(e),g=a(94),h=function(a){return a&&a.__esModule?a:{"default":a}}(g),i=function(){function a(){var b=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];d(this,a);var c=this;if(f.IS_IE8){c=h["default"].createElement("custom");for(var e in a.prototype)"constructor"!==e&&(c[e]=a.prototype[e])}c.trackElements_=[],Object.defineProperty(c,"length",{get:function(){return this.trackElements_.length}});for(var g=0,i=b.length;g<i;g++)c.addTrackElement_(b[g]);if(f.IS_IE8)return c}return a.prototype.addTrackElement_=function(a){var b=this.trackElements_.length;""+b in this||Object.defineProperty(this,b,{get:function(){return this.trackElements_[b]}}),-1===this.trackElements_.indexOf(a)&&this.trackElements_.push(a)},a.prototype.getTrackElementByTrack_=function(a){for(var b=void 0,c=0,d=this.trackElements_.length;c<d;c++)if(a===this.trackElements_[c].track){b=this.trackElements_[c];break}return b},a.prototype.removeTrackElement_=function(a){for(var b=0,c=this.trackElements_.length;b<c;b++)if(a===this.trackElements_[b]){this.trackElements_.splice(b,1);break}},a}();c["default"]=i},{78:78,94:94}],66:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(78),i=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(h),j=a(94),k=d(j),l=a(42),m=d(l),n=a(72),o=d(n),p=0,q=2,r=function(a){function b(){var c=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};e(this,b);var d=f(this,a.call(this)),g=void 0,h=d;if(i.IS_IE8){h=k["default"].createElement("custom");for(var j in b.prototype)"constructor"!==j&&(h[j]=b.prototype[j])}var l=new o["default"](c);if(h.kind=l.kind,h.src=l.src,h.srclang=l.language,h.label=l.label,h["default"]=l["default"],Object.defineProperty(h,"readyState",{get:function(){return g}}),Object.defineProperty(h,"track",{get:function(){return l}}),g=p,l.addEventListener("loadeddata",function(){g=q,h.trigger({type:"load",target:h})}),i.IS_IE8){var m;return m=h,f(d,m)}return d}return g(b,a),b}(m["default"]);r.prototype.allowedEvents_={load:"load"},r.NONE=p,r.LOADING=1,r.LOADED=q,r.ERROR=3,c["default"]=r},{42:42,72:72,78:78,94:94}],67:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}c.__esModule=!0;var e=a(78),f=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(e),g=a(94),h=function(a){return a&&a.__esModule?a:{"default":a}}(g),i=function(){function a(b){d(this,a);var c=this;if(f.IS_IE8){c=h["default"].createElement("custom");for(var e in a.prototype)"constructor"!==e&&(c[e]=a.prototype[e])}if(a.prototype.setCues_.call(c,b),Object.defineProperty(c,"length",{get:function(){return this.length_}}),f.IS_IE8)return c}return a.prototype.setCues_=function(a){var b=this.length||0,c=0,d=a.length;this.cues_=a,this.length_=a.length;var e=function(a){""+a in this||Object.defineProperty(this,""+a,{get:function(){return this.cues_[a]}})};if(b<d)for(c=b;c<d;c++)e.call(this,c)},a.prototype.getCueById=function(a){for(var b=null,c=0,d=this.length;c<d;c++){var e=this[c];if(e.id===a){b=e;break}}return b},a}();c["default"]=i},{78:78,94:94}],68:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a,b){return"rgba("+parseInt(a[1]+a[1],16)+","+parseInt(a[2]+a[2],16)+","+parseInt(a[3]+a[3],16)+","+b+")"}function i(a,b,c){try{a.style[b]=c}catch(d){return}}c.__esModule=!0;var j=a(5),k=d(j),l=a(83),m=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(l),n=a(95),o=d(n),p={monospace:"monospace",sansSerif:"sans-serif",serif:"serif",monospaceSansSerif:'"Andale Mono", "Lucida Console", monospace',monospaceSerif:'"Courier New", monospace',proportionalSansSerif:"sans-serif",proportionalSerif:"serif",casual:'"Comic Sans MS", Impact, fantasy',script:'"Monotype Corsiva", cursive',smallcaps:'"Andale Mono", "Lucida Console", monospace, sans-serif'},q=function(a){function b(c,d,g){e(this,b);var h=f(this,a.call(this,c,d,g));return c.on("loadstart",m.bind(h,h.toggleDisplay)),c.on("texttrackchange",m.bind(h,h.updateDisplay)),c.ready(m.bind(h,function(){if(c.tech_&&c.tech_.featuresNativeTextTracks)return void this.hide();c.on("fullscreenchange",m.bind(this,this.updateDisplay));for(var a=this.options_.playerOptions.tracks||[],b=0;b<a.length;b++)this.player_.addRemoteTextTrack(a[b],!0);var d={captions:1,subtitles:1},e=this.player_.textTracks(),f=void 0,g=void 0;if(e){for(var h=0;h<e.length;h++){var i=e[h];i["default"]&&("descriptions"!==i.kind||f?i.kind in d&&!g&&(g=i):f=i)}g?g.mode="showing":f&&(f.mode="showing")}})),h}return g(b,a),b.prototype.toggleDisplay=function(){this.player_.tech_&&this.player_.tech_.featuresNativeTextTracks?this.hide():this.show()},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-text-track-display"},{"aria-live":"off","aria-atomic":"true"})},b.prototype.clearDisplay=function(){"function"==typeof o["default"].WebVTT&&o["default"].WebVTT.processCues(o["default"],[],this.el_)},b.prototype.updateDisplay=function(){var a=this.player_.textTracks();if(this.clearDisplay(),a){for(var b=null,c=null,d=a.length;d--;){var e=a[d];"showing"===e.mode&&("descriptions"===e.kind?b=e:c=e)}c?("off"!==this.getAttribute("aria-live")&&this.setAttribute("aria-live","off"),this.updateForTrack(c)):b&&("assertive"!==this.getAttribute("aria-live")&&this.setAttribute("aria-live","assertive"),this.updateForTrack(b))}},b.prototype.updateForTrack=function(a){if("function"==typeof o["default"].WebVTT&&a.activeCues){for(var b=this.player_.textTrackSettings.getValues(),c=[],d=0;d<a.activeCues.length;d++)c.push(a.activeCues[d]);o["default"].WebVTT.processCues(o["default"],c,this.el_);for(var e=c.length;e--;){var f=c[e];if(f){var g=f.displayState;if(b.color&&(g.firstChild.style.color=b.color),b.textOpacity&&i(g.firstChild,"color",h(b.color||"#fff",b.textOpacity)),b.backgroundColor&&(g.firstChild.style.backgroundColor=b.backgroundColor),b.backgroundOpacity&&i(g.firstChild,"backgroundColor",h(b.backgroundColor||"#000",b.backgroundOpacity)),b.windowColor&&(b.windowOpacity?i(g,"backgroundColor",h(b.windowColor,b.windowOpacity)):g.style.backgroundColor=b.windowColor),b.edgeStyle&&("dropshadow"===b.edgeStyle?g.firstChild.style.textShadow="2px 2px 3px #222, 2px 2px 4px #222, 2px 2px 5px #222":"raised"===b.edgeStyle?g.firstChild.style.textShadow="1px 1px #222, 2px 2px #222, 3px 3px #222":"depressed"===b.edgeStyle?g.firstChild.style.textShadow="1px 1px #ccc, 0 1px #ccc, -1px -1px #222, 0 -1px #222":"uniform"===b.edgeStyle&&(g.firstChild.style.textShadow="0 0 4px #222, 0 0 4px #222, 0 0 4px #222, 0 0 4px #222")),b.fontPercent&&1!==b.fontPercent){var j=o["default"].parseFloat(g.style.fontSize);g.style.fontSize=j*b.fontPercent+"px",g.style.height="auto",g.style.top="auto",g.style.bottom="2px"}b.fontFamily&&"default"!==b.fontFamily&&("small-caps"===b.fontFamily?g.firstChild.style.fontVariant="small-caps":g.firstChild.style.fontFamily=p[b.fontFamily])}}}},b}(k["default"]);k["default"].registerComponent("TextTrackDisplay",q),c["default"]=q},{5:5,83:83,95:95}],69:[function(a,b,c){"use strict";c.__esModule=!0;var d=function(a){return["kind","label","language","id","inBandMetadataTrackDispatchType","mode","src"].reduce(function(b,c,d){return a[c]&&(b[c]=a[c]),b},{cues:a.cues&&Array.prototype.map.call(a.cues,function(a){return{startTime:a.startTime,endTime:a.endTime,text:a.text,id:a.id}})})},e=function(a){var b=a.$$("track"),c=Array.prototype.map.call(b,function(a){return a.track});return Array.prototype.map.call(b,function(a){var b=d(a.track);return a.src&&(b.src=a.src),b}).concat(Array.prototype.filter.call(a.textTracks(),function(a){return-1===c.indexOf(a)}).map(d))},f=function(a,b){return a.forEach(function(a){var c=b.addRemoteTextTrack(a).track;!a.src&&a.cues&&a.cues.forEach(function(a){return c.addCue(a)})}),b.textTracks()};c["default"]={textTracksToJson:e,jsonToTextTracks:f,trackToJson_:d}},{}],70:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(74),j=e(i),k=a(83),l=d(k),m=a(78),n=d(m),o=a(94),p=e(o),q=function(a){function b(){var c,d,e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];f(this,b);var h=void 0;if(n.IS_IE8){h=p["default"].createElement("custom");for(var i in j["default"].prototype)"constructor"!==i&&(h[i]=j["default"].prototype[i]);for(var k in b.prototype)"constructor"!==k&&(h[k]=b.prototype[k])}return h=c=g(this,a.call(this,e,h)),d=h,g(c,d)}return h(b,a),b.prototype.addTrack_=function(b){a.prototype.addTrack_.call(this,b),b.addEventListener("modechange",l.bind(this,function(){this.trigger("change")}))},b}(j["default"]);c["default"]=q},{74:74,78:78,83:83,94:94}],71:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function i(a,b){if(b&&(a=b(a)),a&&"none"!==a)return a}function j(a,b){return i(a.options[a.options.selectedIndex].value,b)}function k(a,b,c){if(b)for(var d=0;d<a.options.length;d++)if(i(a.options[d].value,c)===b){a.selectedIndex=d;break}}c.__esModule=!0;var l=a(95),m=e(l),n=a(5),o=e(n),p=a(81),q=a(83),r=d(q),s=a(88),t=d(s),u=a(86),v=e(u),w=["#000","Black"],x=["#00F","Blue"],y=["#0FF","Cyan"],z=["#0F0","Green"],A=["#F0F","Magenta"],B=["#F00","Red"],C=["#FFF","White"],D=["#FF0","Yellow"],E=["1","Opaque"],F=["0.5","Semi-Transparent"],G=["0","Transparent"],H={backgroundColor:{selector:".vjs-bg-color > select",id:"captions-background-color-%s",label:"Color",options:[w,C,B,z,x,D,A,y]},backgroundOpacity:{selector:".vjs-bg-opacity > select",id:"captions-background-opacity-%s",label:"Transparency",options:[E,F,G]},color:{selector:".vjs-fg-color > select",id:"captions-foreground-color-%s",label:"Color",options:[C,w,B,z,x,D,A,y]},edgeStyle:{selector:".vjs-edge-style > select",id:"%s",label:"Text Edge Style",options:[["none","None"],["raised","Raised"],["depressed","Depressed"],["uniform","Uniform"],["dropshadow","Dropshadow"]]},fontFamily:{selector:".vjs-font-family > select",id:"captions-font-family-%s",label:"Font Family",options:[["proportionalSansSerif","Proportional Sans-Serif"],["monospaceSansSerif","Monospace Sans-Serif"],["proportionalSerif","Proportional Serif"],["monospaceSerif","Monospace Serif"],["casual","Casual"],["script","Script"],["small-caps","Small Caps"]]},fontPercent:{selector:".vjs-font-percent > select",id:"captions-font-size-%s",label:"Font Size",options:[["0.50","50%"],["0.75","75%"],["1.00","100%"],["1.25","125%"],["1.50","150%"],["1.75","175%"],["2.00","200%"],["3.00","300%"],["4.00","400%"]],"default":2,parser:function(a){return"1.00"===a?null:Number(a)}},textOpacity:{selector:".vjs-text-opacity > select",id:"captions-foreground-opacity-%s",label:"Transparency",options:[E,F]},windowColor:{selector:".vjs-window-color > select",id:"captions-window-color-%s",label:"Color"},windowOpacity:{selector:".vjs-window-opacity > select",id:"captions-window-opacity-%s",label:"Transparency",options:[G,F,E]}};H.windowColor.options=H.backgroundColor.options;var I=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.setDefaults(),e.hide(),e.updateDisplay=r.bind(e,e.updateDisplay),d.persistTextTrackSettings===undefined&&(e.options_.persistTextTrackSettings=e.options_.playerOptions.persistTextTrackSettings),e.on(e.$(".vjs-done-button"),"click",function(){e.saveSettings(),e.hide()}),e.on(e.$(".vjs-default-button"),"click",function(){e.setDefaults(),e.updateDisplay()}),t.each(H,function(a){e.on(e.$(a.selector),"change",e.updateDisplay)}),e.options_.persistTextTrackSettings&&e.restoreSettings(),e}return h(b,a),b.prototype.createElSelect_=function(a){var b=this,c=H[a],d=c.id.replace("%s",this.id_);return[(0,p.createEl)("label",{className:"vjs-label",textContent:c.label},{"for":d}),(0,p.createEl)("select",{id:d},undefined,c.options.map(function(a){return(0,p.createEl)("option",{textContent:b.localize(a[1]),value:a[0]})}))]},b.prototype.createElFgColor_=function(){var a=(0,p.createEl)("legend",{textContent:this.localize("Text")}),b=this.createElSelect_("color"),c=(0,p.createEl)("span",{className:"vjs-text-opacity vjs-opacity"},undefined,this.createElSelect_("textOpacity"));return(0,p.createEl)("fieldset",{className:"vjs-fg-color vjs-tracksetting"},undefined,[a].concat(b,c))},b.prototype.createElBgColor_=function(){var a=(0,p.createEl)("legend",{textContent:this.localize("Background")}),b=this.createElSelect_("backgroundColor"),c=(0,p.createEl)("span",{className:"vjs-bg-opacity vjs-opacity"},undefined,this.createElSelect_("backgroundOpacity"));return(0,p.createEl)("fieldset",{className:"vjs-bg-color vjs-tracksetting"},undefined,[a].concat(b,c))},b.prototype.createElWinColor_=function(){var a=(0,p.createEl)("legend",{textContent:this.localize("Window")}),b=this.createElSelect_("windowColor"),c=(0,p.createEl)("span",{className:"vjs-window-opacity vjs-opacity"},undefined,this.createElSelect_("windowOpacity"));return(0,p.createEl)("fieldset",{className:"vjs-window-color vjs-tracksetting"},undefined,[a].concat(b,c))},b.prototype.createElColors_=function(){return(0,p.createEl)("div",{className:"vjs-tracksettings-colors"},undefined,[this.createElFgColor_(),this.createElBgColor_(),this.createElWinColor_()])},b.prototype.createElFont_=function(){var a=(0,p.createEl)("div",{className:"vjs-font-percent vjs-tracksetting"},undefined,this.createElSelect_("fontPercent")),b=(0,p.createEl)("div",{className:"vjs-edge-style vjs-tracksetting"},undefined,this.createElSelect_("edgeStyle")),c=(0,p.createEl)("div",{className:"vjs-font-family vjs-tracksetting"},undefined,this.createElSelect_("fontFamily"));return(0,p.createEl)("div",{className:"vjs-tracksettings-font"},undefined,[a,b,c])},b.prototype.createElControls_=function(){var a=(0,p.createEl)("button",{className:"vjs-default-button",textContent:this.localize("Defaults")}),b=(0,p.createEl)("button",{className:"vjs-done-button",textContent:"Done"});return(0,p.createEl)("div",{className:"vjs-tracksettings-controls"},undefined,[a,b])},b.prototype.createEl=function(){var a=(0,p.createEl)("div",{className:"vjs-tracksettings"},undefined,[this.createElColors_(),this.createElFont_(),this.createElControls_()]),b=(0,p.createEl)("div",{className:"vjs-control-text",id:"TTsettingsDialogLabel-"+this.id_,textContent:"Caption Settings Dialog"},{"aria-level":"1",role:"heading"}),c=(0,p.createEl)("div",{className:"vjs-control-text",id:"TTsettingsDialogDescription-"+this.id_,textContent:"Beginning of dialog window. Escape will cancel and close the window."}),d=(0,p.createEl)("div",undefined,{role:"document"},[b,c,a]);return(0,p.createEl)("div",{className:"vjs-caption-settings vjs-modal-overlay",tabIndex:-1},{role:"dialog","aria-labelledby":b.id,"aria-describedby":c.id},d)},b.prototype.getValues=function(){var a=this;return t.reduce(H,function(b,c,d){var e=j(a.$(c.selector),c.parser);return e!==undefined&&(b[d]=e),b},{})},b.prototype.setValues=function(a){var b=this;t.each(H,function(c,d){k(b.$(c.selector),a[d],c.parser)})},b.prototype.setDefaults=function(){var a=this;t.each(H,function(b){var c=b.hasOwnProperty("default")?b["default"]:0;a.$(b.selector).selectedIndex=c})},b.prototype.restoreSettings=function(){var a=void 0;try{a=JSON.parse(m["default"].localStorage.getItem("vjs-text-track-settings"))}catch(b){v["default"].warn(b)}a&&this.setValues(a)},b.prototype.saveSettings=function(){if(this.options_.persistTextTrackSettings){var a=this.getValues();try{Object.keys(a).length?m["default"].localStorage.setItem("vjs-text-track-settings",JSON.stringify(a)):m["default"].localStorage.removeItem("vjs-text-track-settings")
18
+ }catch(b){v["default"].warn(b)}}},b.prototype.updateDisplay=function(){var a=this.player_.getChild("textTrackDisplay");a&&a.updateDisplay()},b}(o["default"]);o["default"].registerComponent("TextTrackSettings",I),c["default"]=I},{5:5,81:81,83:83,86:86,88:88,95:95}],72:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(67),j=e(i),k=a(83),l=d(k),m=a(73),n=a(86),o=e(n),p=a(95),q=e(p),r=a(75),s=e(r),t=a(92),u=a(104),v=e(u),w=a(87),x=e(w),y=a(78),z=d(y),A=function(a,b){var c=new q["default"].WebVTT.Parser(q["default"],q["default"].vttjs,q["default"].WebVTT.StringDecoder()),d=[];c.oncue=function(a){b.addCue(a)},c.onparsingerror=function(a){d.push(a)},c.onflush=function(){b.trigger({type:"loadeddata",target:b})},c.parse(a),d.length>0&&(q["default"].console&&q["default"].console.groupCollapsed&&q["default"].console.groupCollapsed("Text Track parsing errors for "+b.src),d.forEach(function(a){return o["default"].error(a)}),q["default"].console&&q["default"].console.groupEnd&&q["default"].console.groupEnd()),c.flush()},B=function(a,b){var c={uri:a},d=(0,t.isCrossOrigin)(a);d&&(c.cors=d),(0,v["default"])(c,l.bind(this,function(a,c,d){if(a)return o["default"].error(a,c);if(b.loaded_=!0,"function"!=typeof q["default"].WebVTT){if(b.tech_){var e=function(){return A(d,b)};b.tech_.on("vttjsloaded",e),b.tech_.on("vttjserror",function(){o["default"].error("vttjs failed to load, stopping trying to process "+b.src),b.tech_.off("vttjsloaded",e)})}}else A(d,b)}))},C=function(a){function b(){var c,d,e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(f(this,b),!e.tech)throw new Error("A tech was not provided.");var h=(0,x["default"])(e,{kind:m.TextTrackKind[e.kind]||"subtitles",language:e.language||e.srclang||""}),i=m.TextTrackMode[h.mode]||"disabled",k=h["default"];"metadata"!==h.kind&&"chapters"!==h.kind||(i="hidden");var n=c=g(this,a.call(this,h));if(n.tech_=h.tech,z.IS_IE8)for(var o in b.prototype)"constructor"!==o&&(n[o]=b.prototype[o]);n.cues_=[],n.activeCues_=[];var p=new j["default"](n.cues_),q=new j["default"](n.activeCues_),r=!1,s=l.bind(n,function(){this.activeCues,r&&(this.trigger("cuechange"),r=!1)});return"disabled"!==i&&n.tech_.ready(function(){n.tech_.on("timeupdate",s)},!0),Object.defineProperty(n,"default",{get:function(){return k},set:function(){}}),Object.defineProperty(n,"mode",{get:function(){return i},set:function(a){var b=this;m.TextTrackMode[a]&&(i=a,"showing"===i&&this.tech_.ready(function(){b.tech_.on("timeupdate",s)},!0),this.trigger("modechange"))}}),Object.defineProperty(n,"cues",{get:function(){return this.loaded_?p:null},set:function(){}}),Object.defineProperty(n,"activeCues",{get:function(){if(!this.loaded_)return null;if(0===this.cues.length)return q;for(var a=this.tech_.currentTime(),b=[],c=0,d=this.cues.length;c<d;c++){var e=this.cues[c];e.startTime<=a&&e.endTime>=a?b.push(e):e.startTime===e.endTime&&e.startTime<=a&&e.startTime+.5>=a&&b.push(e)}if(r=!1,b.length!==this.activeCues_.length)r=!0;else for(var f=0;f<b.length;f++)-1===this.activeCues_.indexOf(b[f])&&(r=!0);return this.activeCues_=b,q.setCues_(this.activeCues_),q},set:function(){}}),h.src?(n.src=h.src,B(h.src,n)):n.loaded_=!0,d=n,g(c,d)}return h(b,a),b.prototype.addCue=function(a){var b=a;if(q["default"].vttjs&&!(a instanceof q["default"].vttjs.VTTCue)){b=new q["default"].vttjs.VTTCue(a.startTime,a.endTime,a.text);for(var c in a)c in b||(b[c]=a[c]);b.id=a.id,b.originalCue_=a}var d=this.tech_.textTracks();if(d)for(var e=0;e<d.length;e++)d[e]!==this&&d[e].removeCue(b);this.cues_.push(b),this.cues.setCues_(this.cues_)},b.prototype.removeCue=function(a){for(var b=this.cues_.length;b--;){var c=this.cues_[b];if(c===a||c.originalCue_&&c.originalCue_===a){this.cues_.splice(b,1),this.cues.setCues_(this.cues_);break}}},b}(s["default"]);C.prototype.allowedEvents_={cuechange:"cuechange"},c["default"]=C},{104:104,67:67,73:73,75:75,78:78,83:83,86:86,87:87,92:92,95:95}],73:[function(a,b,c){"use strict";c.__esModule=!0;c.VideoTrackKind={alternative:"alternative",captions:"captions",main:"main",sign:"sign",subtitles:"subtitles",commentary:"commentary"},c.AudioTrackKind={alternative:"alternative",descriptions:"descriptions",main:"main","main-desc":"main-desc",translation:"translation",commentary:"commentary"},c.TextTrackKind={subtitles:"subtitles",captions:"captions",descriptions:"descriptions",chapters:"chapters",metadata:"metadata"},c.TextTrackMode={disabled:"disabled",hidden:"hidden",showing:"showing"}},{}],74:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(42),i=d(h),j=a(78),k=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(j),l=a(94),m=d(l),n=function(a){function b(){var c,d=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[],g=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;e(this,b);var h=f(this,a.call(this));if(!g&&(g=h,k.IS_IE8)){g=m["default"].createElement("custom");for(var i in b.prototype)"constructor"!==i&&(g[i]=b.prototype[i])}g.tracks_=[],Object.defineProperty(g,"length",{get:function(){return this.tracks_.length}});for(var j=0;j<d.length;j++)g.addTrack_(d[j]);return c=g,f(h,c)}return g(b,a),b.prototype.addTrack_=function(a){var b=this.tracks_.length;""+b in this||Object.defineProperty(this,b,{get:function(){return this.tracks_[b]}}),-1===this.tracks_.indexOf(a)&&(this.tracks_.push(a),this.trigger({track:a,type:"addtrack"}))},b.prototype.removeTrack_=function(a){for(var b=void 0,c=0,d=this.length;c<d;c++)if(this[c]===a){b=this[c],b.off&&b.off(),this.tracks_.splice(c,1);break}b&&this.trigger({track:b,type:"removetrack"})},b.prototype.getTrackById=function(a){for(var b=null,c=0,d=this.length;c<d;c++){var e=this[c];if(e.id===a){b=e;break}}return b},b}(i["default"]);n.prototype.allowedEvents_={change:"change",addtrack:"addtrack",removetrack:"removetrack"};for(var o in n.prototype.allowedEvents_)n.prototype["on"+o]=null;c["default"]=n},{42:42,78:78,94:94}],75:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(78),j=e(i),k=a(94),l=d(k),m=a(85),n=e(m),o=a(42),p=d(o),q=function(a){function b(){var c,d=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};f(this,b);var e=g(this,a.call(this)),h=e;if(j.IS_IE8){h=l["default"].createElement("custom");for(var i in b.prototype)"constructor"!==i&&(h[i]=b.prototype[i])}var k={id:d.id||"vjs_track_"+n.newGUID(),kind:d.kind||"",label:d.label||"",language:d.language||""};for(var m in k)!function(a){Object.defineProperty(h,a,{get:function(){return k[a]},set:function(){}})}(m);return c=h,g(e,c)}return h(b,a),b}(p["default"]);c["default"]=q},{42:42,78:78,85:85,94:94}],76:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(74),i=d(h),j=a(78),k=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(j),l=a(94),m=d(l),n=function(a,b){for(var c=0;c<a.length;c++)b.id!==a[c].id&&(a[c].selected=!1)},o=function(a){function b(){var c,d,g=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];e(this,b);for(var h=void 0,j=g.length-1;j>=0;j--)if(g[j].selected){n(g,g[j]);break}if(k.IS_IE8){h=m["default"].createElement("custom");for(var l in i["default"].prototype)"constructor"!==l&&(h[l]=i["default"].prototype[l]);for(var o in b.prototype)"constructor"!==o&&(h[o]=b.prototype[o])}return h=c=f(this,a.call(this,g,h)),h.changing_=!1,Object.defineProperty(h,"selectedIndex",{get:function(){for(var a=0;a<this.length;a++)if(this[a].selected)return a;return-1},set:function(){}}),d=h,f(c,d)}return g(b,a),b.prototype.addTrack_=function(b){var c=this;b.selected&&n(this,b),a.prototype.addTrack_.call(this,b),b.addEventListener&&b.addEventListener("selectedchange",function(){c.changing_||(c.changing_=!0,n(c,b),c.changing_=!1,c.trigger("change"))})},b.prototype.addTrack=function(a){this.addTrack_(a)},b.prototype.removeTrack=function(b){a.prototype.removeTrack_.call(this,b)},b}(i["default"]);c["default"]=o},{74:74,78:78,94:94}],77:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(73),i=a(75),j=d(i),k=a(87),l=d(k),m=a(78),n=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(m),o=function(a){function b(){var c,d,g=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};e(this,b);var i=(0,l["default"])(g,{kind:h.VideoTrackKind[g.kind]||""}),j=c=f(this,a.call(this,i)),k=!1;if(n.IS_IE8)for(var m in b.prototype)"constructor"!==m&&(j[m]=b.prototype[m]);return Object.defineProperty(j,"selected",{get:function(){return k},set:function(a){"boolean"==typeof a&&a!==k&&(k=a,this.trigger("selectedchange"))}}),i.selected&&(j.selected=i.selected),d=j,f(c,d)}return g(b,a),b}(j["default"]);c["default"]=o},{73:73,75:75,78:78,87:87}],78:[function(a,b,c){"use strict";c.__esModule=!0,c.BACKGROUND_SIZE_SUPPORTED=c.TOUCH_ENABLED=c.IS_ANY_SAFARI=c.IS_SAFARI=c.IE_VERSION=c.IS_IE8=c.CHROME_VERSION=c.IS_CHROME=c.IS_EDGE=c.IS_FIREFOX=c.IS_NATIVE_ANDROID=c.IS_OLD_ANDROID=c.ANDROID_VERSION=c.IS_ANDROID=c.IOS_VERSION=c.IS_IOS=c.IS_IPOD=c.IS_IPHONE=c.IS_IPAD=undefined;var d=a(81),e=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(d),f=a(95),g=function(a){return a&&a.__esModule?a:{"default":a}}(f),h=g["default"].navigator&&g["default"].navigator.userAgent||"",i=/AppleWebKit\/([\d.]+)/i.exec(h),j=i?parseFloat(i.pop()):null,k=c.IS_IPAD=/iPad/i.test(h),l=c.IS_IPHONE=/iPhone/i.test(h)&&!k,m=c.IS_IPOD=/iPod/i.test(h),n=c.IS_IOS=l||k||m,o=(c.IOS_VERSION=function(){var a=h.match(/OS (\d+)_/i);return a&&a[1]?a[1]:null}(),c.IS_ANDROID=/Android/i.test(h)),p=c.ANDROID_VERSION=function(){var a=h.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!a)return null;var b=a[1]&&parseFloat(a[1]),c=a[2]&&parseFloat(a[2]);return b&&c?parseFloat(a[1]+"."+a[2]):b||null}(),q=(c.IS_OLD_ANDROID=o&&/webkit/i.test(h)&&p<2.3,c.IS_NATIVE_ANDROID=o&&p<5&&j<537,c.IS_FIREFOX=/Firefox/i.test(h),c.IS_EDGE=/Edge/i.test(h)),r=c.IS_CHROME=!q&&/Chrome/i.test(h),s=(c.CHROME_VERSION=function(){var a=h.match(/Chrome\/(\d+)/);return a&&a[1]?parseFloat(a[1]):null}(),c.IS_IE8=/MSIE\s8\.0/.test(h),c.IE_VERSION=function(){var a=/MSIE\s(\d+)\.\d/.exec(h),b=a&&parseFloat(a[1]);return!b&&/Trident\/7.0/i.test(h)&&/rv:11.0/.test(h)&&(b=11),b}(),c.IS_SAFARI=/Safari/i.test(h)&&!r&&!o&&!q);c.IS_ANY_SAFARI=s||n,c.TOUCH_ENABLED=e.isReal()&&("ontouchstart"in g["default"]||g["default"].DocumentTouch&&g["default"].document instanceof g["default"].DocumentTouch),c.BACKGROUND_SIZE_SUPPORTED=e.isReal()&&"backgroundSize"in g["default"].document.createElement("video").style},{81:81,95:95}],79:[function(a,b,c){"use strict";function d(a,b){var c=0,d=void 0,f=void 0;if(!b)return 0;a&&a.length||(a=(0,e.createTimeRange)(0,0));for(var g=0;g<a.length;g++)d=a.start(g),f=a.end(g),f>b&&(f=b),c+=f-d;return c/b}c.__esModule=!0,c.bufferedPercent=d;var e=a(90)},{90:90}],80:[function(a,b,c){"use strict";function d(a,b){if(!a||!b)return"";if("function"==typeof f["default"].getComputedStyle){var c=f["default"].getComputedStyle(a);return c?c[b]:""}return a.currentStyle[b]||""}c.__esModule=!0,c["default"]=d;var e=a(95),f=function(a){return a&&a.__esModule?a:{"default":a}}(e)},{95:95}],81:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){return"string"==typeof a&&/\S/.test(a)}function f(a){if(/\s/.test(a))throw new Error("class has illegal whitespace characters")}function g(a){return new RegExp("(^|\\s)"+a+"($|\\s)")}function h(){return L["default"]===N["default"].document&&"undefined"!=typeof L["default"].createElement}function i(a){return(0,U.isObject)(a)&&1===a.nodeType}function j(a){return function(b,c){if(!e(b))return L["default"][a](null);e(c)&&(c=L["default"].querySelector(c));var d=i(c)?c:L["default"];return d[a]&&d[a](b)}}function k(a){return 0===a.indexOf("#")&&(a=a.slice(1)),L["default"].getElementById(a)}function l(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"div",b=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},c=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{},d=arguments[3],e=L["default"].createElement(a);return Object.getOwnPropertyNames(b).forEach(function(a){var c=b[a];-1!==a.indexOf("aria-")||"role"===a||"type"===a?(R["default"].warn((0,T["default"])(J,a,c)),e.setAttribute(a,c)):"textContent"===a?m(e,c):e[a]=c}),Object.getOwnPropertyNames(c).forEach(function(a){e.setAttribute(a,c[a])}),d&&H(e,d),e}function m(a,b){return"undefined"==typeof a.textContent?a.innerText=b:a.textContent=b,a}function n(a,b){b.firstChild?b.insertBefore(a,b.firstChild):b.appendChild(a)}function o(a){var b=a[W];return b||(b=a[W]=P.newGUID()),V[b]||(V[b]={}),V[b]}function p(a){var b=a[W];return!!b&&!!Object.getOwnPropertyNames(V[b]).length}function q(a){var b=a[W];if(b){delete V[b];try{delete a[W]}catch(c){a.removeAttribute?a.removeAttribute(W):a[W]=null}}}function r(a,b){return f(b),a.classList?a.classList.contains(b):g(b).test(a.className)}function s(a,b){return a.classList?a.classList.add(b):r(a,b)||(a.className=(a.className+" "+b).trim()),a}function t(a,b){return a.classList?a.classList.remove(b):(f(b),a.className=a.className.split(/\s+/).filter(function(a){return a!==b}).join(" ")),a}function u(a,b,c){var d=r(a,b);if("function"==typeof c&&(c=c(a,b)),"boolean"!=typeof c&&(c=!d),c!==d)return c?s(a,b):t(a,b),a}function v(a,b){Object.getOwnPropertyNames(b).forEach(function(c){var d=b[c];null===d||void 0===d||!1===d?a.removeAttribute(c):a.setAttribute(c,!0===d?"":d)})}function w(a){var b={};if(a&&a.attributes&&a.attributes.length>0)for(var c=a.attributes,d=c.length-1;d>=0;d--){var e=c[d].name,f=c[d].value;"boolean"!=typeof a[e]&&-1===",autoplay,controls,playsinline,loop,muted,default,defaultMuted,".indexOf(","+e+",")||(f=null!==f),b[e]=f}return b}function x(a,b){return a.getAttribute(b)}function y(a,b,c){a.setAttribute(b,c)}function z(a,b){a.removeAttribute(b)}function A(){L["default"].body.focus(),L["default"].onselectstart=function(){return!1}}function B(){L["default"].onselectstart=function(){return!0}}function C(a){var b=void 0;if(a.getBoundingClientRect&&a.parentNode&&(b=a.getBoundingClientRect()),!b)return{left:0,top:0};var c=L["default"].documentElement,d=L["default"].body,e=c.clientLeft||d.clientLeft||0,f=N["default"].pageXOffset||d.scrollLeft,g=b.left+f-e,h=c.clientTop||d.clientTop||0,i=N["default"].pageYOffset||d.scrollTop,j=b.top+i-h;return{left:Math.round(g),top:Math.round(j)}}function D(a,b){var c={},d=C(a),e=a.offsetWidth,f=a.offsetHeight,g=d.top,h=d.left,i=b.pageY,j=b.pageX;return b.changedTouches&&(j=b.changedTouches[0].pageX,i=b.changedTouches[0].pageY),c.y=Math.max(0,Math.min(1,(g-i+f)/f)),c.x=Math.max(0,Math.min(1,(j-h)/e)),c}function E(a){return(0,U.isObject)(a)&&3===a.nodeType}function F(a){for(;a.firstChild;)a.removeChild(a.firstChild);return a}function G(a){return"function"==typeof a&&(a=a()),(Array.isArray(a)?a:[a]).map(function(a){return"function"==typeof a&&(a=a()),i(a)||E(a)?a:"string"==typeof a&&/\S/.test(a)?L["default"].createTextNode(a):void 0}).filter(function(a){return a})}function H(a,b){return G(b).forEach(function(b){return a.appendChild(b)}),a}function I(a,b){return H(F(a),b)}c.__esModule=!0,c.$$=c.$=undefined;var J=function(a,b){return a.raw=b,a}(["Setting attributes in the second argument of createEl()\n has been deprecated. Use the third argument instead.\n createEl(type, properties, attributes). Attempting to set "," to ","."],["Setting attributes in the second argument of createEl()\n has been deprecated. Use the third argument instead.\n createEl(type, properties, attributes). Attempting to set "," to ","."]);c.isReal=h,c.isEl=i,c.getEl=k,c.createEl=l,c.textContent=m,c.insertElFirst=n,c.getElData=o,c.hasElData=p,c.removeElData=q,c.hasElClass=r,c.addElClass=s,c.removeElClass=t,c.toggleElClass=u,c.setElAttributes=v,c.getElAttributes=w,c.getAttribute=x,c.setAttribute=y,c.removeAttribute=z,c.blockTextSelection=A,c.unblockTextSelection=B,c.findElPosition=C,c.getPointerPosition=D,c.isTextNode=E,c.emptyEl=F,c.normalizeContent=G,c.appendContent=H,c.insertContent=I;var K=a(94),L=d(K),M=a(95),N=d(M),O=a(85),P=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}(O),Q=a(86),R=d(Q),S=a(98),T=d(S),U=a(88),V={},W="vdata"+(new Date).getTime();c.$=j("querySelector"),c.$$=j("querySelectorAll")},{85:85,86:86,88:88,94:94,95:95,98:98}],82:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b){var c=n.getElData(a);0===c.handlers[b].length&&(delete c.handlers[b],a.removeEventListener?a.removeEventListener(b,c.dispatcher,!1):a.detachEvent&&a.detachEvent("on"+b,c.dispatcher)),Object.getOwnPropertyNames(c.handlers).length<=0&&(delete c.handlers,delete c.dispatcher,delete c.disabled),0===Object.getOwnPropertyNames(c).length&&n.removeElData(a)}function g(a,b,c,d){c.forEach(function(c){a(b,c,d)})}function h(a){function b(){return!0}function c(){return!1}if(!a||!a.isPropagationStopped){var d=a||t["default"].event;a={};for(var e in d)"layerX"!==e&&"layerY"!==e&&"keyLocation"!==e&&"webkitMovementX"!==e&&"webkitMovementY"!==e&&("returnValue"===e&&d.preventDefault||(a[e]=d[e]));if(a.target||(a.target=a.srcElement||v["default"]),a.relatedTarget||(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement),a.preventDefault=function(){d.preventDefault&&d.preventDefault(),a.returnValue=!1,d.returnValue=!1,a.defaultPrevented=!0},a.defaultPrevented=!1,a.stopPropagation=function(){d.stopPropagation&&d.stopPropagation(),a.cancelBubble=!0,d.cancelBubble=!0,a.isPropagationStopped=b},a.isPropagationStopped=c,a.stopImmediatePropagation=function(){d.stopImmediatePropagation&&d.stopImmediatePropagation(),a.isImmediatePropagationStopped=b,a.stopPropagation()},a.isImmediatePropagationStopped=c,null!==a.clientX&&a.clientX!==undefined){var f=v["default"].documentElement,g=v["default"].body;a.pageX=a.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=a.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)}a.which=a.charCode||a.keyCode,null!==a.button&&a.button!==undefined&&(a.button=1&a.button?0:4&a.button?1:2&a.button?2:0)}return a}function i(a,b,c){if(Array.isArray(b))return g(i,a,b,c);var d=n.getElData(a);if(d.handlers||(d.handlers={}),d.handlers[b]||(d.handlers[b]=[]),c.guid||(c.guid=p.newGUID()),d.handlers[b].push(c),d.dispatcher||(d.disabled=!1,d.dispatcher=function(b,c){if(!d.disabled){b=h(b);var e=d.handlers[b.type];if(e)for(var f=e.slice(0),g=0,i=f.length;g<i&&!b.isImmediatePropagationStopped();g++)try{f[g].call(a,b,c)}catch(j){r["default"].error(j)}}}),1===d.handlers[b].length)if(a.addEventListener){var e=!1;w&&x.indexOf(b)>-1&&(e={passive:!0}),a.addEventListener(b,d.dispatcher,e)}else a.attachEvent&&a.attachEvent("on"+b,d.dispatcher)}function j(a,b,c){if(n.hasElData(a)){var d=n.getElData(a);if(d.handlers){if(Array.isArray(b))return g(j,a,b,c);var e=function(b){d.handlers[b]=[],f(a,b)};if(b){var h=d.handlers[b];if(h){if(!c)return void e(b);if(c.guid)for(var i=0;i<h.length;i++)h[i].guid===c.guid&&h.splice(i--,1);f(a,b)}}else for(var k in d.handlers)e(k)}}}function k(a,b,c){var d=n.hasElData(a)?n.getElData(a):{},e=a.parentNode||a.ownerDocument;if("string"==typeof b&&(b={type:b,target:a}),b=h(b),d.dispatcher&&d.dispatcher.call(a,b,c),e&&!b.isPropagationStopped()&&!0===b.bubbles)k.call(null,e,b,c);else if(!e&&!b.defaultPrevented){var f=n.getElData(b.target);b.target[b.type]&&(f.disabled=!0,"function"==typeof b.target[b.type]&&b.target[b.type](),f.disabled=!1)}return!b.defaultPrevented}function l(a,b,c){if(Array.isArray(b))return g(l,a,b,c);var d=function e(){j(a,b,e),c.apply(this,arguments)};d.guid=c.guid=c.guid||p.newGUID(),i(a,b,d)}c.__esModule=!0,c.fixEvent=h,c.on=i,c.off=j,c.trigger=k,c.one=l;var m=a(81),n=e(m),o=a(85),p=e(o),q=a(86),r=d(q),s=a(95),t=d(s),u=a(94),v=d(u),w=!1;!function(){try{var a=Object.defineProperty({},"passive",{get:function(){w=!0}});t["default"].addEventListener("test",null,a)}catch(b){}}();var x=["touchstart","touchmove"]},{81:81,85:85,86:86,94:94,95:95}],83:[function(a,b,c){"use strict";c.__esModule=!0,c.throttle=c.bind=undefined;var d=a(85);c.bind=function(a,b,c){b.guid||(b.guid=(0,d.newGUID)());var e=function(){return b.apply(a,arguments)};return e.guid=c?c+"_"+b.guid:b.guid,e},c.throttle=function(a,b){var c=Date.now();return function(){var d=Date.now();d-c>=b&&(a.apply(undefined,arguments),c=d)}}},{85:85}],84:[function(a,b,c){"use strict";function d(a){var b=arguments.length>1&&arguments[1]!==undefined?arguments[1]:a;a=a<0?0:a;var c=Math.floor(a%60),d=Math.floor(a/60%60),e=Math.floor(a/3600),f=Math.floor(b/60%60),g=Math.floor(b/3600);return(isNaN(a)||a===Infinity)&&(e=d=c="-"),e=e>0||g>0?e+":":"",d=((e||f>=10)&&d<10?"0"+d:d)+":",c=c<10?"0"+c:c,e+d+c}c.__esModule=!0,c["default"]=d},{}],85:[function(a,b,c){"use strict";function d(){return e++}c.__esModule=!0,c.newGUID=d;var e=1},{}],86:[function(a,b,c){"use strict";c.__esModule=!0,c.logByType=undefined;var d=a(95),e=function(a){return a&&a.__esModule?a:{"default":a}}(d),f=a(78),g=a(88),h=void 0,i=c.logByType=function(a,b){var c=arguments.length>2&&arguments[2]!==undefined?arguments[2]:!!f.IE_VERSION&&f.IE_VERSION<11;"log"!==a&&b.unshift(a.toUpperCase()+":"),h.history.push(b),b.unshift("VIDEOJS:");var d=e["default"].console&&e["default"].console[a];d&&(c&&(b=b.map(function(a){if((0,g.isObject)(a)||Array.isArray(a))try{return JSON.stringify(a)}catch(b){return String(a)}return String(a)}).join(" ")),d.apply?d[Array.isArray(b)?"apply":"call"](e["default"].console,b):d(b))};h=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];i("log",b)},h.history=[],h.error=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return i("error",b)},h.warn=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return i("warn",b)},c["default"]=h},{78:78,88:88,95:95}],87:[function(a,b,c){"use strict";function d(){for(var a={},b=arguments.length,c=Array(b),f=0;f<b;f++)c[f]=arguments[f];return c.forEach(function(b){b&&(0,e.each)(b,function(b,c){if(!(0,e.isPlain)(b))return void(a[c]=b);(0,e.isPlain)(a[c])||(a[c]={}),a[c]=d(a[c],b)})}),a}c.__esModule=!0,c["default"]=d;var e=a(88)},{88:88}],88:[function(a,b,c){"use strict";function d(a,b){k(a).forEach(function(c){return b(a[c],c)})}function e(a,b){var c=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;return k(a).reduce(function(c,d){return b(c,a[d],d)},c)}function f(a){for(var b=arguments.length,c=Array(b>1?b-1:0),e=1;e<b;e++)c[e-1]=arguments[e];return Object.assign?Object.assign.apply(Object,[a].concat(c)):(c.forEach(function(b){b&&d(b,function(b,c){a[c]=b})}),a)}function g(a){return!!a&&"object"===(void 0===a?"undefined":i(a))}function h(a){return g(a)&&"[object Object]"===j.call(a)&&a.constructor===Object}c.__esModule=!0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};c.each=d,c.reduce=e,c.assign=f,c.isObject=g,c.isPlain=h;var j=Object.prototype.toString,k=function(a){return g(a)?Object.keys(a):[]}},{}],89:[function(a,b,c){"use strict";c.__esModule=!0,c.setTextContent=c.createStyleElement=undefined;var d=a(94),e=function(a){return a&&a.__esModule?a:{"default":a}}(d);c.createStyleElement=function(a){var b=e["default"].createElement("style");return b.className=a,b},c.setTextContent=function(a,b){a.styleSheet?a.styleSheet.cssText=b:a.textContent=b}},{94:94}],90:[function(a,b,c){"use strict";function d(a,b,c){if(b<0||b>c)throw new Error("Failed to execute '"+a+"' on 'TimeRanges': The index provided ("+b+") is greater than or equal to the maximum bound ("+c+").")}function e(a,b,c,e){return e===undefined&&(i["default"].warn("DEPRECATED: Function '"+a+"' on 'TimeRanges' called without an index argument."),e=0),d(a,e,c.length-1),c[e][b]}function f(a){return a===undefined||0===a.length?{length:0,start:function(){throw new Error("This TimeRanges object is empty")},end:function(){throw new Error("This TimeRanges object is empty")}}:{length:a.length,start:e.bind(null,"start",0,a),end:e.bind(null,"end",1,a)}}function g(a,b){return Array.isArray(a)?f(a):a===undefined||b===undefined?f():f([[a,b]])}c.__esModule=!0,c.createTimeRange=undefined,c.createTimeRanges=g;var h=a(86),i=function(a){return a&&a.__esModule?a:{"default":a}}(h);c.createTimeRange=g},{86:86}],91:[function(a,b,c){"use strict";function d(a){return"string"!=typeof a?a:a.charAt(0).toUpperCase()+a.slice(1)}c.__esModule=!0,c["default"]=d},{}],92:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0,c.isCrossOrigin=c.getFileExtension=c.getAbsoluteURL=c.parseUrl=undefined;var e=a(94),f=d(e),g=a(95),h=d(g),i=c.parseUrl=function(a){var b=["protocol","hostname","port","pathname","search","hash","host"],c=f["default"].createElement("a");c.href=a;var d=""===c.host&&"file:"!==c.protocol,e=void 0;d&&(e=f["default"].createElement("div"),e.innerHTML='<a href="'+a+'"></a>',c=e.firstChild,e.setAttribute("style","display:none; position:absolute;"),f["default"].body.appendChild(e));for(var g={},h=0;h<b.length;h++)g[b[h]]=c[b[h]];return"http:"===g.protocol&&(g.host=g.host.replace(/:80$/,"")),"https:"===g.protocol&&(g.host=g.host.replace(/:443$/,"")),d&&f["default"].body.removeChild(e),g};c.getAbsoluteURL=function(a){if(!a.match(/^https?:\/\//)){var b=f["default"].createElement("div");b.innerHTML='<a href="'+a+'">x</a>',a=b.firstChild.href}return a},c.getFileExtension=function(a){if("string"==typeof a){var b=/^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/i,c=b.exec(a);if(c)return c.pop().toLowerCase()}return""},c.isCrossOrigin=function(a){var b=h["default"].location,c=i(a);return(":"===c.protocol?b.protocol:c.protocol)+c.host!==b.protocol+b.host}},{94:94,95:95}],93:[function(b,c,d){"use strict";function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a){return a&&a.__esModule?a:{"default":a}}function g(a,b,c){var d=void 0;if("string"==typeof a){if(0===a.indexOf("#")&&(a=a.slice(1)),g.getPlayers()[a])return b&&S["default"].warn('Player "'+a+'" is already initialised. Options will not be applied.'),c&&g.getPlayers()[a].ready(c),g.getPlayers()[a];d=p.getEl(a)}else d=a;if(!d||!d.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");if(d.player||B["default"].players[d.playerId])return d.player||B["default"].players[d.playerId];b=b||{},g.hooks("beforesetup").forEach(function(a){var c=a(d,(0,F["default"])(b));if(!(0,V.isObject)(c)||Array.isArray(c))return void S["default"].error("please return an object in beforesetup hooks");b=(0,F["default"])(b,c)});var e=v["default"].getComponent("Player"),f=new e(d,b,c);return g.hooks("setup").forEach(function(a){return a(f)}),f}d.__esModule=!0;var h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},i=b(95),j=f(i),k=b(94),l=f(k),m=b(78),n=e(m),o=b(81),p=e(o),q=b(56),r=e(q),s=b(89),t=e(s),u=b(5),v=f(u),w=b(42),x=f(w),y=b(82),z=e(y),A=b(51),B=f(A),C=b(52),D=f(C),E=b(87),F=f(E),G=b(83),H=e(G),I=b(72),J=f(I),K=b(64),L=f(K),M=b(77),N=f(M),O=b(90),P=b(84),Q=f(P),R=b(86),S=f(R),T=b(92),U=e(T),V=b(88),W=b(80),X=f(W),Y=b(43),Z=f(Y),$=b(104),_=f($),aa=b(62),ba=f(aa);if("undefined"==typeof HTMLVideoElement&&p.isReal()&&(l["default"].createElement("video"),l["default"].createElement("audio"),l["default"].createElement("track")),g.hooks_={},g.hooks=function(a,b){return g.hooks_[a]=g.hooks_[a]||[],b&&(g.hooks_[a]=g.hooks_[a].concat(b)),g.hooks_[a]},g.hook=function(a,b){g.hooks(a,b)},g.removeHook=function(a,b){var c=g.hooks(a).indexOf(b);return!(c<=-1)&&(g.hooks_[a]=g.hooks_[a].slice(),g.hooks_[a].splice(c,1),!0)},!0!==j["default"].VIDEOJS_NO_DYNAMIC_STYLE&&p.isReal()){var ca=p.$(".vjs-styles-defaults");if(!ca){
19
  ca=t.createStyleElement("vjs-styles-defaults");var da=p.$("head");da&&da.insertBefore(ca,da.firstChild),t.setTextContent(ca,"\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n ")}}r.autoSetupTimeout(1,g),g.VERSION="5.20.5",g.options=B["default"].prototype.options_,g.getPlayers=function(){return B["default"].players},g.players=B["default"].players,g.getComponent=v["default"].getComponent,g.registerComponent=function(a,b){ba["default"].isTech(b)&&S["default"].warn("The "+a+" tech was registered as a component. It should instead be registered using videojs.registerTech(name, tech)"),v["default"].registerComponent.call(v["default"],a,b)},g.getTech=ba["default"].getTech,g.registerTech=ba["default"].registerTech,g.browser=n,g.TOUCH_ENABLED=n.TOUCH_ENABLED,g.extend=Z["default"],g.mergeOptions=F["default"],g.bind=H.bind,g.plugin=D["default"],g.addLanguage=function(a,b){var c;return a=(""+a).toLowerCase(),g.options.languages=(0,F["default"])(g.options.languages,(c={},c[a]=b,c)),g.options.languages[a]},g.log=S["default"],g.createTimeRange=g.createTimeRanges=O.createTimeRanges,g.formatTime=Q["default"],g.parseUrl=U.parseUrl,g.isCrossOrigin=U.isCrossOrigin,g.EventTarget=x["default"],g.on=z.on,g.one=z.one,g.off=z.off,g.trigger=z.trigger,g.xhr=_["default"],g.TextTrack=J["default"],g.AudioTrack=L["default"],g.VideoTrack=N["default"],g.isEl=p.isEl,g.isTextNode=p.isTextNode,g.createEl=p.createEl,g.hasClass=p.hasElClass,g.addClass=p.addElClass,g.removeClass=p.removeElClass,g.toggleClass=p.toggleElClass,g.setAttributes=p.setElAttributes,g.getAttributes=p.getElAttributes,g.emptyEl=p.emptyEl,g.appendContent=p.appendContent,g.insertContent=p.insertContent,g.computedStyle=X["default"],"function"==typeof a&&a.amd?a("videojs",[],function(){return g}):"object"===(void 0===d?"undefined":h(d))&&"object"===(void 0===c?"undef