Retrieve Bitrate of Current Rendition

In this topic, you will learn how to retrieve the bitrate of the currently playing rendition.

Retrieving the bitrate

You can use the following code to retrieve the bitrate of the currently playing rendition:

player.tech(true).vhs.playlists.media().attributes.BANDWIDTH

The following shows how to use the code with an Advanced player implementation:

<video-js id="myPlayerID"
  data-account="1507807800001"
  data-player="default"
  data-embed="default"
  controls=""
  data-video-id="6201753345001"
  data-playlist-id=""
  data-application-id=""
  width="960" height="540"></video-js>
<script src="https://players.brightcove.net/1507807800001/default_default/index.min.js"></script>

<script>
  videojs.getPlayer('myPlayerID').ready(function () {
    var myPlayer = this;
    myPlayer.on('play', function () {
      console.log('Bitrate of playing rendition :', myPlayer.tech(true).vhs.playlists.media().attributes.BANDWIDTH);
    })
  });
</script>

The result, in this instance, would appear in the console as follows:

result in console

Using the console

You can retrieve the same information in the console. Given the player is assigned an ID, in this case myPlayerID, the following can be used to get the bitrate of the currently playing rendition:

retrieve in console

Usage details

Please note the following details when using the code:

  • The code will return the bitrate based on what is defined in the HLS or DASH manifests for a demuxed video playlist or a muxed video/audio playlist.
  • The code will NOT work with the following:
    • MP4 encoded videos
    • When native playback is used, like HLS on Safari
    • When only a media playlist is sent without a manifest. This will NOT work:
      https://d2zihajmogu5jn.cloudfront.net/bipbop-advanced/gear2/prog_index.m3u8
      while this will
      https://d2zihajmogu5jn.cloudfront.net/bipbop-advanced/bipbop_16x9_variant.m3u8
  • The returned value could be a bit ahead of where playback is currently happening as Brightcove Player is always buffering content ahead of current playback location.
  • If you wish to see information on the currently playing video's rendition playlist, you can use one of the following:
    • The Segment Metadata text track to get information about the currently playing demuxed video playlist or muxed video/audio playlist.
    • The mediainfo property where you can view the sources array, an example of which is shown here:
      mediainfo sources
  • It's not possible to get the bitrate information of the audio content, whether it's muxed or demuxed.

What playlist is used?

In the code a playlist is referenced, but the player implementation was only playing a single video:

myPlayer.tech(true).vhs.playlists.media().attributes.BANDWIDTH

This is NOT referring to a playlist of videos. Rather it is referencing an HLS manifest of renditions, which is also referred to as a playlist. For instance, in this video there are both HLS and MP4 renditions (the HLS renditions, or HLS playlist, are highlighted):

video sources