360°/VR ビデオ プラグイン

このトピックでは、適切に記録された動画要素を Brightcove Player で再生できる HTML5 のパノラマ 360º ビデオへ変換する、このプラグインの使用方法について説明します。

プレーヤー例

以下のサンプル動画は、360°/VR プラグインの使用例を示しています。動画を再生すると、デスクトップではマウスや矢印キー、モバイル デバイスではジャイロスコープを使って視点を操作できます。再生が開始されると、360° ビデオ用のロゴ付き再生ボタンは消えます。

はじめに

機能

360°/VR プラグインには以下の機能があります:

  • モバイル デバイスでのジャイロスコープ連携:携帯端末を回転させると視点が変化します。
  • Cardboard/VR モード対応:対応デバイスでは、コントロールバーに Cardboard ビューアーアイコンが表示されます。押すと、Cardboard 形式の VR ゴーグルに対応した投影に切り替わります。
  • Video Cloud メディアの 360°設定:Video Cloud 動画を使用している場合、プラグインは Video Cloud メディアの 360°設定を自動的に参照します。値が設定されていない場合は通常の動画として再生されます。360°動画のみが再生されるように管理する必要はありません。
  • 非 Video Cloud メディアVideo Cloud 以外の配信メディアを使用する場合でも、このプラグインを利用できます。次のように vr プラグインを呼び出し、projection を指定する必要があります:
          <script type="text/javascript">
            videojs.getPlayer('myPlayerID').ready(function() {
              var myPlayer = this;
              myPlayer.vr({projection: '360'});
            });
          </script>

    もちろん、このコードを動作させるには、後述のとおりプラグインの JavaScript と CSS を読み込んでおく必要があります。

ブラウザ互換性

このプラグインは、以下の主要ブラウザの最新バージョンと互換性があります:

  • Chrome デスクトップ
  • Chrome Mobile(Android 6+)
  • Firefox デスクトップ
  • Edge
  • Safari デスクトップ*
  • Safari Mobile(iOS 11.2+)*

このプラグインは Internet Explorer では動作しません

実装概要

プラグインの実装は簡単で、次の 2 ステップを行います:

360° ビデオの取り込み

360° ビデオを撮影したら、Video Cloud に取り込む必要があります。360° ビデオがどのように機能するかを少し理解しておくと、どのトランスコードプロファイルを選択すべきかが分かりやすくなります。360° ビデオは球体の内側に投影されることを前提に撮影されています。そのため、プレーヤーで実際に見えている領域は動画全体の一部分にすぎません。以下のスクリーンショットは、この概念の概要を示しています。赤い四角の内部がプレーヤーに表示される部分ですが、これは動画全体のごく一部です。

show part of video

任意のタイミングでプレーヤーに表示されるのは動画の小さな部分であるため、高品質のレンディションを常に使用し、低品質のレンディションに切り替わらないようにすることが重要です。つまり動画の一部を「拡大して」閲覧するため、低品質のレンディションでは視聴体験が大幅に低下してしまいます。この理由から、動画をアップロードする際には、Brightcove では 1080p のレンディションを 1 つと、少なくとも 1 つの音声レンディションを含むカスタム Dynamic Delivery トランスコードプロファイルの作成を推奨しています。このプラグインを使用する場合、HLS レンディションよりもこちらが適しています。

また、取り込んだ動画が正しく 360° プロジェクションとしてマークされていることを確認してください。動画情報セクションの例は次のとおりです:

show part of video

Players モジュールで実装する

360°/VR プラグインを実装するには、プラグイン名と JavaScript および CSS ファイルの URL を追加します:

  1. PLAYERS モジュールを開き、新しいプレーヤーを作成するか、プラグインを追加したい既存のプレーヤーを選択します。
  2. プレーヤーのリンクをクリックしてプロパティを開きます。
  3. 左側のナビゲーションメニューから プラグイン をクリックします。
  4. プラグインの追加 ドロップダウンから カスタム プラグイン を選択します。
    Custom Plugin
  5. プラグイン名 には vr と入力し、保存 をクリックします。このプラグインではオプションを入力する必要はありません。
  6. スタイルシート タブをクリックします。
    Scripts Tab
  7. スタイルシートの追加 をクリックし、CSS URL に以下を入力します:
    https://players.brightcove.net/videojs-vr/2/videojs-vr.css

    Brightcove Player 6 を使用している場合は、代わりに次の URL を使用してください:

    https://players.brightcove.net/videojs-vr/1/videojs-vr.css
  8. スクリプト タブをクリックします。
    Scripts Tab
  9. スクリプトの追加 をクリックし、JavaScript URL に以下を入力します:
    https://players.brightcove.net/videojs-vr/2/videojs-vr.min.js

    Brightcove Player 6 を使用している場合は、代わりに次の URL を使用してください:

    https://players.brightcove.net/videojs-vr/1/videojs-vr.min.js
  10. 保存 をクリックします。
  11. 左側のナビゲーションメニューから スタイル設定 をクリックします。
  12. より良い視聴体験のためにタイトルと説明のドックを無効化したい場合は、タイトルおよび説明文を表示 のチェックを外します。
    disable dock
  13. プレーヤーを公開するには、公開と埋め込み > 変更の公開 をクリックします。
  14. 開いているダイアログを閉じるには、閉じる をクリックします。

