Adds quality switch functionality and automatic embed code generation to the wordpress video player.
Switch Video Quality adds a quality switch button to the native wordpress video player (mediaelement.js), that allows to choose between different resolutions (e.g., SD and HD) and/or formats (mp4, webm, ogv) of a self-hosted html5-compatible video. Additionally it provides an iframe embed code to let your viewers embed your video into their website (optional).
switch-video-quality
to the /wp-content/plugins/
directory.The player with the switch video quality button, the embed button, the optional info-overlay and the playlist (twenty-fifteen theme).
The embed code overlay with the custom size calculator.
Use the normal wordpress video shortcode (with width and height attributes set).
All settings are made within the post edit screen.
Normal users: Ask your server administrator to increase the max filesize limit.
Admins: Edit the php.ini file and change the values of upload_max_filesize, post_max_size and memory_limit.
Maybe your webserver doesn’t support pseudo streaming over http. Ask your server administrator to install the missing module. Also make sure your video files are encoded properly. MP4s must have the MOOV Atom placed at the beginning of the file.
At page load the plugin checks the types of html5 video your browser can play and then only the first supported file format is used.
No, sorry, the plugin is meant to be used with only one player instance per post/page. But you can have multiple posts (each with Switch Video Quality activated) displayed on a page, e.g., if you query by a certain category or tag.
There’s a filter hook for doing that. Copy the following code into your functions.php and change the content of the $to_be_excluded
array with the registered names of the post types you want to exclude:
add_filter('svq_exclude_post_types', 'custom_svq_exclude_post_types'); function custom_svq_exclude_post_types($excluded){ $to_be_excluded = array('post_type_name', 'another_post_type_name'); $excluded = array_merge($excluded, $to_be_excluded); return $excluded; }
If you don’t know the registered name of a custom post type: it’s shown in your browser’s adress bar when you look at the post type’s managing screen (after edit.php?post_type=
).
Use the filter hook ‘svq_default_quality’. Copy the following code into your functions.php and change the return value to whatever (unitless video height) you like:
add_filter('svq_default_quality', 'set_svq_default_quality'); function set_svq_default_quality(){ return 720; }
Your videos don’t need to exactly match the defined quality. The one with the quality closest to (but not smaller than) the defined quality will be set as default.
Use the filter hook ‘svq_embed_setting_overwrite’. Copy the following code into your functions.php and change the post IDs of the $not_active array to enable the embed functionality for all posts except the ones with the IDs you specified. You can easily modify this code to disable embedding for all posts or enable it for all posts that are in a certain category.
add_filter( 'svq_embed_setting_overwrite', 'overwrite_svq_embed_setting', 10, 2); function overwrite_svq_embed_setting($setting, $post_id) { $not_active = array(32, 42); if ( !in_array($post_id, $not_active) ){ $setting = true; } return $setting; }
You can use the filter hook ‘svq_embed_page_name’. Copy the following code into your functions.php and replace the page name in the return statement.
add_filter( 'svq_embed_page_name', 'my_svq_embed_page_name'); function my_svq_embed_page_name(){ return 'embeds'; }
Note that the default template used for generating the iframe content won’t output the post content or any metadata of a specified page. If you want to add any code to the iframe, you’ll need to write a custom template (see another question). But if you just want a certain page name to be a part of your embed codes, you can leave that page blank and use the default template.
For everything to work properly copy the content of the plugin’s embed template and modify or add only what you need. Save it as ‘svq_embeds.php’ (mandatory) and upload it to your theme or child-theme directory and the plugin will automatically use it.
If you want to put it somewhere else, use the filter hook ‘svq_locate_template’. Copy the following code into your functions.php and change the path to the template:
add_filter('svq_locate_template', 'svq_locate_custom_template'); function svq_locate_custom_template(){ return YOURCUSTOMPATH . '/svq_embeds.php'; }