現在のレンディションのビットレートを取得する

このトピックでは、現在再生中のレンディションのビットレートを取得する方法について説明します。

ビットレートの取得

以下のコードを使用して、現在再生中のレンディションのビットレートを取得できます。

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

以下は、Videoタグ プレーヤー実装でこのコードを使用する方法を示しています。

<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('再生中のレンディションのビットレート :', myPlayer.tech(true).vhs.playlists.media().attributes.BANDWIDTH);
          })
        });
      </script>

この場合、結果は次のようにコンソールに表示されます。

result in console

コンソールの使用

同じ情報はコンソールからも取得できます。プレーヤーに ID(この例では myPlayerID)が割り当てられている場合、以下を使用して現在再生中のレンディションのビットレートを取得できます。

retrieve in console

使用時の注意点

コードを使用する際は、以下の点に注意してください。

  • このコードは、デマルチプレックスされた動画プレイリスト、または動画/音声が多重化されたプレイリストに対して、HLS または DASH マニフェスト内で定義されている内容に基づいてビットレートを返します。
  • 以下の場合、このコードは動作しません
    • MP4 でエンコードされた動画
    • Safari 上の HLS など、ネイティブ再生が使用されている場合
    • マニフェストなしでメディア プレイリストのみが送信されている場合。以下は動作しません
      https://d2zihajmogu5jn.cloudfront.net/bipbop-advanced/gear2/prog_index.m3u8
      一方、以下は動作します。
      https://d2zihajmogu5jn.cloudfront.net/bipbop-advanced/bipbop_16x9_variant.m3u8
  • Brightcove Player は常に現在の再生位置より先のコンテンツをバッファリングするため、返される値は実際の再生位置よりも少し先の情報になる場合があります。
  • 現在再生中の動画のレンディション プレイリストに関する情報を確認したい場合は、以下のいずれかを使用できます。
    • Segment Metadata テキストトラックを使用して、現在再生中のデマルチプレックスされた動画プレイリスト、または動画/音声が多重化されたプレイリストに関する情報を取得します。
    • mediainfo プロパティを使用し、sources 配列を確認します。以下はその例です。
      mediainfo sources
  • 音声コンテンツについては、多重化・デマルチプレックスのいずれの場合でも、ビットレート情報を取得することはできません。

どのプレイリストが使用されているのか?

コード内ではプレイリストが参照されていますが、プレーヤーの実装では単一の動画のみが再生されています。

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

これは動画のプレイリストを指しているわけではありません。ここで参照されているのは、レンディションを含む HLS マニフェストであり、これもプレイリストと呼ばれます。例えば、この動画には HLS と MP4 の両方のレンディションが含まれています(HLS レンディション、つまり HLS プレイリストが強調表示されています)。

video sources