オプション

forceCardboard

Type: boolean 既定値: false

すべてのデバイスで Cardboard ボタンを強制的に表示します。

motionControls

Type: boolean 既定値: iOS と Android では true

モーション/ジャイロコントロールを有効にするかどうかを決定します。

projection

Type: string 既定値: auto

ビデオタイプ projection オプションの値
sphere 360Sphereequirectangular
cube Cube または 360_CUBE
360° ビデオではない場合 None
player.mediainfo.projection を使って現在の動画が 360° か確認したい場合 AUTO
左右分割(Side-by-side)の 360° ビデオ 360_LR
上下分割(Top-to-bottom)の 360° ビデオ 360_TB

player.mediainfo.projection

Type: string 既定値: undefined

動画ごとに 360° 再生のオン/オフを切り替えるために設定します。

debug

Type: boolean 既定値: false

プラグインのデバッグログを有効にします。

sphereDetail

Type: Integer 既定値: 32

360° ビデオが投影される仮想 3D 球体を描画する際のセグメント数を指定します。例として 32、64、128、256 などがあり、数値を大きくすると画質は向上しますが、ユーザー環境によっては再生パフォーマンスが低下する可能性があります。

広告

現時点では、このプラグインでサポートされる広告は IMA3 プリロールのみです。他の広告タイプや広告ベンダーは現在サポートされていません。

既知の問題

  • 同じプレーヤーで VR と非 VR コンテンツを混在させることはサポートされていません。 このような視聴体験を提供する場合は、必要に応じてプレーヤーを削除し、再作成することを推奨します。詳細は Brightcove Player サンプル:プレーヤーを動的に読み込む を参照してください。
  • iOS 13 では、デバイスのモーションおよび方位(ジャイロスコープ)機能を使用するためにユーザーの許可が必要です。開発者は Permission API を使用してこの機能を実装する必要があります。詳細は Apple の 権限のリクエスト ドキュメントをご覧ください。
  • Safari 12.x では、モバイル デバイス向けのジャイロスコープ連携がデフォルトで無効になっています。機能を有効化するには、Motion & Orientation Access の設定を変更する必要があります。
  • VR プラグイン使用時、Safari ではネイティブ HLS 字幕は表示されません。
  • 360°/VR プラグインはライブ配信で動作する場合がありますが、公式にはサポートされていません。
  • 最新の 360°/VR プラグインは Brightcove Player 7.0.0 以降に対応しています。
  • 360°/VR プラグインは MP4 レンディションを使用するため、複数音声トラックをサポートしません(ブラウザが MP4 の複数音声をサポートしていないため)。複数音声の 360° ビデオを扱う場合は、MP4 レンディションを含まないトランスコードプロファイルを使用してください。
  • 360°/VR プラグインは Internet Explorer では動作しません。
  • 360°/VR プラグインは DRM をサポートしていません。
  • ステレオスコピック(立体視)/スタック形式のビデオはサポートされていません。
  • モバイル デバイスでは水平スワイプのみが機能します(視点を水平に移動)。垂直スワイプは無効ですが、デスクトップ ブラウザでは垂直スワイプも機能します。
  • Brightcove Player の iframe 実装では、画面の向きは変更されません。
  • iOS で 360° プラグインが動画を正しくレンダリングするには、プレーヤー設定の 再生の前に動画を事前ロード動画の事前ロード (最速) に設定する必要があります。
    ios preload
  • iOS では、360°/VR プラグインが iOS ネイティブ プレーヤーで動作しないため、フルスクリーン ボタンが無効化されます。これにより非フルスクリーン再生が推奨され、iOS と Brightcove Player ドキュメントに記載のように、playsinline 属性の設定が推奨されます。

変更履歴

変更履歴については こちらの変更履歴 を参照してください。