Plugin Directory

Test out the new Plugin Directory and let us know what you think.

Video Embed & Thumbnail Generator

Makes video thumbnails, allows resolution switching, and embeds responsive self-hosted videos and galleries.

4.6.13 - January 5, 2017

  • Updated Video.js player to version 5.14.1
  • Fixed bug that disabled gallery page switching.
  • 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.
  • Fixed bug that disabled resolution switching if preload is set to "none"
  • Added preload as a shortcode attribute.
  • Delayed loading videos in attachment editing page until needed for thumbnail creation.
  • Fixed manual thumbnail selection in pop-up Media Library windows.
  • 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.
  • Fixed deprecated class constructor warning in PHP 7.
  • Removed unnecessary Video.js player re-initializations.

4.6.12 - September 25, 2016

  • Restored Video.js resolution selection in pop-up video galleries.
  • Fixed thumbnail creation bugs in Chrome browser.
  • Fixed missing 'starts' error message when video had never been played.

4.6.11 - September 17, 2016

  • Fixed broken video galleries in AJAX-loaded pages when the option to always load plugin-related JavaScripts is enabled.
  • Fixed untranslated "views" text after video is played.

4.6.10 - September 14, 2016

  • Updated Video.js to version 5.11.6
  • 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.
  • Moved native controls z-index in front of watermark overlay and hid Video.js play button on Android when using native controls option.
  • Fixed bug that constantly reset checkboxes and prevented removing individual formats from the video encode queue.
  • Fixed divide by zero error when video encoding is slower than 1 fps.
  • Fixed missing nonce error when clearing video encode queue.

4.6.9 - July 25, 2016

  • Updated Video.js to version 5.10.7
  • Fixed bug that sometimes prevented thumbnail generation.
  • Fixed bug that prevented selection of encoding error email setting in Network admin page.
  • Added visual feedback while saving manually selected thumbnails.

4.6.8 - 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.

4.6.7 - May 26, 2016

  • Updated Video.js to version 5.10.2
  • Fixed bug that set Video.js players to the highest resolution no matter what was set as the default.
  • Added a system to change video playback settings via URL query strings.
  • Added "start" shortcode attribute to start videos at a particular timecode and an option to set the start time in the embed code overlay.
  • Added left/right arrow navigation through video galleries.
  • Changed resizing method when responsive video is disabled.
  • Delayed autoplay command until metadata is loaded in Video.js player.
  • Fixed bug that re-enabled default subtitles in the Video.js player every time play restarted.
  • Fixed bug that left room for captions on all gallery videos if the first video had a caption.
  • Fixed bug that incorrectly resized pop-up gallery window for vertical videos.

4.6.6 - May 21, 2016

  • Added support for Yoast's custom Universal Google Analytics variable name.
  • Modified resizing method for WordPress Default player container again.
  • Updated WordPress Default player's fullscreen resolution calculation to match Video.js change made in v4.6.3
  • Added filter hook to modify FFMPEG-generated thumbnail options.
  • Increased WordPress Default play button z-index.

4.6.5 - May 13, 2016

  • Removed anonymous function to allow the plugin to run on PHP versions lower than 5.3.
  • Added 25%, 50%, and 75% video view tracking to the WordPress admin area.
  • Fixed width="100%" vertical video aspect ratio bug and now allowing other players to work with this still-not-recommended method.
  • Modified resizing method for WordPress default player container.
  • Fixed temporary thumbnail display when switching resolutions in a Video.js player that is set to a different aspect ratio from the video file.
  • Disabled background page rendering request on autosaves and revisions.
  • Adjusted title bar CSS again.

4.6.4 - May 5, 2016

  • Fixed bug that caused an error when feed pages were generated, possibly interrupting autosaves.

4.6.3 - May 5, 2016

  • Updated Video.js to version 5.9.2
  • 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.
  • Fixed bug that disabled JW Player selection in the plugin settings page.
  • Fixed bug that always showed text track type selector as "subtitles" in the attachment edit window.
  • Fixed bug that cropped the video title overlay when no sharing icons were enabled.

