Skip to content

Adds a quality selector button to the Video.js control bar for Video.js 8+

License

Notifications You must be signed in to change notification settings

bzizmo/videojs-contrib-quality-menu

 
 

Repository files navigation

videojs-contrib-quality-menu

Quality Selection Menu UI

videojs-contrib-quality-menu provides a menu button the the player's control bar which allows you to manually select the playback quality in HLS or Dash sources. If resolution information is available on all renditions, the UI will display quality options by the lines of horizontal resolution (e.g. 360p, 480p, 720p, 1080p). If resolution information is not available, it will fallback to show options SD and HD for Standard Definition and High Definition respectively. The plugin will use bitrate information for each rendition to determine whether it is SD or HD, using a configurable dividing line.

Installation

npm install --save videojs-contrib-quality-menu

Options

defaultResolution

Type: String, Default: none

Defines the default resolution or resolution mapping to use. Pass it either the horizontal resolution or SD/HD

sdBitrateLimit

Type: Number, Default: 2000000

Defines the upper bitrate limit (exclusive) for considering a rendition SD.

useResolutionLabels

Type: boolean Default: true

When true, the plugin will attempt to categorize renditions by lines of horizontal resolution when available. Set to false to always use SD/HD categorization.

resolutionLabelBitrates

Type: boolean Default: false

When true, the plugin will attach bitrate information to the resolution labels (e.g. 720p @ 13806 kbps). This option has no effect when useResolutionLabels is false or when resolution information is unavailable.

Usage

To include videojs-contrib-quality-menu on your website or web application, use any of the following methods.

<script> Tag

This is the simplest case. Get the script in whatever way you prefer and include the plugin after you include video.js, so that the videojs global is available.

<script src="//path/to/video.min.js"></script>
<script src="//path/to/videojs-contrib-quality-menu.min.js"></script>
<script>
  var player = videojs('my-video');

  player.qualityMenu();
</script>

Browserify

When using with Browserify, install videojs-contrib-quality-menu via npm and require the plugin as you would any other module.

var videojs = require('video.js');

// The actual plugin function is exported by this module, but it is also
// attached to the `Player.prototype`; so, there is no need to assign it
// to a variable.
require('videojs-contrib-quality-menu');

var player = videojs('my-video');

player.qualityMenu();

RequireJS/AMD

When using with RequireJS (or another AMD library), get the script in whatever way you prefer and require the plugin as you normally would:

require(['video.js', 'videojs-contrib-quality-menu'], function(videojs) {
  var player = videojs('my-video');

  player.qualityMenu();
});

Known Issues

Setting the source in the player config and building with single video template will cause the quality menu to not be initialized properly since the source will be set through a call to the videojs constructor which does not have access to the player or plugins. The source should be set by calling player.src(). This does not affect users of videocloud.

License

Apache License, Version 2.0. Copyright (c) Brightcove, Inc

About

Adds a quality selector button to the Video.js control bar for Video.js 8+

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 88.6%
  • SCSS 6.0%
  • HTML 5.4%