Version Description
- June 22, 2016 =
- 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.
- Added option to pause other videos on the page when starting a new video (or disable it for WP Default player).
- Added option to always load plugin-related JavaScripts to support AJAX page loading.
- Added functionality to dynamically embed attached videos outside of the loop.
- Added check for changed filename extension if a video has been replaced by a different format but is still embedded using the old filename.
- Fixed bug that disabled styling for WordPress Default video players on the page when embedded after an audio file.
- Fixed bug that didn't record Video.js pop-up video gallery views or JW Player quarter playback stats.
- Fixed bug that prevented automatic clearing of old encode queue entries.
- Fixed bug that doubled non-H.264 video source tags.
- Fixed bug that prevented encoding 1080p and 720p H.264 videos if original video is not H.264 and has the same resolution.
- Improved iframe-embedded vertical video resizing.
- Changed iPhone play button to match Video.js button style.
- Tweaked embed code overlay styles.
- Set WordPress Default bottom margin to 0.
Download this release
Release Info
Developer | kylegilman |
Plugin | Video Embed & Thumbnail Generator |
Version | 4.6.8 |
Comparing to | |
See all releases |
Code changes from version 4.6.7 to 4.6.8
- css/kgvid_styles.css +12 -2
- js/kgvid_video_embed.js +59 -18
- js/kgvid_video_plugin_admin.js +62 -3
- js/mep-feature-sourcechooser.js +1 -1
- readme.txt +18 -2
- video-embed-thumbnail-generator.php +88 -56
- video-js/video-quality-selector.js +7 -1
css/kgvid_styles.css
CHANGED
@@ -233,8 +233,13 @@ input[type="text"].kgvid_embedcode {
|
|
233 |
width: 30% !important;
|
234 |
}
|
235 |
|
|
|
|
|
|
|
|
|
|
|
236 |
input[type="text"].kgvid_start_at {
|
237 |
-
width:
|
238 |
}
|
239 |
|
240 |
.kgvid_share_icons .kgvid_social_icons {
|
@@ -398,7 +403,7 @@ span.kgvid_facebook_icon_holder {
|
|
398 |
top: -22px;
|
399 |
}
|
400 |
|
401 |
-
#kgvid-simplemodal-container .wp-video {
|
402 |
margin-bottom: 0px;
|
403 |
}
|
404 |
|
@@ -494,6 +499,11 @@ ul li.vjs-menu-title.vjs-res-menu-title:hover {
|
|
494 |
z-index: 2;
|
495 |
}
|
496 |
|
|
|
|
|
|
|
|
|
|
|
497 |
/* mep-feature-sourcechooser plugin styles */
|
498 |
|
499 |
.kgvid_wrapper .mejs-controls div.mejs-sourcechooser-button button {
|
233 |
width: 30% !important;
|
234 |
}
|
235 |
|
236 |
+
span.kgvid_start_time {
|
237 |
+
margin-left: 15px;
|
238 |
+
white-space: nowrap;
|
239 |
+
}
|
240 |
+
|
241 |
input[type="text"].kgvid_start_at {
|
242 |
+
width: 3em; !important;
|
243 |
}
|
244 |
|
245 |
.kgvid_share_icons .kgvid_social_icons {
|
403 |
top: -22px;
|
404 |
}
|
405 |
|
406 |
+
#kgvid-simplemodal-container .wp-video, .kgvid_wrapper .wp-video {
|
407 |
margin-bottom: 0px;
|
408 |
}
|
409 |
|
499 |
z-index: 2;
|
500 |
}
|
501 |
|
502 |
+
/* fix iPhone play button */
|
503 |
+
.kgvid_wrapper video::-webkit-media-controls-start-playback-button { display: none; }
|
504 |
+
.kgvid_wrapper .video-js.vjs-controls-enabled .vjs-big-play-button { display: none; }
|
505 |
+
.kgvid_wrapper .video-js.vjs-controls-enabled.vjs-paused .vjs-big-play-button { display: block; }
|
506 |
+
|
507 |
/* mep-feature-sourcechooser plugin styles */
|
508 |
|
509 |
.kgvid_wrapper .mejs-controls div.mejs-sourcechooser-button button {
|
js/kgvid_video_embed.js
CHANGED
@@ -70,8 +70,12 @@ function kgvid_window_load() {
|
|
70 |
}
|
71 |
|
72 |
function kgvid_mejs_success(mediaElement, domObject) {
|
73 |
-
|
74 |
-
|
|
|
|
|
|
|
|
|
75 |
}
|
76 |
|
77 |
function kgvid_convert_to_timecode(time) {
|
@@ -196,11 +200,11 @@ function kgvid_SetVideo(id) { //for galleries
|
|
196 |
jQuery(document).on('keydown.kgvid', function(e) {
|
197 |
switch(e.which) {
|
198 |
case 37: // left
|
199 |
-
jQuery('.kgvid_gallery_prev').click()
|
200 |
break;
|
201 |
|
202 |
case 39: // right
|
203 |
-
jQuery('.kgvid_gallery_next').click()
|
204 |
break;
|
205 |
|
206 |
default: return; // exit this handler for other keys
|
@@ -233,11 +237,6 @@ function kgvid_SetVideo(id) { //for galleries
|
|
233 |
jQuery.modal.setPosition();
|
234 |
}
|
235 |
|
236 |
-
if ( video_vars.player_type == "Video.js" ) {
|
237 |
-
videojs('video_'+id).load();
|
238 |
-
videojs('video_'+id).play();
|
239 |
-
}//end if Video.js
|
240 |
-
|
241 |
if ( video_vars.player_type == "WordPressDefault" ) {
|
242 |
jQuery('#kgvid_'+id+'_wrapper video').mediaelementplayer({
|
243 |
success: function(mediaElement, domObject) {
|
@@ -388,6 +387,14 @@ function kgvid_setup_video(id) {
|
|
388 |
if ( video_vars.autoplay == "true" ) { jQuery('#video_'+id+' > .vjs-control-bar').removeClass('vjs-fade-in'); }
|
389 |
if ( video_vars.endofvideooverlay != "" ) { jQuery('#video_'+id+' > .vjs-poster').hide(); }
|
390 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
391 |
kgvid_video_counter(id, 'play');
|
392 |
|
393 |
player.on('timeupdate', function(){
|
@@ -491,6 +498,7 @@ function kgvid_setup_video(id) {
|
|
491 |
|
492 |
if ( video_vars.set_volume != "" ) { player[0].volume = video_vars.set_volume; }
|
493 |
if ( video_vars.mute == "true" ) { player[0].setMuted(true); }
|
|
|
494 |
jQuery('#video_'+id+'_div .mejs-container').append(jQuery('#video_'+id+'_watermark'));
|
495 |
|
496 |
if ( played == "not played" ) { //only turn on the default captions on first load
|
@@ -589,17 +597,34 @@ function kgvid_setup_video(id) {
|
|
589 |
jQuery('#video_'+id+'_meta').removeClass('kgvid_video_meta_hover');
|
590 |
}
|
591 |
|
592 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
593 |
|
594 |
-
if ( jQuery('#video_'+id+'_div').data("25") == undefined && Math.round(
|
595 |
jQuery('#video_'+id+'_div').data("25", true);
|
596 |
kgvid_video_counter(id, '25');
|
597 |
}
|
598 |
-
else if ( jQuery('#video_'+id+'_div').data("50") == undefined && Math.round(
|
599 |
jQuery('#video_'+id+'_div').data("50", true);
|
600 |
kgvid_video_counter(id, '50');
|
601 |
}
|
602 |
-
else if ( jQuery('#video_'+id+'_div').data("75") == undefined && Math.round(
|
603 |
jQuery('#video_'+id+'_div').data("75", true);
|
604 |
kgvid_video_counter(id, '75');
|
605 |
|
@@ -652,7 +677,10 @@ function kgvid_resize_video(id) {
|
|
652 |
var window_width = jQuery(window).width();
|
653 |
var window_height = jQuery(window).height();
|
654 |
|
655 |
-
if ( reference_div.is('body') ) {
|
|
|
|
|
|
|
656 |
else if ( reference_div.attr('id') == 'kgvid_popup_video_holder_'+id ) { //if it's a pop-up video
|
657 |
parent_width = window_width-40;
|
658 |
}
|
@@ -667,18 +695,24 @@ function kgvid_resize_video(id) {
|
|
667 |
jQuery('#kgvid_'+id+'_wrapper').width(set_width);
|
668 |
var set_height = Math.round(set_width * aspect_ratio);
|
669 |
|
670 |
-
if ( reference_div.attr('id') == 'kgvid_popup_video_holder_'+id && set_height > window_height-60 ) {
|
671 |
set_height = window_height-60;
|
672 |
set_width = Math.round(set_height / aspect_ratio);
|
673 |
}
|
674 |
|
|
|
|
|
|
|
|
|
|
|
|
|
675 |
if ( ( video_vars.player_type == "Video.js" && eval('videojs.getPlayers()["video_'+id+'"]') != null ) ) {
|
676 |
|
677 |
video_vars.player_type == "Video.js"
|
678 |
|
679 |
var player = videojs('video_'+id);
|
|
|
680 |
player.width(set_width).height(set_height);
|
681 |
-
|
682 |
if ( set_width < 500 ) {
|
683 |
var scale = Math.round(100*set_width/500)/100;
|
684 |
jQuery('#kgvid_'+id+'_wrapper .vjs-big-play-button').css('-webkit-transform','scale('+scale+')').css('-o-transform','scale('+scale+')').css('-ms-transform','scale('+scale+')').css('transform','scale('+scale+')');
|
@@ -692,7 +726,7 @@ function kgvid_resize_video(id) {
|
|
692 |
}
|
693 |
}
|
694 |
}
|
695 |
-
else { jQuery('#kgvid_'+id+'_wrapper .vjs-big-play-button').
|
696 |
}
|
697 |
|
698 |
if ( video_vars.player_type == "StrobeMediaPlayback" ) {
|
@@ -702,9 +736,16 @@ function kgvid_resize_video(id) {
|
|
702 |
}
|
703 |
|
704 |
if ( video_vars.player_type == "WordPressDefault" ) {
|
|
|
|
|
|
|
705 |
if ( typeof mejs !== 'undefined' ) {
|
706 |
-
jQuery('#kgvid_'+id+'_wrapper').find('.wp-video').attr('style', 'width:'+set_width+'px;');
|
707 |
player = eval('mejs.players.'+jQuery('#kgvid_'+id+'_wrapper div.wp-video-shortcode').attr('id'));
|
|
|
|
|
|
|
|
|
|
|
708 |
}
|
709 |
}
|
710 |
|
70 |
}
|
71 |
|
72 |
function kgvid_mejs_success(mediaElement, domObject) {
|
73 |
+
if ( domObject.nodeName == "VIDEO" ) {
|
74 |
+
var id = jQuery(domObject).parents('.kgvid_videodiv').data('id');
|
75 |
+
if ( id != undefined ) { //make sure we're using KGVID shortcode
|
76 |
+
kgvid_setup_video(id);
|
77 |
+
}
|
78 |
+
}
|
79 |
}
|
80 |
|
81 |
function kgvid_convert_to_timecode(time) {
|
200 |
jQuery(document).on('keydown.kgvid', function(e) {
|
201 |
switch(e.which) {
|
202 |
case 37: // left
|
203 |
+
jQuery('.kgvid_gallery_prev').click();
|
204 |
break;
|
205 |
|
206 |
case 39: // right
|
207 |
+
jQuery('.kgvid_gallery_next').click();
|
208 |
break;
|
209 |
|
210 |
default: return; // exit this handler for other keys
|
237 |
jQuery.modal.setPosition();
|
238 |
}
|
239 |
|
|
|
|
|
|
|
|
|
|
|
240 |
if ( video_vars.player_type == "WordPressDefault" ) {
|
241 |
jQuery('#kgvid_'+id+'_wrapper video').mediaelementplayer({
|
242 |
success: function(mediaElement, domObject) {
|
387 |
if ( video_vars.autoplay == "true" ) { jQuery('#video_'+id+' > .vjs-control-bar').removeClass('vjs-fade-in'); }
|
388 |
if ( video_vars.endofvideooverlay != "" ) { jQuery('#video_'+id+' > .vjs-poster').hide(); }
|
389 |
|
390 |
+
if ( video_vars.pauseothervideos == "true" ) {
|
391 |
+
jQuery.each(videojs.getPlayers(), function(otherPlayerId, otherPlayer) {
|
392 |
+
if ( player.id() != otherPlayerId && !otherPlayer.paused() && !otherPlayer.autoplay() ) {
|
393 |
+
otherPlayer.pause();
|
394 |
+
}
|
395 |
+
});
|
396 |
+
}
|
397 |
+
|
398 |
kgvid_video_counter(id, 'play');
|
399 |
|
400 |
player.on('timeupdate', function(){
|
498 |
|
499 |
if ( video_vars.set_volume != "" ) { player[0].volume = video_vars.set_volume; }
|
500 |
if ( video_vars.mute == "true" ) { player[0].setMuted(true); }
|
501 |
+
if ( video_vars.pauseothervideos == "false" ) { mejs_player.options.pauseOtherPlayers = false; }
|
502 |
jQuery('#video_'+id+'_div .mejs-container').append(jQuery('#video_'+id+'_watermark'));
|
503 |
|
504 |
if ( played == "not played" ) { //only turn on the default captions on first load
|
597 |
jQuery('#video_'+id+'_meta').removeClass('kgvid_video_meta_hover');
|
598 |
}
|
599 |
|
600 |
+
if ( video_vars.pauseothervideos == "true" ) {
|
601 |
+
var i = 0;
|
602 |
+
while (true) {
|
603 |
+
var testplayer = jwplayer(i);
|
604 |
+
if (!testplayer.id) {
|
605 |
+
break;
|
606 |
+
}
|
607 |
+
else if ( testplayer.id == player.id ) {
|
608 |
+
i++;
|
609 |
+
}
|
610 |
+
else {
|
611 |
+
testplayer.pause(true);
|
612 |
+
i++;
|
613 |
+
}
|
614 |
+
}//end loop through jwplayers
|
615 |
+
}
|
616 |
+
|
617 |
+
player.onTime( function(e){
|
618 |
|
619 |
+
if ( jQuery('#video_'+id+'_div').data("25") == undefined && Math.round(e.position / e.duration * 100) == 25 ) {
|
620 |
jQuery('#video_'+id+'_div').data("25", true);
|
621 |
kgvid_video_counter(id, '25');
|
622 |
}
|
623 |
+
else if ( jQuery('#video_'+id+'_div').data("50") == undefined && Math.round(e.position / e.duration * 100) == 50 ) {
|
624 |
jQuery('#video_'+id+'_div').data("50", true);
|
625 |
kgvid_video_counter(id, '50');
|
626 |
}
|
627 |
+
else if ( jQuery('#video_'+id+'_div').data("75") == undefined && Math.round(e.position / e.duration * 100) == 75 ) {
|
628 |
jQuery('#video_'+id+'_div').data("75", true);
|
629 |
kgvid_video_counter(id, '75');
|
630 |
|
677 |
var window_width = jQuery(window).width();
|
678 |
var window_height = jQuery(window).height();
|
679 |
|
680 |
+
if ( reference_div.is('body') ) { //if the video is embedded
|
681 |
+
parent_width = window.innerWidth;
|
682 |
+
set_width = window.innerWidth;
|
683 |
+
}
|
684 |
else if ( reference_div.attr('id') == 'kgvid_popup_video_holder_'+id ) { //if it's a pop-up video
|
685 |
parent_width = window_width-40;
|
686 |
}
|
695 |
jQuery('#kgvid_'+id+'_wrapper').width(set_width);
|
696 |
var set_height = Math.round(set_width * aspect_ratio);
|
697 |
|
698 |
+
if ( reference_div.attr('id') == 'kgvid_popup_video_holder_'+id && set_height > window_height-60 ) { //if it's a popup video
|
699 |
set_height = window_height-60;
|
700 |
set_width = Math.round(set_height / aspect_ratio);
|
701 |
}
|
702 |
|
703 |
+
if ( reference_div.is('body') && set_height > window.innerHeight ) { //if it's a tall embedded video
|
704 |
+
set_height = window.innerHeight;
|
705 |
+
var change_aspect = true;
|
706 |
+
|
707 |
+
} //if the video is embedded
|
708 |
+
|
709 |
if ( ( video_vars.player_type == "Video.js" && eval('videojs.getPlayers()["video_'+id+'"]') != null ) ) {
|
710 |
|
711 |
video_vars.player_type == "Video.js"
|
712 |
|
713 |
var player = videojs('video_'+id);
|
714 |
+
if ( change_aspect ) { player.aspectRatio(Math.floor(set_width)+':'+Math.floor(set_height)); }
|
715 |
player.width(set_width).height(set_height);
|
|
|
716 |
if ( set_width < 500 ) {
|
717 |
var scale = Math.round(100*set_width/500)/100;
|
718 |
jQuery('#kgvid_'+id+'_wrapper .vjs-big-play-button').css('-webkit-transform','scale('+scale+')').css('-o-transform','scale('+scale+')').css('-ms-transform','scale('+scale+')').css('transform','scale('+scale+')');
|
726 |
}
|
727 |
}
|
728 |
}
|
729 |
+
else { jQuery('#kgvid_'+id+'_wrapper .vjs-big-play-button').css('transform', ''); }
|
730 |
}
|
731 |
|
732 |
if ( video_vars.player_type == "StrobeMediaPlayback" ) {
|
736 |
}
|
737 |
|
738 |
if ( video_vars.player_type == "WordPressDefault" ) {
|
739 |
+
|
740 |
+
jQuery('#kgvid_'+id+'_wrapper .wp-video').css('width', set_width+'px');
|
741 |
+
|
742 |
if ( typeof mejs !== 'undefined' ) {
|
|
|
743 |
player = eval('mejs.players.'+jQuery('#kgvid_'+id+'_wrapper div.wp-video-shortcode').attr('id'));
|
744 |
+
if ( change_aspect ) {
|
745 |
+
player.options.setDimensions = false;
|
746 |
+
jQuery('#kgvid_'+id+'_wrapper div.wp-video-shortcode').css('height', set_height+'px');
|
747 |
+
}
|
748 |
+
|
749 |
}
|
750 |
}
|
751 |
|
js/kgvid_video_plugin_admin.js
CHANGED
@@ -142,6 +142,7 @@ function kgvid_thumb_video_loaded(postID) { //sets up mini custom player for mak
|
|
142 |
else {
|
143 |
// Pause the video
|
144 |
video.pause();
|
|
|
145 |
}
|
146 |
});
|
147 |
|
@@ -198,6 +199,62 @@ function kgvid_thumb_video_loaded(postID) { //sets up mini custom player for mak
|
|
198 |
video.currentTime = maxduration * percentage / 100;
|
199 |
};
|
200 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
jQuery(video).data('setup', true);
|
202 |
if ( jQuery(video).data('busy') != true ) { kgvid_break_video_on_close(postID); }
|
203 |
}
|
@@ -244,7 +301,7 @@ function kgvid_reveal_thumb_video(postID) {
|
|
244 |
|
245 |
if ( video.networkState == 1 || video.networkState == 2 ) {
|
246 |
text.html(kgvidL10n.hidevideo);
|
247 |
-
jQuery('#attachments-'+postID+'-thumbnailplaceholder').
|
248 |
jQuery('#thumb-video-'+postID).on('timeupdate.kgvid', function() {
|
249 |
if (document.getElementById('thumb-video-'+postID).currentTime != 0) {
|
250 |
var thumbtimecode = kgvid_convert_to_timecode(document.getElementById('thumb-video-'+postID).currentTime);
|
@@ -263,6 +320,10 @@ function kgvid_reveal_thumb_video(postID) {
|
|
263 |
kgvid_break_video_on_close(postID);
|
264 |
text.html(kgvidL10n.choosefromvideo);
|
265 |
|
|
|
|
|
|
|
|
|
266 |
}
|
267 |
jQuery('#thumb-video-'+postID+'-player').animate({opacity: 'toggle', height: 'toggle'}, 500);
|
268 |
jQuery('#generate-thumb-'+postID+'-container').animate({opacity: 'toggle', height: 'toggle'}, 500);
|
@@ -1318,14 +1379,12 @@ function kgvid_hide_plugin_settings() {
|
|
1318 |
if ( playback_option == "WordPress Default" || playback_option == "JW Player" ) {
|
1319 |
jQuery('#nativecontrolsfortouch').parents().eq(1).hide();
|
1320 |
jQuery('#js_skin').parents().eq(1).hide();
|
1321 |
-
jQuery('#chromecast').parents().eq(1).hide();
|
1322 |
jQuery('#resize_div').hide();
|
1323 |
}
|
1324 |
|
1325 |
if ( playback_option == "Video.js" || playback_option == "Strobe Media Playback" ) {
|
1326 |
jQuery('#nativecontrolsfortouch').parents().eq(1).show();
|
1327 |
jQuery('#js_skin').parents().eq(1).show();
|
1328 |
-
jQuery('#chromecast').parents().eq(1).show();
|
1329 |
jQuery('#auto_res').parents().eq(1).show();
|
1330 |
jQuery('#resize_div').show();
|
1331 |
}
|
142 |
else {
|
143 |
// Pause the video
|
144 |
video.pause();
|
145 |
+
video.playbackRate = 1;
|
146 |
}
|
147 |
});
|
148 |
|
199 |
video.currentTime = maxduration * percentage / 100;
|
200 |
};
|
201 |
|
202 |
+
jQuery(video).on('loadedmetadata', function() {
|
203 |
+
video.currentTime = kgvid_convert_from_timecode(jQuery('#attachments-'+postID+'-kgflashmediaplayer-thumbtime').val());
|
204 |
+
});
|
205 |
+
|
206 |
+
jQuery('.kgvid-video-controls').on('keydown.kgvid', function(e) {
|
207 |
+
|
208 |
+
e.stopImmediatePropagation();
|
209 |
+
|
210 |
+
switch(e.which) {
|
211 |
+
case 32: // spacebar
|
212 |
+
playButton.click();
|
213 |
+
break;
|
214 |
+
|
215 |
+
case 37: // left
|
216 |
+
video.pause();
|
217 |
+
video.currentTime = video.currentTime - 0.042;
|
218 |
+
break;
|
219 |
+
|
220 |
+
case 39: // right
|
221 |
+
video.pause();
|
222 |
+
video.currentTime = video.currentTime + 0.042;
|
223 |
+
break;
|
224 |
+
|
225 |
+
case 74: //j
|
226 |
+
if ( video.paused == false ) {
|
227 |
+
video.playbackRate = video.playbackRate - 1;
|
228 |
+
}
|
229 |
+
if ( video.playbackRate >= 0 ) { video.playbackRate = -1; }
|
230 |
+
video.play();
|
231 |
+
break;
|
232 |
+
|
233 |
+
case 75: // k
|
234 |
+
if ( video.paused == false ) { playButton.click(); }
|
235 |
+
break;
|
236 |
+
|
237 |
+
case 76: //l
|
238 |
+
if ( video.paused == false ) {
|
239 |
+
video.playbackRate = video.playbackRate + 1;
|
240 |
+
}
|
241 |
+
if ( video.playbackRate <= 0 ) { video.playbackRate = 1; }
|
242 |
+
video.play();
|
243 |
+
break;
|
244 |
+
|
245 |
+
default: return; // exit this handler for other keys
|
246 |
+
}
|
247 |
+
e.preventDefault(); // prevent the default action (scroll / move caret)
|
248 |
+
});
|
249 |
+
|
250 |
+
jQuery(video).click( function(e){
|
251 |
+
e.stopImmediatePropagation();
|
252 |
+
playButton.click();
|
253 |
+
jQuery('.kgvid-video-controls').focus();
|
254 |
+
});
|
255 |
+
|
256 |
+
jQuery('.kgvid-video-controls').focus();
|
257 |
+
|
258 |
jQuery(video).data('setup', true);
|
259 |
if ( jQuery(video).data('busy') != true ) { kgvid_break_video_on_close(postID); }
|
260 |
}
|
301 |
|
302 |
if ( video.networkState == 1 || video.networkState == 2 ) {
|
303 |
text.html(kgvidL10n.hidevideo);
|
304 |
+
jQuery('#attachments-'+postID+'-thumbnailplaceholder').slideUp();
|
305 |
jQuery('#thumb-video-'+postID).on('timeupdate.kgvid', function() {
|
306 |
if (document.getElementById('thumb-video-'+postID).currentTime != 0) {
|
307 |
var thumbtimecode = kgvid_convert_to_timecode(document.getElementById('thumb-video-'+postID).currentTime);
|
320 |
kgvid_break_video_on_close(postID);
|
321 |
text.html(kgvidL10n.choosefromvideo);
|
322 |
|
323 |
+
if ( jQuery('#attachments-'+postID+'-thumbnailplaceholder').is(":visible") == false ) {
|
324 |
+
jQuery('#attachments-'+postID+'-thumbnailplaceholder').slideDown();
|
325 |
+
}
|
326 |
+
|
327 |
}
|
328 |
jQuery('#thumb-video-'+postID+'-player').animate({opacity: 'toggle', height: 'toggle'}, 500);
|
329 |
jQuery('#generate-thumb-'+postID+'-container').animate({opacity: 'toggle', height: 'toggle'}, 500);
|
1379 |
if ( playback_option == "WordPress Default" || playback_option == "JW Player" ) {
|
1380 |
jQuery('#nativecontrolsfortouch').parents().eq(1).hide();
|
1381 |
jQuery('#js_skin').parents().eq(1).hide();
|
|
|
1382 |
jQuery('#resize_div').hide();
|
1383 |
}
|
1384 |
|
1385 |
if ( playback_option == "Video.js" || playback_option == "Strobe Media Playback" ) {
|
1386 |
jQuery('#nativecontrolsfortouch').parents().eq(1).show();
|
1387 |
jQuery('#js_skin').parents().eq(1).show();
|
|
|
1388 |
jQuery('#auto_res').parents().eq(1).show();
|
1389 |
jQuery('#resize_div').show();
|
1390 |
}
|
js/mep-feature-sourcechooser.js
CHANGED
@@ -111,7 +111,6 @@
|
|
111 |
var currentTime = media.currentTime;
|
112 |
var paused = media.paused;
|
113 |
media.pause();
|
114 |
-
|
115 |
if ( currentTime != 0 ) {
|
116 |
var canvas = document.createElement("canvas");
|
117 |
canvas.className = 'kgvid_temp_thumb';
|
@@ -140,6 +139,7 @@
|
|
140 |
if (!paused) {
|
141 |
media.play();
|
142 |
}
|
|
|
143 |
media.removeEventListener('canplay', canPlayAfterSourceSwitchHandler, true);
|
144 |
};
|
145 |
media.addEventListener('canplay', canPlayAfterSourceSwitchHandler, true);
|
111 |
var currentTime = media.currentTime;
|
112 |
var paused = media.paused;
|
113 |
media.pause();
|
|
|
114 |
if ( currentTime != 0 ) {
|
115 |
var canvas = document.createElement("canvas");
|
116 |
canvas.className = 'kgvid_temp_thumb';
|
139 |
if (!paused) {
|
140 |
media.play();
|
141 |
}
|
142 |
+
|
143 |
media.removeEventListener('canplay', canPlayAfterSourceSwitchHandler, true);
|
144 |
};
|
145 |
media.addEventListener('canplay', canPlayAfterSourceSwitchHandler, true);
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=kyleg
|
|
4 |
Tags: video, video player, video gallery, video thumbnail, ffmpeg, resolution
|
5 |
Requires at least: 4.4
|
6 |
Tested up to: 4.5
|
7 |
-
Stable tag: 4.6.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -151,7 +151,7 @@ I'm not really a software developer. I'm just a film editor with some time on hi
|
|
151 |
|
152 |
= These options can be added to the URL to further customize playback =
|
153 |
|
154 |
-
Using the `kgvid_video_embed` query string any of the following options will modify playback:
|
155 |
|
156 |
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.
|
157 |
|
@@ -244,6 +244,22 @@ Enter the username & password in the plugin settings "FFMPEG Settings" tab, or u
|
|
244 |
|
245 |
== Changelog ==
|
246 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
247 |
= 4.6.7 - May 26, 2016 =
|
248 |
* Updated Video.js to version 5.10.2
|
249 |
* Fixed bug that set Video.js players to the highest resolution no matter what was set as the default.
|
4 |
Tags: video, video player, video gallery, video thumbnail, ffmpeg, resolution
|
5 |
Requires at least: 4.4
|
6 |
Tested up to: 4.5
|
7 |
+
Stable tag: 4.6.8
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
151 |
|
152 |
= These options can be added to the URL to further customize playback =
|
153 |
|
154 |
+
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
|
155 |
|
156 |
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.
|
157 |
|
244 |
|
245 |
== Changelog ==
|
246 |
|
247 |
+
= 4.6.8 - June 22, 2016 =
|
248 |
+
* 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.
|
249 |
+
* Added option to pause other videos on the page when starting a new video (or disable it for WP Default player).
|
250 |
+
* Added option to always load plugin-related JavaScripts to support AJAX page loading.
|
251 |
+
* Added functionality to dynamically embed attached videos outside of the loop.
|
252 |
+
* Added check for changed filename extension if a video has been replaced by a different format but is still embedded using the old filename.
|
253 |
+
* Fixed bug that disabled styling for WordPress Default video players on the page when embedded after an audio file.
|
254 |
+
* Fixed bug that didn't record Video.js pop-up video gallery views or JW Player quarter playback stats.
|
255 |
+
* Fixed bug that prevented automatic clearing of old encode queue entries.
|
256 |
+
* Fixed bug that doubled non-H.264 video source tags.
|
257 |
+
* Fixed bug that prevented encoding 1080p and 720p H.264 videos if original video is not H.264 and has the same resolution.
|
258 |
+
* Improved iframe-embedded vertical video resizing.
|
259 |
+
* Changed iPhone play button to match Video.js button style.
|
260 |
+
* Tweaked embed code overlay styles.
|
261 |
+
* Set WordPress Default bottom margin to 0.
|
262 |
+
|
263 |
= 4.6.7 - May 26, 2016 =
|
264 |
* Updated Video.js to version 5.10.2
|
265 |
* Fixed bug that set Video.js players to the highest resolution no matter what was set as the default.
|
video-embed-thumbnail-generator.php
CHANGED
@@ -3,7 +3,7 @@
|
|
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.
|
7 |
Author: Kyle Gilman
|
8 |
Author URI: http://www.kylegilman.net/
|
9 |
Text Domain: video-embed-thumbnail-generator
|
@@ -59,7 +59,7 @@ function kgvid_default_options_fn() {
|
|
59 |
$edit_others_capable = kgvid_check_if_capable('edit_others_posts');
|
60 |
|
61 |
$options = array(
|
62 |
-
"version" => '4.6.
|
63 |
"embed_method" => "Video.js",
|
64 |
"jw_player_id" => "",
|
65 |
"template" => false,
|
@@ -119,6 +119,7 @@ function kgvid_default_options_fn() {
|
|
119 |
"nativecontrolsfortouch" => false,
|
120 |
"controlbar_style" => "docked",
|
121 |
"autoplay" => false,
|
|
|
122 |
"loop" => false,
|
123 |
"volume" => 1,
|
124 |
"mute" => false,
|
@@ -177,7 +178,8 @@ function kgvid_default_options_fn() {
|
|
177 |
"y" => "5"
|
178 |
),
|
179 |
"simultaneous_encodes" => 1,
|
180 |
-
"error_email" => "nobody"
|
|
|
181 |
);
|
182 |
|
183 |
return $options;
|
@@ -721,17 +723,27 @@ add_filter('upload_mimes', 'kgvid_add_upload_mimes');
|
|
721 |
function kgvid_url_to_id($url) {
|
722 |
|
723 |
global $wpdb;
|
724 |
-
$
|
|
|
725 |
$uploads = wp_upload_dir();
|
|
|
726 |
|
727 |
$url = str_replace(' ', '', $url); //in case a url with spaces got through
|
728 |
// Get the path or the original size image by slicing the widthxheight off the end and adding the extension back
|
729 |
$search_url = preg_replace( '/-\d+x\d+(\.(?:png|jpg|gif))$/i', '.' . pathinfo($url, PATHINFO_EXTENSION), $url );
|
|
|
|
|
730 |
|
731 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
732 |
|
733 |
-
|
734 |
-
else { return false; }
|
735 |
|
736 |
}
|
737 |
|
@@ -1561,7 +1573,7 @@ class kgvid_Process{
|
|
1561 |
}
|
1562 |
}// class Process
|
1563 |
|
1564 |
-
function
|
1565 |
|
1566 |
$options = kgvid_get_options();
|
1567 |
|
@@ -1574,8 +1586,12 @@ function kgvid_video_embed_enqueue_scripts() {
|
|
1574 |
//plugin-related frontend styles, requires dashicons
|
1575 |
wp_enqueue_style( 'kgvid_video_styles', plugins_url("/css/kgvid_styles.css", __FILE__), array( 'dashicons' ), $options['version'] );
|
1576 |
|
|
|
|
|
|
|
|
|
1577 |
}
|
1578 |
-
add_action('wp_enqueue_scripts', '
|
1579 |
|
1580 |
function enqueue_kgvid_script() { //loads plugin-related scripts in the admin area
|
1581 |
|
@@ -1931,7 +1947,7 @@ function kgvid_enqueue_shortcode_scripts() {
|
|
1931 |
|
1932 |
function kgvid_print_videojs_footer() { //called by the shortcode if Video.js is used
|
1933 |
|
1934 |
-
echo '<script type="text/javascript">if(typeof videojs !== "undefined") { videojs.options.flash.swf = "'.plugins_url("", __FILE__).'/video-js/video-js.swf?5.0.
|
1935 |
|
1936 |
}
|
1937 |
|
@@ -2145,7 +2161,7 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_id) {
|
|
2145 |
if ( !empty($query_atts["id"]) ) {
|
2146 |
$id_array[0] = $query_atts["id"];
|
2147 |
}
|
2148 |
-
elseif ( $post_id !=
|
2149 |
$args = array(
|
2150 |
'numberposts' => $query_atts['videos'],
|
2151 |
'post_mime_type' => 'video',
|
@@ -2184,7 +2200,7 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_id) {
|
|
2184 |
$mp4already = false;
|
2185 |
$dimensions = array();
|
2186 |
|
2187 |
-
if ( $query_atts['gallery'] == 'false' && $kgvid_video_id === 0 && $post_id !=
|
2188 |
$first_embedded_video['atts'] = $atts;
|
2189 |
$first_embedded_video['content'] = $content;
|
2190 |
$first_embedded_video_meta = get_post_meta($post_id, '_kgvid_first_embedded_video', true);
|
@@ -2323,6 +2339,7 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_id) {
|
|
2323 |
'countable' => $countable,
|
2324 |
'start' => $query_atts['start'],
|
2325 |
'autoplay' => $query_atts['autoplay'],
|
|
|
2326 |
'set_volume' => $query_atts['volume'],
|
2327 |
'mute' => $query_atts['mute'],
|
2328 |
'meta' => $kgvid_meta,
|
@@ -2342,7 +2359,9 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_id) {
|
|
2342 |
$h264_resolutions = array();
|
2343 |
|
2344 |
foreach ($video_formats as $format => $format_stats) {
|
2345 |
-
if ( $format != "original" && $encodevideo_info[$format]["url"] == $content ) {
|
|
|
|
|
2346 |
if ( $encodevideo_info[$format]["exists"] ) {
|
2347 |
|
2348 |
if ( array_key_exists('height', $encodevideo_info[$format]) && $format_stats['type'] == 'h264' ) {
|
@@ -2413,7 +2432,7 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_id) {
|
|
2413 |
$code .= '<meta itemprop="description" content="'.esc_attr($description).'" />';
|
2414 |
|
2415 |
if ( !empty($id) ) { $upload_date = get_the_date('c', $id); }
|
2416 |
-
elseif ( $post_id !=
|
2417 |
else { $upload_date = current_time('c'); }
|
2418 |
$code .= '<meta itemprop="uploadDate" content="'.esc_attr($upload_date).'" />';
|
2419 |
}
|
@@ -2687,7 +2706,8 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_id) {
|
|
2687 |
else { $iframeurl = $query_atts['embedcode']; }
|
2688 |
$iframecode = "<iframe allowfullscreen src='".$iframeurl."' frameborder='0' scrolling='no' width='".esc_attr($query_atts['width'])."' height='".esc_attr($query_atts["height"])."'></iframe>";
|
2689 |
$iframecode = apply_filters('kgvid_embedcode', $iframecode, $iframeurl, $id, $query_atts);
|
2690 |
-
$embed_code .= "<span class='
|
|
|
2691 |
} //embed code
|
2692 |
|
2693 |
if ( $options['twitter_button'] == 'on' || $options['facebook_button'] == 'on' ) {
|
@@ -2811,6 +2831,7 @@ function kgvid_shortcode_atts($atts) {
|
|
2811 |
'playbutton' => $options['playbutton'],
|
2812 |
'loop' => $options['loop'],
|
2813 |
'autoplay' => $options['autoplay'],
|
|
|
2814 |
'streamtype' => $options['stream_type'],
|
2815 |
'scalemode' => $options['scale_mode'],
|
2816 |
'backgroundcolor' => $options['bgcolor'],
|
@@ -2899,6 +2920,7 @@ function kgvid_shortcode_atts($atts) {
|
|
2899 |
"playbutton",
|
2900 |
"loop",
|
2901 |
"autoplay",
|
|
|
2902 |
"title",
|
2903 |
"embedcode",
|
2904 |
"view_count",
|
@@ -2937,8 +2959,13 @@ function KGVID_shortcode($atts, $content = ''){
|
|
2937 |
|
2938 |
kgvid_enqueue_shortcode_scripts();
|
2939 |
|
2940 |
-
if ( in_the_loop() ) {
|
2941 |
-
|
|
|
|
|
|
|
|
|
|
|
2942 |
|
2943 |
$query_atts = kgvid_shortcode_atts($atts);
|
2944 |
|
@@ -3994,10 +4021,6 @@ function kgvid_video_embed_options_init() {
|
|
3994 |
add_settings_field('dimensions', __('Max embedded video dimensions:', 'video-embed-thumbnail-generator'), 'kgvid_dimensions_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'width' ) );
|
3995 |
add_settings_field('gallery_options', __('Video gallery:', 'video-embed-thumbnail-generator'), 'kgvid_video_gallery_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'gallery_width' ) );
|
3996 |
add_settings_field('controlbar_style', __('Video controls:', 'video-embed-thumbnail-generator'), 'kgvid_controlbar_style_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'controlbar_style' ) );
|
3997 |
-
add_settings_field('autoplay', __('Autoplay:', 'video-embed-thumbnail-generator'), 'kgvid_autoplay_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'autoplay' ) );
|
3998 |
-
add_settings_field('loop', _x('Loop:', 'verb', 'video-embed-thumbnail-generator'), 'kgvid_loop_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'loop' ) );
|
3999 |
-
add_settings_field('audio', __('Volume:', 'video-embed-thumbnail-generator'), 'kgvid_audio_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'volume' ) );
|
4000 |
-
add_settings_field('preload', __('Preload:', 'video-embed-thumbnail-generator'), 'kgvid_preload_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'preload' ) );
|
4001 |
add_settings_field('js_skin', _x('Skin class:', 'CSS class for video skin', 'video-embed-thumbnail-generator'), 'kgvid_js_skin_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'js_skin' ) );
|
4002 |
add_settings_field('nativecontrolsfortouch', __('Native controls:', 'video-embed-thumbnail-generator'), 'kgvid_nativecontrolsfortouch_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'nativecontrolsfortouch' ) );
|
4003 |
add_settings_field('custom_attributes', __('Custom attributes:', 'video-embed-thumbnail-generator'), 'kgvid_custom_attributes_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'custom_attributes' ) );
|
@@ -4010,8 +4033,9 @@ function kgvid_video_embed_options_init() {
|
|
4010 |
add_settings_field('autohide', __('Autohide:', 'video-embed-thumbnail-generator'), 'kgvid_autohide_callback', __FILE__, 'kgvid_video_embed_flash_settings', array( 'label_for' => 'autohide' ) );
|
4011 |
add_settings_field('playbutton', __('Play button overlay:', 'video-embed-thumbnail-generator'), 'kgvid_playbutton_callback', __FILE__, 'kgvid_video_embed_flash_settings', array( 'label_for' => 'playbutton' ) );
|
4012 |
|
4013 |
-
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' ) );
|
4014 |
add_settings_field('security', __('Video sharing:', 'video-embed-thumbnail-generator'), 'kgvid_security_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'right_click' ) );
|
|
|
|
|
4015 |
add_settings_field('featured', __('Featured image:', 'video-embed-thumbnail-generator'), 'kgvid_featured_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'featured' ) );
|
4016 |
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' ) );
|
4017 |
add_settings_field('user_roles', __('User capabilities:', 'video-embed-thumbnail-generator'), 'kgvid_user_roles_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'user_roles' ) );
|
@@ -4225,47 +4249,36 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
4225 |
$items[__("docked", 'video-embed-thumbnail-generator')] = "docked";
|
4226 |
if ( $options['embed_method'] == "Strobe Media Playback" ) { $items[__("floating", 'video-embed-thumbnail-generator')] = "floating"; }
|
4227 |
$items[__("none", 'video-embed-thumbnail-generator')] = "none";
|
4228 |
-
echo "<select class='affects_player' id='controlbar_style' name='kgvid_video_embed_options[controlbar_style]'>";
|
4229 |
foreach($items as $name => $value) {
|
4230 |
$selected = ($options['controlbar_style']==$value) ? 'selected="selected"' : '';
|
4231 |
echo "<option value='$value' $selected>$name</option>";
|
4232 |
}
|
4233 |
-
echo "</select
|
4234 |
-
}
|
4235 |
|
4236 |
-
|
4237 |
-
$options = kgvid_get_options();
|
4238 |
-
echo "<input class='affects_player' ".checked( $options['autoplay'], "on", false )." id='autoplay' name='kgvid_video_embed_options[autoplay]' type='checkbox' /> <label for='autoplay'>".__('Play automatically when page loads.', 'video-embed-thumbnail-generator')."</label>\n\t";
|
4239 |
-
}
|
4240 |
|
4241 |
-
|
4242 |
-
|
4243 |
-
echo "<input class='affects_player' ".checked( $options['loop'], "on", false )." id='loop' name='kgvid_video_embed_options[loop]' type='checkbox' /> <label for='loop'>".__('Loop to beginning when video ends.', 'video-embed-thumbnail-generator')."</label
|
4244 |
-
}
|
4245 |
|
4246 |
-
function kgvid_audio_callback() {
|
4247 |
-
$options = kgvid_get_options();
|
4248 |
$items = array();
|
4249 |
$percent = 0;
|
4250 |
for ( $percent = 0; $percent <= 1.05; $percent = $percent + 0.05 ) {
|
4251 |
$items[sprintf( _x('%d%%', 'a list of percentages. eg: 15%', 'video-embed-thumbnail-generator'), round($percent*100) )] = strval($percent);
|
4252 |
}
|
4253 |
-
echo "<select class='affects_player' id='volume' name='kgvid_video_embed_options[volume]'>";
|
4254 |
foreach($items as $name=>$value) {
|
4255 |
$selected = ($options['volume']==$value) ? 'selected="selected"' : '';
|
4256 |
echo "<option value='$value' $selected>$name</option>";
|
4257 |
}
|
4258 |
-
echo "</select> <input class='affects_player' ".checked( $options['mute'], "on", false )." id='mute' name='kgvid_video_embed_options[mute]' type='checkbox' /> <label for='mute'>".__('Mute', 'video-embed-thumbnail-generator')."</label
|
4259 |
-
|
4260 |
-
}
|
4261 |
|
4262 |
-
function kgvid_preload_callback() {
|
4263 |
-
$options = kgvid_get_options();
|
4264 |
$items = array(
|
4265 |
__('metadata', 'video-embed-thumbnail-generator') => "metadata",
|
4266 |
__('auto', 'video-embed-thumbnail-generator') => "auto",
|
4267 |
__('none', 'video-embed-thumbnail-generator') => "none");
|
4268 |
-
echo "<select class='affects_player' id='preload' name='kgvid_video_embed_options[preload]'>";
|
4269 |
foreach($items as $name=>$value) {
|
4270 |
$selected = ($options['preload']==$value) ? 'selected="selected"' : '';
|
4271 |
echo "<option value='$value' $selected>$name</option>";
|
@@ -4344,11 +4357,6 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
4344 |
echo "<input class='affects_player' ".checked( $options['playbutton'], "on", false )." id='playbutton' name='kgvid_video_embed_options[playbutton]' type='checkbox' /> <label for='playbutton'>".__('Overlay play button on poster frame.', 'video-embed-thumbnail-generator')."</label>\n\t";
|
4345 |
}
|
4346 |
|
4347 |
-
function kgvid_generate_thumbs_callback() {
|
4348 |
-
$options = kgvid_get_options();
|
4349 |
-
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";
|
4350 |
-
}
|
4351 |
-
|
4352 |
function kgvid_security_callback() {
|
4353 |
$options = kgvid_get_options();
|
4354 |
|
@@ -4366,6 +4374,16 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
4366 |
echo "<input ".checked( $options['oembed_security'], "on", false )." id='oembed_security' name='kgvid_video_embed_options[oembed_security]' type='checkbox' /> <label for='oembed_security'>"._x('Enable oEmbeds from unknown providers.', '"oEmbed" is a proper noun and might not need translation', 'video-embed-thumbnail-generator')."</label><span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Allows your own users to embed content from any oEmbed provider. User must have the "unfiltered_html" capability which is limited to Administrators and Editors by default.', 'video-embed-thumbnail-generator')."</span></span><br />\n\t";
|
4367 |
}
|
4368 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4369 |
function kgvid_featured_callback() {
|
4370 |
$options = kgvid_get_options();
|
4371 |
echo "<input ".checked( $options['featured'], "on", false )." id='featured' name='kgvid_video_embed_options[featured]' type='checkbox' /> <label for='featured'>".__('Set generated video thumbnails as featured images.', 'video-embed-thumbnail-generator')."</label> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('If your theme uses the featured image meta tag, this will automatically set a video\'s parent post\'s featured image to the most recently saved thumbnail image.', 'video-embed-thumbnail-generator')."</span></span><br /> <a class='button-secondary' href='javascript:void(0);' onclick='kgvid_set_all_featured();'>"._x('Set all as featured', 'implied "Set all thumbnails as featured"', 'video-embed-thumbnail-generator')."</a> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('If you\'ve generated thumbnails before enabling this option, this will set all existing thumbnails as featured images. Be careful!', 'video-embed-thumbnail-generator')."</span></span>\n\t";
|
@@ -5010,6 +5028,12 @@ function kgvid_update_settings() {
|
|
5010 |
$options['twitter_username'] = kgvid_get_jetpack_twitter_username();
|
5011 |
}
|
5012 |
|
|
|
|
|
|
|
|
|
|
|
|
|
5013 |
if ( $options['version'] != $default_options['version'] ) { $options['version'] = $default_options['version']; }
|
5014 |
if ( $options !== $options_old ) { update_option('kgvid_video_embed_options', $options); }
|
5015 |
}
|
@@ -5526,7 +5550,7 @@ function kgvid_image_attachment_fields_to_edit($form_fields, $post) {
|
|
5526 |
if ( $post->post_mime_type != 'image/gif' ) {
|
5527 |
$form_fields["views"]["label"] = __('Video Stats', 'video-embed-thumbnail-generator');
|
5528 |
$form_fields["views"]["input"] = "html";
|
5529 |
-
$form_fields["views"]["html"] = sprintf( _n('%1$s%2$d%3$s Play', '%1$s%2$d%3$s Plays', intval($kgvid_postmeta['starts']), 'video-embed-thumbnail-generator'), '<strong>', intval($kgvid_postmeta['starts']), '</strong>' ).'<span class="kgvid-reveal-thumb-video" onclick="kgvid_reveal_video_stats('.$post->ID.')" id="show-video-stats-'.$post->ID.'"><br /><a class="kgvid-show-video">'.__('
|
5530 |
intval($kgvid_postmeta['play_25']).' '.__('25%', 'video-embed-thumbnail-generator').
|
5531 |
'<br /><strong>'.intval($kgvid_postmeta['play_50']).'</strong> '.__('50%', 'video-embed-thumbnail-generator').
|
5532 |
'<br /><strong>'.intval($kgvid_postmeta['play_75']).'</strong> '.__('75%', 'video-embed-thumbnail-generator').
|
@@ -5602,7 +5626,7 @@ function kgvid_image_attachment_fields_to_edit($form_fields, $post) {
|
|
5602 |
<video crossorigin="anonymous" preload="metadata" class="kgvid-thumb-video" width="200" data-allowed="'.$options['browser_thumbnails'].'" onloadedmetadata="kgvid_thumb_video_loaded(\''.$post->ID.'\');" id="thumb-video-'.$post->ID.'" controls>'.
|
5603 |
implode("\n", $sources).'
|
5604 |
</video>
|
5605 |
-
<div class="kgvid-video-controls">
|
5606 |
<div class="kgvid-play-pause"></div>
|
5607 |
<div class="kgvid-seek-bar">
|
5608 |
<div class="kgvid-play-progress"></div>
|
@@ -6789,6 +6813,7 @@ function kgvid_enqueue_videos($postID, $movieurl, $encode_checked, $parent_id, $
|
|
6789 |
$post_type = get_post_type($postID);
|
6790 |
if ( $post_type == "attachment" ) { $filepath = get_attached_file($postID); }
|
6791 |
else { $filepath = $movieurl; }
|
|
|
6792 |
$movie_info = kgvid_get_video_dimensions($filepath);
|
6793 |
|
6794 |
if ($movie_info['worked'] == true) { //if FFMPEG was able to open the file
|
@@ -6811,7 +6836,12 @@ function kgvid_enqueue_videos($postID, $movieurl, $encode_checked, $parent_id, $
|
|
6811 |
foreach ( $video_formats as $format => $format_stats ) {
|
6812 |
if ( array_key_exists($format, $encode_checked) && $encode_checked[$format] == "true" ) {
|
6813 |
if ( !$encodevideo_info[$format]['exists'] ) {
|
6814 |
-
if ( ($format == "1080"
|
|
|
|
|
|
|
|
|
|
|
6815 |
$movie_extension = pathinfo($movieurl, PATHINFO_EXTENSION);
|
6816 |
if ( $encode_checked['fullres'] == "true" || in_array($movie_extension, $h264extensions) || $movie_height < intval($format) ) {
|
6817 |
$encode_formats[$format]['status'] = "lowres";
|
@@ -7725,9 +7755,8 @@ function kgvid_clear_completed_queue($type, $scope = 'site') {
|
|
7725 |
|
7726 |
$keep = array();
|
7727 |
$cleared_video_queue = array();
|
7728 |
-
|
7729 |
foreach ( $video_encode_queue as $video_key => $queue_entry ) {
|
7730 |
-
if ( !empty($queue_entry['encode_formats']) ) {
|
7731 |
foreach ( $queue_entry['encode_formats'] as $format => $value ) {
|
7732 |
if ( $value['status'] == "encoding" ) { //if it's not completed yet
|
7733 |
if ( $type != "all" ) { $keep[$video_key] = true; }
|
@@ -7753,10 +7782,13 @@ function kgvid_clear_completed_queue($type, $scope = 'site') {
|
|
7753 |
$keep[$video_key] = true;
|
7754 |
}
|
7755 |
}
|
7756 |
-
if (
|
7757 |
-
|
7758 |
-
|
7759 |
-
|
|
|
|
|
|
|
7760 |
) { //only clear entries from current blog
|
7761 |
$keep[$video_key] = true;
|
7762 |
break;
|
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.8
|
7 |
Author: Kyle Gilman
|
8 |
Author URI: http://www.kylegilman.net/
|
9 |
Text Domain: video-embed-thumbnail-generator
|
59 |
$edit_others_capable = kgvid_check_if_capable('edit_others_posts');
|
60 |
|
61 |
$options = array(
|
62 |
+
"version" => '4.6.8',
|
63 |
"embed_method" => "Video.js",
|
64 |
"jw_player_id" => "",
|
65 |
"template" => false,
|
119 |
"nativecontrolsfortouch" => false,
|
120 |
"controlbar_style" => "docked",
|
121 |
"autoplay" => false,
|
122 |
+
"pauseothervideos" => "on",
|
123 |
"loop" => false,
|
124 |
"volume" => 1,
|
125 |
"mute" => false,
|
178 |
"y" => "5"
|
179 |
),
|
180 |
"simultaneous_encodes" => 1,
|
181 |
+
"error_email" => "nobody",
|
182 |
+
"alwaysloadscripts" => false
|
183 |
);
|
184 |
|
185 |
return $options;
|
723 |
function kgvid_url_to_id($url) {
|
724 |
|
725 |
global $wpdb;
|
726 |
+
$options = kgvid_get_options();
|
727 |
+
$post_id = NULL;
|
728 |
$uploads = wp_upload_dir();
|
729 |
+
$video_formats = kgvid_video_formats();
|
730 |
|
731 |
$url = str_replace(' ', '', $url); //in case a url with spaces got through
|
732 |
// Get the path or the original size image by slicing the widthxheight off the end and adding the extension back
|
733 |
$search_url = preg_replace( '/-\d+x\d+(\.(?:png|jpg|gif))$/i', '.' . pathinfo($url, PATHINFO_EXTENSION), $url );
|
734 |
+
$search_query = "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_wp_attached_file' AND meta_value LIKE RIGHT('%s', CHAR_LENGTH(meta_value))";
|
735 |
+
$post_id = (int)$wpdb->get_var( $wpdb->prepare( $search_query, $search_url ) );
|
736 |
|
737 |
+
if ( !$post_id && $options['ffmpeg_exists'] == "on" && $video_formats['fullres']['extension'] != pathinfo($url, PATHINFO_EXTENSION) ) {
|
738 |
+
$search_url = str_replace( pathinfo($url, PATHINFO_EXTENSION), $video_formats['fullres']['extension'], $url );
|
739 |
+
$post_id = (int)$wpdb->get_var( $wpdb->prepare( $search_query, $search_url ) );
|
740 |
+
if ( $post_id ) { $kgvid_postmeta = kgvid_get_attachment_meta($post_id); }
|
741 |
+
if ( !isset($kgvid_postmeta) || !is_array($kgvid_postmeta) || ( is_array($kgvid_postmeta) && !array_key_exists('original_replaced', $kgvid_postmeta) ) ) {
|
742 |
+
$post_id = NULL;
|
743 |
+
}
|
744 |
+
}
|
745 |
|
746 |
+
return $post_id;
|
|
|
747 |
|
748 |
}
|
749 |
|
1573 |
}
|
1574 |
}// class Process
|
1575 |
|
1576 |
+
function kgvid_video_embed_enqueue_styles() {
|
1577 |
|
1578 |
$options = kgvid_get_options();
|
1579 |
|
1586 |
//plugin-related frontend styles, requires dashicons
|
1587 |
wp_enqueue_style( 'kgvid_video_styles', plugins_url("/css/kgvid_styles.css", __FILE__), array( 'dashicons' ), $options['version'] );
|
1588 |
|
1589 |
+
if ( $options['alwaysloadscripts'] == 'on' ) {
|
1590 |
+
kgvid_enqueue_shortcode_scripts();
|
1591 |
+
}
|
1592 |
+
|
1593 |
}
|
1594 |
+
add_action('wp_enqueue_scripts', 'kgvid_video_embed_enqueue_styles', 12);
|
1595 |
|
1596 |
function enqueue_kgvid_script() { //loads plugin-related scripts in the admin area
|
1597 |
|
1947 |
|
1948 |
function kgvid_print_videojs_footer() { //called by the shortcode if Video.js is used
|
1949 |
|
1950 |
+
echo '<script type="text/javascript">if(typeof videojs !== "undefined") { videojs.options.flash.swf = "'.plugins_url("", __FILE__).'/video-js/video-js.swf?5.0.2"; }</script>'."\n";
|
1951 |
|
1952 |
}
|
1953 |
|
2161 |
if ( !empty($query_atts["id"]) ) {
|
2162 |
$id_array[0] = $query_atts["id"];
|
2163 |
}
|
2164 |
+
elseif ( $post_id != 0 ) {
|
2165 |
$args = array(
|
2166 |
'numberposts' => $query_atts['videos'],
|
2167 |
'post_mime_type' => 'video',
|
2200 |
$mp4already = false;
|
2201 |
$dimensions = array();
|
2202 |
|
2203 |
+
if ( $query_atts['gallery'] == 'false' && $kgvid_video_id === 0 && $post_id != 0 ) {
|
2204 |
$first_embedded_video['atts'] = $atts;
|
2205 |
$first_embedded_video['content'] = $content;
|
2206 |
$first_embedded_video_meta = get_post_meta($post_id, '_kgvid_first_embedded_video', true);
|
2339 |
'countable' => $countable,
|
2340 |
'start' => $query_atts['start'],
|
2341 |
'autoplay' => $query_atts['autoplay'],
|
2342 |
+
'pauseothervideos' => $query_atts['pauseothervideos'],
|
2343 |
'set_volume' => $query_atts['volume'],
|
2344 |
'mute' => $query_atts['mute'],
|
2345 |
'meta' => $kgvid_meta,
|
2359 |
$h264_resolutions = array();
|
2360 |
|
2361 |
foreach ($video_formats as $format => $format_stats) {
|
2362 |
+
if ( $format != "original" && $encodevideo_info[$format]["url"] == $content ) {
|
2363 |
+
continue; //don't double up on non-H.264 video sources
|
2364 |
+
}
|
2365 |
if ( $encodevideo_info[$format]["exists"] ) {
|
2366 |
|
2367 |
if ( array_key_exists('height', $encodevideo_info[$format]) && $format_stats['type'] == 'h264' ) {
|
2432 |
$code .= '<meta itemprop="description" content="'.esc_attr($description).'" />';
|
2433 |
|
2434 |
if ( !empty($id) ) { $upload_date = get_the_date('c', $id); }
|
2435 |
+
elseif ( $post_id != 0 ) { $upload_date = get_the_date('c', $post_id); }
|
2436 |
else { $upload_date = current_time('c'); }
|
2437 |
$code .= '<meta itemprop="uploadDate" content="'.esc_attr($upload_date).'" />';
|
2438 |
}
|
2706 |
else { $iframeurl = $query_atts['embedcode']; }
|
2707 |
$iframecode = "<iframe allowfullscreen src='".$iframeurl."' frameborder='0' scrolling='no' width='".esc_attr($query_atts['width'])."' height='".esc_attr($query_atts["height"])."'></iframe>";
|
2708 |
$iframecode = apply_filters('kgvid_embedcode', $iframecode, $iframeurl, $id, $query_atts);
|
2709 |
+
$embed_code .= "<span class='kgvid_embedcode_container'><span class='dashicons dashicons-editor-code'></span>
|
2710 |
+
<span>"._x('Embed:', 'precedes code for embedding video', 'video-embed-thumbnail-generator')." </span><span><input class='kgvid_embedcode' type='text' value='".esc_attr($iframecode)."' onClick='this.select();'></span> <span class='kgvid_start_time'><input type='checkbox' class='kgvid_start_at_enable' onclick='kgvid_set_start_at(\"".$div_suffix."\")'> ".__('Start at:', 'video-embed-thumbnail-generator')." <input type='text' class='kgvid_start_at' onkeyup='kgvid_change_start_at(\"".$div_suffix."\")'></span></span>";
|
2711 |
} //embed code
|
2712 |
|
2713 |
if ( $options['twitter_button'] == 'on' || $options['facebook_button'] == 'on' ) {
|
2831 |
'playbutton' => $options['playbutton'],
|
2832 |
'loop' => $options['loop'],
|
2833 |
'autoplay' => $options['autoplay'],
|
2834 |
+
'pauseothervideos' => $options['pauseothervideos'],
|
2835 |
'streamtype' => $options['stream_type'],
|
2836 |
'scalemode' => $options['scale_mode'],
|
2837 |
'backgroundcolor' => $options['bgcolor'],
|
2920 |
"playbutton",
|
2921 |
"loop",
|
2922 |
"autoplay",
|
2923 |
+
"pauseothervideos",
|
2924 |
"title",
|
2925 |
"embedcode",
|
2926 |
"view_count",
|
2959 |
|
2960 |
kgvid_enqueue_shortcode_scripts();
|
2961 |
|
2962 |
+
if ( in_the_loop() ) {
|
2963 |
+
$post_id = get_the_ID();
|
2964 |
+
}
|
2965 |
+
else {
|
2966 |
+
global $wp_query;
|
2967 |
+
$post_id = $wp_query->get_queried_object_id();
|
2968 |
+
}
|
2969 |
|
2970 |
$query_atts = kgvid_shortcode_atts($atts);
|
2971 |
|
4021 |
add_settings_field('dimensions', __('Max embedded video dimensions:', 'video-embed-thumbnail-generator'), 'kgvid_dimensions_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'width' ) );
|
4022 |
add_settings_field('gallery_options', __('Video gallery:', 'video-embed-thumbnail-generator'), 'kgvid_video_gallery_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'gallery_width' ) );
|
4023 |
add_settings_field('controlbar_style', __('Video controls:', 'video-embed-thumbnail-generator'), 'kgvid_controlbar_style_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'controlbar_style' ) );
|
|
|
|
|
|
|
|
|
4024 |
add_settings_field('js_skin', _x('Skin class:', 'CSS class for video skin', 'video-embed-thumbnail-generator'), 'kgvid_js_skin_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'js_skin' ) );
|
4025 |
add_settings_field('nativecontrolsfortouch', __('Native controls:', 'video-embed-thumbnail-generator'), 'kgvid_nativecontrolsfortouch_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'nativecontrolsfortouch' ) );
|
4026 |
add_settings_field('custom_attributes', __('Custom attributes:', 'video-embed-thumbnail-generator'), 'kgvid_custom_attributes_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'custom_attributes' ) );
|
4033 |
add_settings_field('autohide', __('Autohide:', 'video-embed-thumbnail-generator'), 'kgvid_autohide_callback', __FILE__, 'kgvid_video_embed_flash_settings', array( 'label_for' => 'autohide' ) );
|
4034 |
add_settings_field('playbutton', __('Play button overlay:', 'video-embed-thumbnail-generator'), 'kgvid_playbutton_callback', __FILE__, 'kgvid_video_embed_flash_settings', array( 'label_for' => 'playbutton' ) );
|
4035 |
|
|
|
4036 |
add_settings_field('security', __('Video sharing:', 'video-embed-thumbnail-generator'), 'kgvid_security_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'right_click' ) );
|
4037 |
+
add_settings_field('scriptloading', __("Script loading:", 'video-embed-thumbnail-generator'), 'kgvid_scriptloading_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'alwaysloadscripts' ) );
|
4038 |
+
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' ) );
|
4039 |
add_settings_field('featured', __('Featured image:', 'video-embed-thumbnail-generator'), 'kgvid_featured_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'featured' ) );
|
4040 |
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' ) );
|
4041 |
add_settings_field('user_roles', __('User capabilities:', 'video-embed-thumbnail-generator'), 'kgvid_user_roles_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'user_roles' ) );
|
4249 |
$items[__("docked", 'video-embed-thumbnail-generator')] = "docked";
|
4250 |
if ( $options['embed_method'] == "Strobe Media Playback" ) { $items[__("floating", 'video-embed-thumbnail-generator')] = "floating"; }
|
4251 |
$items[__("none", 'video-embed-thumbnail-generator')] = "none";
|
4252 |
+
echo __('Display controls:', 'video-embed-thumbnail-generator')." <select class='affects_player' id='controlbar_style' name='kgvid_video_embed_options[controlbar_style]'>";
|
4253 |
foreach($items as $name => $value) {
|
4254 |
$selected = ($options['controlbar_style']==$value) ? 'selected="selected"' : '';
|
4255 |
echo "<option value='$value' $selected>$name</option>";
|
4256 |
}
|
4257 |
+
echo "</select><br />\n\t";
|
|
|
4258 |
|
4259 |
+
echo "<input class='affects_player' ".checked( $options['autoplay'], "on", false )." id='autoplay' name='kgvid_video_embed_options[autoplay]' type='checkbox' /> <label for='autoplay'>".__('Play automatically when page loads.', 'video-embed-thumbnail-generator')."</label><br />\n\t";
|
|
|
|
|
|
|
4260 |
|
4261 |
+
echo "<input ".checked( $options['pauseothervideos'], "on", false )." id='pauseothervideos' name='kgvid_video_embed_options[pauseothervideos]' type='checkbox' /> <label for='pauseothervideos'>".__('Pause other videos on page when starting a new video.', 'video-embed-thumbnail-generator')."</label><br />\n\t";
|
4262 |
+
|
4263 |
+
echo "<input class='affects_player' ".checked( $options['loop'], "on", false )." id='loop' name='kgvid_video_embed_options[loop]' type='checkbox' /> <label for='loop'>".__('Loop to beginning when video ends.', 'video-embed-thumbnail-generator')."</label><br />\n\t";
|
|
|
4264 |
|
|
|
|
|
4265 |
$items = array();
|
4266 |
$percent = 0;
|
4267 |
for ( $percent = 0; $percent <= 1.05; $percent = $percent + 0.05 ) {
|
4268 |
$items[sprintf( _x('%d%%', 'a list of percentages. eg: 15%', 'video-embed-thumbnail-generator'), round($percent*100) )] = strval($percent);
|
4269 |
}
|
4270 |
+
echo __('Volume:', 'video-embed-thumbnail-generator')." <select class='affects_player' id='volume' name='kgvid_video_embed_options[volume]'>";
|
4271 |
foreach($items as $name=>$value) {
|
4272 |
$selected = ($options['volume']==$value) ? 'selected="selected"' : '';
|
4273 |
echo "<option value='$value' $selected>$name</option>";
|
4274 |
}
|
4275 |
+
echo "</select> <input class='affects_player' ".checked( $options['mute'], "on", false )." id='mute' name='kgvid_video_embed_options[mute]' type='checkbox' /> <label for='mute'>".__('Mute', 'video-embed-thumbnail-generator')."</label><br />\n\t";
|
|
|
|
|
4276 |
|
|
|
|
|
4277 |
$items = array(
|
4278 |
__('metadata', 'video-embed-thumbnail-generator') => "metadata",
|
4279 |
__('auto', 'video-embed-thumbnail-generator') => "auto",
|
4280 |
__('none', 'video-embed-thumbnail-generator') => "none");
|
4281 |
+
echo __('Preload:', 'video-embed-thumbnail-generator')." <select class='affects_player' id='preload' name='kgvid_video_embed_options[preload]'>";
|
4282 |
foreach($items as $name=>$value) {
|
4283 |
$selected = ($options['preload']==$value) ? 'selected="selected"' : '';
|
4284 |
echo "<option value='$value' $selected>$name</option>";
|
4357 |
echo "<input class='affects_player' ".checked( $options['playbutton'], "on", false )." id='playbutton' name='kgvid_video_embed_options[playbutton]' type='checkbox' /> <label for='playbutton'>".__('Overlay play button on poster frame.', 'video-embed-thumbnail-generator')."</label>\n\t";
|
4358 |
}
|
4359 |
|
|
|
|
|
|
|
|
|
|
|
4360 |
function kgvid_security_callback() {
|
4361 |
$options = kgvid_get_options();
|
4362 |
|
4374 |
echo "<input ".checked( $options['oembed_security'], "on", false )." id='oembed_security' name='kgvid_video_embed_options[oembed_security]' type='checkbox' /> <label for='oembed_security'>"._x('Enable oEmbeds from unknown providers.', '"oEmbed" is a proper noun and might not need translation', 'video-embed-thumbnail-generator')."</label><span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Allows your own users to embed content from any oEmbed provider. User must have the "unfiltered_html" capability which is limited to Administrators and Editors by default.', 'video-embed-thumbnail-generator')."</span></span><br />\n\t";
|
4375 |
}
|
4376 |
|
4377 |
+
function kgvid_scriptloading_callback() {
|
4378 |
+
$options = kgvid_get_options();
|
4379 |
+
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 />";
|
4380 |
+
}
|
4381 |
+
|
4382 |
+
function kgvid_generate_thumbs_callback() {
|
4383 |
+
$options = kgvid_get_options();
|
4384 |
+
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";
|
4385 |
+
}
|
4386 |
+
|
4387 |
function kgvid_featured_callback() {
|
4388 |
$options = kgvid_get_options();
|
4389 |
echo "<input ".checked( $options['featured'], "on", false )." id='featured' name='kgvid_video_embed_options[featured]' type='checkbox' /> <label for='featured'>".__('Set generated video thumbnails as featured images.', 'video-embed-thumbnail-generator')."</label> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('If your theme uses the featured image meta tag, this will automatically set a video\'s parent post\'s featured image to the most recently saved thumbnail image.', 'video-embed-thumbnail-generator')."</span></span><br /> <a class='button-secondary' href='javascript:void(0);' onclick='kgvid_set_all_featured();'>"._x('Set all as featured', 'implied "Set all thumbnails as featured"', 'video-embed-thumbnail-generator')."</a> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('If you\'ve generated thumbnails before enabling this option, this will set all existing thumbnails as featured images. Be careful!', 'video-embed-thumbnail-generator')."</span></span>\n\t";
|
5028 |
$options['twitter_username'] = kgvid_get_jetpack_twitter_username();
|
5029 |
}
|
5030 |
|
5031 |
+
if ( version_compare( $options['version'], '4.6.8', '<' ) ) {
|
5032 |
+
if ( $options['embed_method'] == "WordPress Default" ) { $options['pauseothervideos'] = "on"; }
|
5033 |
+
else { $options['pauseothervideos'] = false; }
|
5034 |
+
$options['alwaysloadscripts'] = false;
|
5035 |
+
}
|
5036 |
+
|
5037 |
if ( $options['version'] != $default_options['version'] ) { $options['version'] = $default_options['version']; }
|
5038 |
if ( $options !== $options_old ) { update_option('kgvid_video_embed_options', $options); }
|
5039 |
}
|
5550 |
if ( $post->post_mime_type != 'image/gif' ) {
|
5551 |
$form_fields["views"]["label"] = __('Video Stats', 'video-embed-thumbnail-generator');
|
5552 |
$form_fields["views"]["input"] = "html";
|
5553 |
+
$form_fields["views"]["html"] = sprintf( _n('%1$s%2$d%3$s Play', '%1$s%2$d%3$s Plays', intval($kgvid_postmeta['starts']), 'video-embed-thumbnail-generator'), '<strong>', intval($kgvid_postmeta['starts']), '</strong>' ).'<span class="kgvid-reveal-thumb-video" onclick="kgvid_reveal_video_stats('.$post->ID.')" id="show-video-stats-'.$post->ID.'"><br /><a class="kgvid-show-video">('.__('More...', 'video-embed-thumbnail-generator').')</a></span><div style="display:none;" id="video-'.$post->ID.'-stats">'.
|
5554 |
intval($kgvid_postmeta['play_25']).' '.__('25%', 'video-embed-thumbnail-generator').
|
5555 |
'<br /><strong>'.intval($kgvid_postmeta['play_50']).'</strong> '.__('50%', 'video-embed-thumbnail-generator').
|
5556 |
'<br /><strong>'.intval($kgvid_postmeta['play_75']).'</strong> '.__('75%', 'video-embed-thumbnail-generator').
|
5626 |
<video crossorigin="anonymous" preload="metadata" class="kgvid-thumb-video" width="200" data-allowed="'.$options['browser_thumbnails'].'" onloadedmetadata="kgvid_thumb_video_loaded(\''.$post->ID.'\');" id="thumb-video-'.$post->ID.'" controls>'.
|
5627 |
implode("\n", $sources).'
|
5628 |
</video>
|
5629 |
+
<div class="kgvid-video-controls" tabindex="0">
|
5630 |
<div class="kgvid-play-pause"></div>
|
5631 |
<div class="kgvid-seek-bar">
|
5632 |
<div class="kgvid-play-progress"></div>
|
6813 |
$post_type = get_post_type($postID);
|
6814 |
if ( $post_type == "attachment" ) { $filepath = get_attached_file($postID); }
|
6815 |
else { $filepath = $movieurl; }
|
6816 |
+
$mime_type_check = wp_check_filetype($filepath);
|
6817 |
$movie_info = kgvid_get_video_dimensions($filepath);
|
6818 |
|
6819 |
if ($movie_info['worked'] == true) { //if FFMPEG was able to open the file
|
6836 |
foreach ( $video_formats as $format => $format_stats ) {
|
6837 |
if ( array_key_exists($format, $encode_checked) && $encode_checked[$format] == "true" ) {
|
6838 |
if ( !$encodevideo_info[$format]['exists'] ) {
|
6839 |
+
if ( ($format == "1080" || $format == "720") &&
|
6840 |
+
(
|
6841 |
+
( strpos($mime_type_check['type'], "mp4") !== false && $movie_height <= $format_stats['height'] ) ||
|
6842 |
+
( strpos($mime_type_check['type'], "mp4") === false && $movie_height < $format_stats['height'] )
|
6843 |
+
)
|
6844 |
+
) {
|
6845 |
$movie_extension = pathinfo($movieurl, PATHINFO_EXTENSION);
|
6846 |
if ( $encode_checked['fullres'] == "true" || in_array($movie_extension, $h264extensions) || $movie_height < intval($format) ) {
|
6847 |
$encode_formats[$format]['status'] = "lowres";
|
7755 |
|
7756 |
$keep = array();
|
7757 |
$cleared_video_queue = array();
|
|
|
7758 |
foreach ( $video_encode_queue as $video_key => $queue_entry ) {
|
7759 |
+
if ( array_key_exists('encode_formats', $queue_entry) && !empty($queue_entry['encode_formats']) ) {
|
7760 |
foreach ( $queue_entry['encode_formats'] as $format => $value ) {
|
7761 |
if ( $value['status'] == "encoding" ) { //if it's not completed yet
|
7762 |
if ( $type != "all" ) { $keep[$video_key] = true; }
|
7782 |
$keep[$video_key] = true;
|
7783 |
}
|
7784 |
}
|
7785 |
+
if ( $type != "scheduled" &&
|
7786 |
+
(
|
7787 |
+
( $scope == 'site' && array_key_exists('blog_id', $queue_entry) && $queue_entry['blog_id'] != get_current_blog_id() )
|
7788 |
+
|| ( !current_user_can('edit_others_video_encodes') && $user_ID != $queue_entry['user_id'] )
|
7789 |
+
|| !current_user_can('encode_videos')
|
7790 |
+
|| ( $scope != 'site' && !current_user_can('manage_network') )
|
7791 |
+
)
|
7792 |
) { //only clear entries from current blog
|
7793 |
$keep[$video_key] = true;
|
7794 |
break;
|
video-js/video-quality-selector.js
CHANGED
@@ -140,7 +140,7 @@ videojs.ResolutionSelector.prototype.createItems = function() {
|
|
140 |
el : videojs.getComponent( 'Component' ).prototype.createEl( 'li', {
|
141 |
|
142 |
className : 'vjs-menu-title vjs-res-menu-title',
|
143 |
-
innerHTML :
|
144 |
})
|
145 |
}));
|
146 |
|
@@ -306,6 +306,7 @@ videojs.plugin( 'resolutionSelector', function( options ) {
|
|
306 |
|
307 |
var video_el = player.el().firstChild,
|
308 |
is_paused = player.paused(),
|
|
|
309 |
current_time = player.currentTime(),
|
310 |
button_nodes,
|
311 |
button_node_count;
|
@@ -318,6 +319,8 @@ videojs.plugin( 'resolutionSelector', function( options ) {
|
|
318 |
// Make sure the loadedmetadata event will fire
|
319 |
if ( 'none' == video_el.preload ) { video_el.preload = 'metadata'; }
|
320 |
|
|
|
|
|
321 |
if ( current_time != 0 ) {
|
322 |
|
323 |
player.pause();
|
@@ -350,6 +353,9 @@ videojs.plugin( 'resolutionSelector', function( options ) {
|
|
350 |
player.addClass( 'vjs-has-started' );
|
351 |
|
352 |
if ( ! is_paused ) { player.play(); }
|
|
|
|
|
|
|
353 |
}
|
354 |
|
355 |
})
|
140 |
el : videojs.getComponent( 'Component' ).prototype.createEl( 'li', {
|
141 |
|
142 |
className : 'vjs-menu-title vjs-res-menu-title',
|
143 |
+
innerHTML : kgvidL10n_frontend.quality
|
144 |
})
|
145 |
}));
|
146 |
|
306 |
|
307 |
var video_el = player.el().firstChild,
|
308 |
is_paused = player.paused(),
|
309 |
+
is_autoplay = player.autoplay(),
|
310 |
current_time = player.currentTime(),
|
311 |
button_nodes,
|
312 |
button_node_count;
|
319 |
// Make sure the loadedmetadata event will fire
|
320 |
if ( 'none' == video_el.preload ) { video_el.preload = 'metadata'; }
|
321 |
|
322 |
+
if ( is_autoplay ) { player.autoplay(false); }
|
323 |
+
|
324 |
if ( current_time != 0 ) {
|
325 |
|
326 |
player.pause();
|
353 |
player.addClass( 'vjs-has-started' );
|
354 |
|
355 |
if ( ! is_paused ) { player.play(); }
|
356 |
+
|
357 |
+
if ( is_autoplay ) { player.autoplay(true); }
|
358 |
+
|
359 |
}
|
360 |
|
361 |
})
|