4.6.2 - May 2, 2016

  • Fixed bug that disabled subtitles/captions button in the WordPress Default player.
  • 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%".
  • Changed description of fullwidth setting to make it more clear.

4.6.1 - May 1, 2016

  • Fixed bug that changed the way Video.js players were resized when the specified dimensions did not match the video's actual dimensions.
  • Adjusted CSS for video overlay bar and z-index of the Video.js play button.

4.6 - April 29, 2016

  • Still 100% free. More info in the support forum.
  • Updated Video.js to version 5.5.3 which includes a revised skin.
  • Added resolution switching for WordPress Default player.
  • Added Twitter Player Cards.
  • Added animated GIF video conversion.
  • Added option to select a specific video resolution when the page first loads.
  • Added option to ignore pixel ratios when calculating automatic resolution selection in order to prioritize lower resolutions on mobile devices.
  • Added '-noreplace' filename option to prevent automatic video encoding for some videos.
  • Added button to clear the whole video encoding queue.
  • Added option to send an email when there is a video encoding error.
  • Added Google Analytics Event tracking when users watch 25%, 50%, and 75% of a video.
  • Added several filter hooks to facilitate customization of the plugin.
  • Added Twitter and Facebook share buttons.
  • Significantly redesigned video sharing overlay appearance.
  • Moved download link to an icon overlay and stopped inserting unnecessary downloadlink attribute in shortcode for videos in the WordPress database.
  • Moved resolution switching icon to the left of the fullscreen button.
  • Now showing paused video frame while switching resolutions instead of black frame or thumbnail (browser experience may vary).
  • Updated oEmbed system to work with new oEmbed features introduced in WordPress 4.4.
  • Revised Facebook Open Graph tags so they actually work on Facebook.
  • Changed in-browser base64 thumbnail encoding to JPG in order to reduce data transferred when saving. Should reduce 404 errors.
  • Improved user role security to prevent unauthorized users from modifying video settings or deleting encoded videos.
  • Now using Yoast SEO or All In One SEO Pack post descriptions for description metadata, when available.
  • Removed Spanish translation from the distribution in order to favor the new WordPress language packs.
  • Fixed several multisite encoding queue bugs, particularly when videos have identical post IDs on different sites.
  • Fixed bug that broke FFMPEG sample encode output and video rotation when a watermark overlay was enabled.
  • Fixed bug that incorrectly interpreted FFMPEG output as an error when the last line came from the AAC encoder.
  • Fixed bug that didn't initialize the nativecontrolsfortouch plugin setting.
  • Fixed bug that didn't set featured images on some videos uploaded using frontend uploaders.
  • Fixed bug that hid the wrong headers on the plugin settings tabs in WordPress 4.4+.
  • Fixed bug that disabled the text track remove button when editing videos in the media library.
  • Fixed bug that redundantly localized the frontend script every time a video was embedded on a page.

4.5.5 - August 20, 2015

  • Fixed a number of potential infinite loops and other recursion issues related to longstanding WordPress bug #17817.
  • Changed video player names with spaces (WordPress Default, JW Player) to one word camel case for JavaScript functions (WordPressDefault, JWPlayer).

4.5.4 - August 9, 2015

  • Added option to disable native controls on mobile devices when using the Video.js player.
  • Added Schema.org uploadDate and description tags which are required by Google for video listings.
  • Updated Video.js to version 4.12.11
  • Fixed undefined index error when editing videos with text tracks that don't have default enabled.
  • Fixed and localized "Saving..." overlay when saving browser-generated thumbnails.
  • Fixed bug that could generate an error when displaying the sample video on the plugin settings page.

4.5.3 - July 11, 2015

  • Fixed error that could zero out view counts when editing videos.
  • Fixed 'strlen' error when updating videos with subtitles.
  • Attempting to enable 'default' subtitle tracks on more browsers, but implementation is inconsistent.

4.5.2 - July 10, 2015

  • Fixed bug that failed to set the volume or count views when using the WordPress Default or JW Player.
  • Fixed bug that failed to count views when WordPress Default player was on autoplay.
  • Fixed Video.js inconsistent autoplay bug.

