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

このトピックでは、適切に録画された動画要素を Brightcove Player で再生可能な HTML5 のパノラマ 360º 動画に変換するこのプラグインの仕組みについて学びます。

プレーヤー例

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

はじめに

機能

360°/VR プラグインの機能は次のとおりです:

  • モバイルデバイスでのジャイロスコープ連携: 端末を回転させると視点が変化します。
  • Cardboard/VR モードのサポート: 対応するデバイスでは、コントロールバーに Cardboard ビューアーアイコンが表示されます。押すと、Cardboard 形式の VR ゴーグルに対応した投影に調整されます。
  • Video Cloud Media の 360° 設定: Video Cloud 動画を使用している場合、プラグインは Video Cloud メディアの 360° 設定を尊重します。値が存在しない場合は通常の動画として再生されます。360°/VR プラグインを使用するプレーヤーで、360° 動画のみが再生されることを保証する必要はありません。
  • 非 Video Cloud メディア: Video Cloud から配信されるメディアを使用しない場合でも、このプラグインを使用できます。次のように projection 値を設定したオブジェクトを渡して、vr プラグインを呼び出す必要があります:
    <script type="text/javascript">
      videojs.getPlayer('myPlayerID').ready(function() {
        var myPlayer = this;
        myPlayer.vr({projection: '360'});
      });
    </script>

    もちろん、上記のコードは、本ドキュメントで後述するとおり、プラグインの JavaScript と CSS ファイルがインクルードされていることを前提としています。

ブラウザの互換性

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

  • Chrome デスクトップ
  • Chrome モバイル(Android 6+)
  • Firefox デスクトップ
  • Edge
  • Safari デスクトップ *
  • Safari モバイル(iOS 11.2+) *

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

実装の概要

プラグインの実装は単純で、次の 2 つの手順を完了するだけです:

360° 動画の取り込み

360° 動画を録画したら、それを Video Cloud に取り込む必要があります。360° 動画の仕組みを少し理解しておくと、選択する取り込みプロファイルの理由が分かりやすくなります。360° 動画は球体の内側に投影されるように撮影されています。つまり、プレーヤーで実際に表示される領域は動画全体のごく一部にすぎません。次のスクリーンショットはこの概念のおおよそのイメージを示しています。赤い四角の内側がプレーヤーに表示される部分ですが、動画全体のごく一部にすぎません。

show part of video

動画のごく一部しか一度にプレーヤーに表示されないため、低品質のレンディションに切り替わる可能性のない、非常に高品質のレンディションを再生したいところです。本質的に、動画の一部を「ズームイン」して見ているため、低品質のレンディションでは視聴体験が大きく低下してしまいます。このため、動画をアップロードする際、Brightcove では 1080p のレンディション 1 つと少なくとも 1 つの音声レンディションを含むカスタム Dynamic Delivery 取り込みプロファイルを作成することを推奨します。これは 360°/VR プラグインを使用する場合に HLS レンディションよりも好ましい方法です。

動画を取り込む際は、必ず 360° 投影としてマークされていることを確認してください。これを行うには:

  1. Media モジュールで動画を開きます。
  2. 右側のナビゲーションで Advanced Settings をクリックします。
  3. Video Playback アコーディオンを展開します。
  4. Video is 360° Projection を有効にします。
  5. Save をクリックします。
Video Playback section in Advanced Settings showing the Video is 360° Projection toggle enabled

Players モジュールを使用した実装

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

  1. PLAYERS モジュールを開き、新しいプレーヤーを作成するか、プラグインを追加したいプレーヤーを探します。
  2. プレーヤーのリンクをクリックして、プレーヤーのプロパティを開きます。
  3. Overview タブの Plugins セクションを展開します。
  4. Add Plugin ドロップダウンから Custom Plugin を選択します。
    Custom Plugin
  5. Plugin Name に vr と入力し、Add をクリックします。このプラグインではオプションを入力する必要はありません。
  6. Stylesheets タブをクリックします。
    Scripts Tab
  7. Add Stylesheet をクリックし、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 タブをクリックします。
    Scripts Tab
  9. Add Script をクリックし、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. Save をクリックします。
  11. Overview タブの Styling セクションを展開します。
  12. 視聴体験を向上させると感じる場合は、タイトルと説明のドックを無効化できます。これを行うには、Show title and description チェックボックスのチェックを外します。
    disable dock
  13. プレーヤーを公開するには、Publish Changes をクリックします。
  14. 開いているダイアログを閉じるには、Close をクリックします。

オプション

forceCardboard

型: boolean デフォルト値: false

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

motionControls

型: boolean デフォルト値: iOS と Android では true

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

projection

型: string デフォルト値: auto

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

player.mediainfo.projection

型: string デフォルト値: undefined

この値は、動画に応じて 360° 動画のオン/オフを切り替えるために、ソースごとに設定する必要があります。

debug

型: boolean デフォルト値: false

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

sphereDetail

型: Integer デフォルト値: 32

360 動画が投影される仮想 3D 球体をレンダリングするために使用されるセグメント数を設定します。例の値は 32、64、128、256 など、数値が大きいほど視覚的な明瞭度は増加しますが、ユーザー環境によっては再生パフォーマンスが低下する場合があります。

広告

現在、このプラグインの広告サポートは IMA3 プリロールのみに限定されています。その他の広告タイプおよび広告ベンダーは現在サポートされていません。

既知の問題

  • 同じプレーヤーで VR コンテンツと非 VR コンテンツを混在させることはサポートされていません。このような視聴体験を提供する場合の推奨事項は、必要に応じてプレーヤーを削除し再作成することです。Brightcove Player サンプル: プレーヤーを動的に読み込む を参照してください
  • iOS 13 では、アプリがデバイスのモーションおよび方位(ジャイロスコープ)機能を使用するためにユーザーに許可を求めます。開発者は、この機能を実装するために Permission API を使用する必要があります。詳細は Apple の Requesting Permission ドキュメントを参照してください。
  • 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° プラグインが動画を正しくレンダリングするには、プレーヤーの Preload Video Before Playback 設定を Preload Video (fastest) に設定する必要があります:
    ios preload
  • iOS では、360°/VR プラグインが iOS ネイティブプレーヤーで動作しないため、フルスクリーンモードボタンは無効化されます。このため、iOS と Brightcove Player ドキュメントに記載されているように、非フルスクリーン動画再生用に playsinline 属性を設定することを推奨します。

変更履歴

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