4.5.1 - July 9, 2015

  • Fixed bug that accidentally deleted thumbnail image IDs from video meta when editing attachments.
  • Prevented automatic re-writing of video URLs to a local address if a popular cloud storage address is entered in the shortcode (Amazon AWS, Rackspace, etc).
  • Restored full-resolution thumbnails when width is set to a percentage.

4.5 - July 7, 2015

  • This is probably the last completely free major release. Some advanced features will be converted to premium add-ons in the future. More info in the support forum.
  • Consolidated most video metadata database entries into a single array. This might slow things down the first time you load the Media Library.
  • Added pagination option for video galleries.
  • Added oEmbed provider data and option to allow oEmbed discovery from other sites.
  • Added experimental WEBM VP9 encoding format.
  • Added option to make the watermark overlay image a link.
  • Added video stats column to Media Library list view.
  • Added options for vertical video rotation and metadata removal using FFMPEG, now that some browsers recognize rotation metadata.
  • Added "default" attribute for subtitle/caption text tracks to turn tracks on when the video loads.
  • Added attachment edit hook that updates video thumbnail's parent post when the video's parent post changes.
  • Added error handling and reporting for in-browser thumbnails.
  • Added Video.js localization. Automatically changes Video.js language to the current WordPress language.
  • Updated Video.js to version 4.12.7
  • Updated Spanish translation.
  • Updated Facebook Open Graph video embedding tags.
  • Re-enabled native video player controls on mobile devices when using Video.js player for better responsive resizing and to allow Airplay & Chromecast controls.
  • Removed superfluous gallery height option.
  • Stopped inserting unnecessary width and height shortcode attributes when videos are set to the default width and height.
  • Stopped inserting unnecessary poster URL shortcode attribute when poster is set in the media library.
  • Fixed several bugs related to hosting media library files on external servers like Amazon S3.
  • Fixed bug that deleted replacement videos before encoding was finished when simultaneous encodes are enabled.
  • Fixed bug that dropped videos from the video encode queue when multiple videos were added to the database simultaneously, specifically when using Add From Server.
  • Fixed bug that created squashed encoded videos when they were shot vertically on a mobile device.
  • Fixed bug that added bad content to Open Graph video tag when other shortcodes were found before KGVID in the post.
  • Fixed bug that wrote multiple unnecessary meta entries to the database when image attachments were updated.
  • Fixed bug that disabled "Choose from Library" buttons in Firefox.
  • Fixed bug that incorrectly indicated thumbnail selection video files did not load in Firefox.
  • Fixed bug that allowed video thumbnails to overflow their container in the Media Library modal window in Firefox.
  • Fixed bug that allowed crossdomain in-browser thumbnails to load, but then fail when trying to save them in Safari.
  • Fixed bug that kept end of video overlay images on screen when user hit play again.
  • Fixed bug that incorrectly resized videos embedded through iframe.
  • Fixed bug that did not assign a default value to the qt-faststart/MP4Box application path for new installations.
  • Fixed bug that allowed selection of multiple thumbnails in Embed Video from URL window
  • Fixed number formatting of video play counter.
  • Fixed encode queue text indent bug.

4.4.2 - November 3, 2014

  • Added Google Universal Analytics event tracking.
  • Updated Spanish, French and Belgian translations.
  • Updated Video.js to version 4.10.2
  • Fixed bug that could prevent the media library from loading.
  • Fixed bug that prevented pop-up gallery thumbnails from resizing responsively.

4.4.1 - October 28, 2014

  • Fixed bug that loaded resolution selector plugin too late in the page.
  • Fixed bug that displayed the video poster image while switching resolutions.

4.4 - October 28, 2014

  • Added H.264 HTML5 video resolution switcher for the Video.js player. Automatically selects the appropriate resolution for the size of the displayed video and allows manual user switching on desktop computers.
  • Added option to set videos to automatically fill their containers.
  • Added buttons to manually set other videos in the media library as alternate formats for the current video.
  • Added option to encode a custom resolution.
  • Added option to replace original video with a lower-resolution H.264 video, WEBM or OGV.
  • Added buttons to generate thumbnails and encode additional formats for all previously uploaded videos.
  • Added plugin admin scripts to the frontend when Insert Media button is loaded. Works with bbPress now.
  • Added option to encode 64 and 32 kbps audio.
  • Added option to set a different application path for qt-faststart or MP4Box.
  • Added option to disable stdin during FFMPEG encoding. Particularly useful for IIS users.
  • Updated Video.js to version 4.9.1
  • Changed download link to a forced download for videos in the media library. No right-clicking necessary.
  • Changed pop-up video gallery to use inline code rather than an AJAX query.
  • Changed embedded video IDs to allow the same video to be embedded multiple times on a page.
  • Changed volume slider on plugin settings page to drop-down menu to fix settings save errors in Windows.
  • Changed 480p video format label to 360p to accurately reflect resolution of 16:9 videos. Format has always been 480p only for 4:3 videos.
  • Changed AAC encoder preference to libfdk_aac > libfaac > Native FFmpeg AAC encoder (aac) > libvo_aacenc.
  • Restored display of moov atom fix process in FFMPEG test output.
  • Fixed bug that made pop-up video windows 0 pixels wide in iOS 8.
  • Fixed bug that couldn't find video attachements that have been redirected to a CDN.
  • Fixed bug that quickly faded out the end overlay image in IE.
  • Fixed bug that prevented replacing encoded videos if there were any other videos in the queue.
  • Fixed bug that left the GUID as the original filename if replacing the video with an mp4 changed the extension.
  • Fixed bug that incorrectly reported all encoding fps values over 99 as "10".
  • Fixed bug that didn't recognize videos had completed encoding if there were audio frames left in the queue.
  • Fixed bug that left title overlay on iOS videos using the WordPress Default player.
  • Fixed bug that made video galleries display as inline-block when the inline video option was disabled.

4.3.5 - September 17, 2014

  • Fixed responsive height for videos using WordPress Default player.
  • Better fix for bug that prevented choosing thumbnails from the small video player in the new media library popup window in WordPress 4.0.

4.3.4 - September 10, 2014

  • Updated Video.js to version 4.8.1
  • Added default gallery end option to play the next video or close the popup window.
  • Restored watermark overlay in fullscreen for Video.js and WordPress Default players.
  • Restored browser thumbnail generation quality in WordPress 4.0.
  • Fixed bug that prevented choosing thumbnails from the small video player in the new media library popup window in WordPress 4.0.
  • Removed instances in which a video or watermark in the WordPress database would be input to FFMPEG through http instead of using the file path. Should fix some I/O errors, particularly with SSL.
  • Now setting the thumbnail as the featured image for the video attachment regardless of plugin settings.

4.3.3 - July 20, 2014

  • Changed .mov files back to type "video/mp4" to fix "No compatible source was found for this video" errors.
  • Added "mute" shortcode attribute.
  • Added default volume and mute options.
  • Added option to set custom default shortcode attributes.
  • Fixed WordPress default player alternate H.264 sources.
  • Fixed WordPress default player volume and preload settings.
  • Fixed Video.js volume slider appearance when using the custom skin.
  • Disabled JW Player custom context menu when right-clicking is disabled.

4.3.2 - July 15, 2014

  • Updated Video.js to version 4.6.4
  • Added Spanish, French, and Bulgarian translations.
  • Added ability to send advanced configuration attributes to JW Player. Any attributes added to the [KGVID] shortcode will be passed on without change.
  • Added multisite option to restrict FFMPEG settings access to super admins only.
  • Added better error reporting when FFMPEG isn't executing.
  • Added subtitles/captions fields to "Embed Video from URL" tab.
  • Added allowfullscreen to iframe embed codes.
  • Added fitvidsignore class to Video.js videos to help defeat FitVids.js-induced playback problems.
  • Added contentUrl schema.org metadata.
  • Fixed some gettext calls for translation.
  • Fixed bug that set alternate resolution H.264 videos to type "video/h264" instead of "video/mp4".
  • Fixed bug that incorrectly added "Other user's video" to video encode queue entries.
  • Fixed missing help icons on settings pages.
  • Fixed bug that disabled aspect ratio locking in the "Embed Video from URL" tab.

4.3.1 - April 8, 2014

  • Fixed errors when activating plugin for the first time and saving settings page in non-multisite installations.
  • Updated Video.js to version 4.5.1
  • Fixed pop-up gallery cross-origin bug for users with FORCE_SSL_ADMIN enabled.
  • Fixed error on network settings page when pressing the "Save Changes" button and resetting network settings using "Reset Options" button.
  • Added text-align:left to left-aligned galleries.
  • Added gettext calls to some text for translation.
  • Removed duplicate bitrate setting for WEBM encoding when using average bitrate.

4.3 - March 18, 2014

  • Prepared plugin for internationalization. Translators welcome!
  • Finally paying attention to multisite. Several FFMPEG settings and the encode queue are now controlled at the network level if the plugin is network activated.
  • Added option to encode more than one video at a time.
  • Added JW Player option if the JW Player WordPress plugin is active.
  • Added video subtitle/captions support.
  • Revised and simplified video gallery popup method. Switched to lighter SimpleModal plugin and no longer loading jQuery-ui libraries.
  • Added "gallery_end" shortcode attribute to set an action when a pop-up video gallery video ends.
  • Added next and previous buttons to navigate between pop-up video gallery items.
  • Updated Video.js to version 4.4.3
  • Strobe Media Playback is now deprecated. New features added to the plugin might not work if this player is selected.
  • Added option to add a watermark to videos encoded with FFMPEG/LIBAV.
  • Added option to automatically generate multiple thumbnails when a video is uploaded.
  • Added option to encode more than one video at the same time.
  • Added option to turn on video download link by default.
  • Added option to set video preload attribute.
  • Added list of shortcode attribute options to the post edit help tab.
  • Added "order" and "orderby" shortcode attributes to sort videos embedded without a URL or ID specified.
  • Added float to inline videos to allow text to wrap around them.
  • Added play button overlay to gallery thumbnails when using WordPress Default player.
  • Applied video alignment setting to video galleries for center and right justifying galleries.
  • Now only loading plugin-related JavaScripts when the shortcode is used on the page and moved links to the footer to speed up page loading.
  • Added wpdb->prepare to all database queries for increased security.
  • Added nonce check when recording video play counts for increased security.
  • Fixed bug that broke responsive resizing in IE 8 and for all videos with apostrophes in their titles.
  • Fixed bug that disabled FFMPEG if the path to WordPress had spaces in it.
  • Fixed bug that generated an error if the exec function was disabled on the server using suhosin or safe mode.
  • Fixed bug that caused video encode problems when FFMPEG output contained special characters.
  • Fixed bug that generated misaligned play button arrows in some themes when using the Video.js player.
  • Fixed bug that sometimes generated jagged rows in galleries with mixed aspect ratios.
  • Fixed bug that attempted to generate thumbnails using FFMPEG if a user had previously installed FFMPEG, disabled in-browser thumbnails, then disabled FFMPEG.
  • Fixed several user capability related bugs related to users who were not assigned any roles and capabilities that were not assigned to any roles.
  • Changed video title overlay z-index to 103 to avoid floating over other elements.

See the full changelog on my website.

Requires: 4.4 or higher
Compatible up to: 4.7.1
Last Updated: 2 weeks ago
Active Installs: 30,000+


4.7 out of 5 stars


5 of 12 support threads in the last two months have been marked resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

100,1,1 100,1,1 100,1,1 100,1,1 100,2,2
100,2,2 100,2,2
100,1,1 100,5,5 100,1,1 100,1,1 86,7,6 100,1,1 100,1,1
100,2,2 0,1,0
100,2,2 100,2,2 0,1,0 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2
100,1,1 100,1,1 100,2,2
100,1,1 100,1,1
100,1,1 67,3,2
100,2,2 100,1,1
100,1,1 100,1,1