見出し画像

DeoVR アプリのドキュメント


1. サーバーの設定方法

ビデオ オン デマンド (VoD) をストリーミングする最も簡単な方法は、特別なWebサーバー構成を必要としないプログレッシブ HTTP ストリーミングを使用することです。
DeoVRプレーヤーはビデオ ヘッダーをダウンロードし、この情報に基づいて HTTP Range リクエストを Web サーバーに送信して、ビデオ ファイルの必要な部分をダウンロードします。

すべての Android バージョンとの互換性を確保するには、HTTPS が必要です。

ビデオ ファイルをWeb サーバーのパブリック フォルダーにアップロードするだけで、ビデオを正しくエンコードしていれば、追加のサーバー構成を必要とせずに機能するはずです。

この方法には 2 つの欠点があります。

  1. ユーザーのインターネット速度に応じたシームレスな品質変更はありません

  2. ユーザーは直接リンクを使用してビデオをダウンロードできます。

2. ビデオエンコーディングの基本

利用可能なビデオとオーディオのエンコーディングは多数ありますが、そのすべてを高解像度 VR ビデオの再生に使用できるわけではありません。

すべてのVR 対応PC にはハードウェア ビデオ デコード アクセラレーションが搭載されており、これを活用することをお勧めします。詳細は以下で説明します。
「キー フレームの距離」を 1 ~ 2 秒に設定すると、ファイル サイズとスムーズなシークの間で適切な妥協が保証されます。

視聴者が確実にビデオを視聴できるようにするための簡単なルールがあります。

  1. ケースと MP4 コンテナ形式に応じて、ビットレート 128k ~ 384k の AAC オーディオ エンコードを選択します。
    それには制限があります:

    1. ハードウェア デコーダが処理できる最大解像度は 4096x4096 @ 30 FPS または 4096x2048 @ 60 FPS です。ユーザーがスムーズに再生できるようにするには、これらの制約を超えないようにしてください。

    2. 以下にリストする最新のビデオ コーデックと同じ画質を得るには、より多くのビットレート (インターネット帯域幅) が必要です。

  2. より高度なビデオ コーデックは H.265/HEVC で、H.264 よりも低いビットレートで同じ画質を提供します。

    NVidia GeForce GTX 10 Sires ビデオ カードは、内蔵ハードウェア ビデオ デコーダを使用して最大 8192x8192 @ 30 FPS までデコードできます。
    一部のモバイル Exynos SoC。 H.264 ビデオ コーデックと同じオーディオ設定とコンテナ形式を使用します。

    制限事項:

    1. ブラウザはこのコーデックをサポートしていません。これは、Web ブラウザの直接ストリーミングに使用できないことを意味します。

    2. Windows 7 は、このコーデックのハードウェア アクセラレーションによるビデオ デコードをサポートしていません。

    3. ソフトウェア ビデオ エンコーダを使用したエンコードには、H.264 と比べてはるかに時間がかかります。

  3. VP9はGoogleの代替ビデオ エンコーダで、同じビットレートのビデオ品質の点で H.265 に非常に近く、オープン ソース ソフトウェアです。 Vorbis オーディオ コーデックと WebM コンテナ形式を使用します。

    制限事項:

    1. すべての Apple 製品が正式にサポートしているわけではありません。

    2. @TODO: Win 7 および Win 10 でハードウェア デコード/コーデックをテストする必要があります

すべてのユーザーが確実にビデオを視聴できるようにしたい場合は、いくつかのストリーミング オプションをユーザーに提供する必要があります。絶対的な最小値は次のようになります。

  1. ハイエンド ユーザー向けの最高の解像度とフレームレートのオリジナル H.265 ビデオ。

  2. 最大限の互換性を実現する H.264 4k ビデオ オプション。

ビットレート:

ビットレートに上限はありませんが、ビットレートがストリーミング ビデオの品質に与える影響についての記事を読むことをお勧めします。 ストリーミング VR ビデオの品質に関しては、ほとんどの場合、30Mbsで十分です。

DeoVR は、Quest 2 を含むすべてのOculus デバイスで Rift_CV1 カラー ペースを使用します。OpenXRの仕様では、これがすべての Oculus HMD で標準化されたカラーに推奨される色空間であると述べています。

  1. 赤 Red (0.666、0.334)

  2. 緑 Green (0.238、0.714)

  3. 青 Blue (0.139、0.053)

  4. ホワイトWhite D75 (0.298、0.318)

3.ビデオコーデックの再生

Windows OS では、DeoVR 再生が機能するために正しいビデオ コーデックがインストールされている必要があります。
App Player は次のコーデックのいずれでも動作します。

必ず少なくとも 1 つはインストールしてください。

4. 統合の概要

DeoVR をサイトに統合するには 2 つの方法があります。

A. 単一ビデオのディープリンク
1 つのビデオの説明を含むファイル .json がサーバーにアップロードされます。次に、サイトにボタンが追加されます。
ディープリンク ボタンをクリックすると、DeoVR が起動し、このファイルからビデオが開始されます。ビデオはすぐに再生されます。

B. 複数のビデオの選択

DeoVR ブラウザから呼び出されます。
ビデオのリストを含む単一の .json ファイルがサーバーにアップロードされます。次に、DeoVR の「インターネット ブラウザ」でユーザーはサイト (www.deovr.com など) を呼び出し、リストからビデオを選択できる選択シーンにアクセスします。

サイト上のディープリンクから呼び出されます。
ビデオのリストを含む単一の .json ファイルがサーバーにアップロードされます。次に、このファイルへのディープリンクを含むボタン (例: 「deovr://https://www.deovr.com/something.json」) がサイトに追加されます。
ブラウザでサイトを開いてディープリンク ボタンをクリックすると、DeoVR が起動し、ユーザーの選択シーンが表示されます。

統合を 1 つだけ実装することも、両方を同時に実装することもできます。

5. 単一ビデオのディープリンクのフォーマット

重要!
DeoVR はビデオの設定を内部的に保存します。タイトルはビデオのタイトルになりますが、同じタイトルの複数のビデオを送信する場合は、ID を使用してそれらを区別します。

"title": "ExampleVideo"
"id": 555

1. 解決策
「videoSources」のリストを作成します。各ビデオソースの URL と解像度を設定します。

"videoSources":
[
    {
        "resolution": 1080,
        "url": "C:/JsonExampleVideos/ExampleVideo_1080p.mp4"
    },
    {
        "resolution": 1440,
        "url": "C:/JsonExampleVideos/ExampleVideo_1440p.mp4"
    }
]

2. ビデオ プレビュー
プレーヤーでファイルの巻き戻しを表示するために使用されるビデオ ファイルを追加できます。

"videoThumbnail":"https://yoursite.com/ExampleVideo_SeekLookUp.mp4"

リソースを節約するために、ビデオは低解像度かつ低 fps である必要があります。モバイル デバイス用の DeoVR では、この機能は利用できない場合があります。

3. 選択シーンから再生する場合に必要なサムネイルとプレビュー (オプション)
このビデオをリストから再生する場合、次の行を追加する必要があります。

"videoPreview":"https://yoursite.com/ExampleVideo_Preview.mp4"
"thumbnailUrl":"https://yoursite.com/ExampleVideo_Thumbnail.jpg"

「videoPreview」フィールドにはビデオ ファイルへのリンクが含まれており、リスト内のこのビデオにカーソルを移動すると表示されます。このフィールドは必須ではありません。

「thumbnailUrl」フィールドには、リストに表示される画像を含むファイルへのリンクが含まれている必要があります。リストを使用する場合、このフィールドは必須です。

4. タイムスタンプ
「タイムスタンプ」の新しいリストを作成します。各タイムスタンプには、秒単位の時間と名前の値が含まれます。

"timeStamps":
[
    {
        "ts": 15,
        "name": "Rabbit jumps"
    },
    {
        "ts": 30,
        "name": "Rabbit Sleeps"
    }
]

重要!
タイムスタンプを正しく機能させるには、ビデオの長さを秒単位で指定する必要もあります。それ以外の場合は不要です。

"videoLength": 60

5. 補正
「補正」を宣言し、水平 (「x」) または垂直 (「y」) オフセット [最小 -7.5、最大 7.5]、明るさ (「br」)、コントラスト (「cont」) または彩度 (「sat」) を設定します。 ") 値 [最小 -70、最大 70]。

"corrections":
    {
        "x": 5,
        "y": -5,
        "br": -10,
        "cont": 10,
        "sat": 20
    }

6. その他の
「stereoMode」は、横並び立体レイアウトの場合は「sbs」、上下レイアウトの場合は「tb」、カスタム UV レイアウトの場合は「cuv」(現在は Canon RF52 レンズのみに使用)、または「off」に設定できます。モノスコピックビデオ。

"stereoMode": "tb"

ビデオデータがjsonの場合、「screenType」フィールドでメッシュのタイプを設定できます。
次の値を使用して調整します。

"screenType": "sphere"
  • 「flat(フラット)」 - フラット 2D ビデオ

  • 「dome(ドーム)」 - 180 度の等値メッシュ

  • 「sphere(球)」 - 360 度の等値メッシュ

  • 「fisheye(魚眼)」 - 180 度の魚眼メッシュ

  • 「mkx200(mkx200)」 - 200度魚眼メッシュ

  • 「rf52」 - 190 度キヤノン魚眼メッシュ


7. 完全な JSON の例

{
  "encodings":[
    {
      "name":"h264",
      "videoSources":[
        {
          "resolution":1080,
          "url":"https://yoursite.com/ExampleVideo_1080p.mp4"
        },
        {
          "resolution":1440,
          "url":"https://yoursite.com/ExampleVideo_1440p.mp4"
        },
        {
          "resolution":1920,
          "url":"https://yoursite.com/ExampleVideo_1920p.mp4"
        },
        {
          "resolution":2160,
          "url":"https://yoursite.com/ExampleVideo_2160p.mp4"
        },
        {
          "resolution":2880,
          "url":"https://yoursite.com/ExampleVideo_2880p.mp4"
        },
        {
          "resolution":3360,
          "url":"https://yoursite.com/ExampleVideo_3360p.mp4"
        },
        {
          "resolution":3840,
          "url":"https://yoursite.com/ExampleVideo_3840p.mp4"
        }
      ]
    }
  ],
  "title":"ExampleVideo",
  "id":123,
  "videoLength":60,
  "is3d":true,
  "screenType":"sphere",
  "stereoMode":"tb",
  "skipIntro":0,
  "videoThumbnail":"https://yoursite.com/ExampleVideo_SeekLookUp.mp4",
  "videoPreview":"https://yoursite.com/ExampleVideo_Preview.mp4",
  "thumbnailUrl":"https://yoursite.com/ExampleVideo_image.jpg",
  "timeStamps":[
    {
      "ts":15,
      "name":"Wall"
    },
    {
      "ts":30,
      "name":"Window"
    },
    {
      "ts":45,
      "name":"Door"
    }
  ],
  "corrections":{
    "x":5,
    "y":-5,
    "br":-10,
    "cont":10,
    "sat":20
  }
}

重要!
「is3d」は常に true である必要があり、falseの場合は強制的にモノスコピックになります。

6. 複数のビデオ選択ディープリンク (選択シーン)

Jsonファイルには、単一のビデオのコレクションが含まれています (単一ビデオのディープリンクを参照)。選択シーンのインターフェイスの下にタブとして表示される複数のシーンを作成できます。

Jsonファイルには少なくとも 1 つのシーンが含まれている必要があります。各シーンはビデオの独自のリストに対応します。

シーンのリスト形式の例:

{
   "scenes":[
      {
         "name":"Trailers",
         "list":[
            … description of video as in single video deeplink …
         ]
      },
      {
         "name":"Full Videos",
         "list":[
            … description of video as in single video deeplink …
         ]
      }
   ],
   "authorized":"0"
}

その場合、「Trailers(トレーラー)」と「Full Videos(フルビデオ)」という名前の 2 つのシーンが作成されます。

1 つのシーンと 2 つのビデオを含む完全なファイルの例:

{
  "scenes":[
    {
      "name":"Library",
      "list":[
        {
          "encodings":[
            {
              "name":"h264",
              "videoSources":[
                {
                  "resolution":1080,
                  "url":"https://yoursite.com/ExampleVideo_1080p.mp4"
                },
                {
                  "resolution":1440,
                  "url":"https://yoursite.com/ExampleVideo_1440p.mp4"
                }
              ]
            }
          ],
          "title":"ExampleVideo1",
          "screenType":"sphere",
          "stereoMode":"tb",
          "skipIntro":0,
          "videoThumbnail":"https://yoursite.com/ExampleVideo1_SeekLookUp.mp4",
          "videoPreview":"https://yoursite.com/ExampleVideo1_Preview.mp4",
          "thumbnailUrl":"https://yoursite.com/ExampleVideo1_image.jpg",
          "timeStamps":[
            {
              "ts":15,
              "name":"Wall"
            }
          ],
          "corrections":{
            "x":5,
            "y":-5,
            "br":-10,
            "cont":10,
            "sat":20
          },
          "is3d":true,
          "videoLength":60,
          "id":123
        },
        {
          "encodings":[
            {
              "name":"h264",
              "videoSources":[
                {
                  "resolution":1080,
                  "url":"https://yoursite.com/ExampleVideo2_1080p.mp4"
                },
                {
                  "resolution":1440,
                  "url":"https://yoursite.com/ExampleVideo2_1440p.mp4"
                }
              ]
            }
          ],
          "title":"ExampleVideo2",
          "screenType":"sphere",
          "stereoMode":"tb",
          "skipIntro":0,
          "videoThumbnail":"https://yoursite.com/ExampleVideo2_SeekLookUp.mp4",
          "videoPreview":"https://yoursite.com/ExampleVideo2_Preview.mp4",
          "thumbnailUrl":"https://yoursite.com/ExampleVideo2_image.jpg",
          "timeStamps":[
            {
              "ts":15,
              "name":"Wall"
            }
          ],
          "corrections":{
            "x":3,
            "y":-3,
            "br":-5,
            "cont":5,
            "sat":10
          },
          "is3d":true,
          "videoLength":65,
          "id":234
        }
      ]
    }
  ],
  "authorized":"0"
}

ビデオのリストが大きすぎる場合は、短縮形式を使用できます。

この場合、ビデオの再生に必要なすべてのフィールドの代わりに、フィールド「video_url」を追加した 4 つのフィールドのみが使用されます。
このフィールドには、各ビデオの完全な説明へのJsonが含まれています (単一ビデオ ディープリンクを参照)。

短縮形式の必須フィールド:

  • sumnailUrl - サムネイルの画像のアドレス。

  • title – ビデオのタイトル。

  • videoLength – ビデオの長さ (秒単位)。

  • video_url – ビデオの説明を含む Json のアドレス

例:

{
  "scenes":[
    {
      "name":"Library",
      "list":[
        {
          "title":"Play with a pretty dog",
          "videoLength":79,
          "thumbnailUrl":"https://deovr.com/s/images/feed/thumb1.png",
          "video_url":"https://deovr.com/deovr/video/id/1"
        },
        {
          "title":"Bikini car wash",
          "videoLength":242,
          "thumbnailUrl":"https://deovr.com/s/images/feed/thumb2.png",
          "video_url":"https://deovr.com/deovr/video/id/2"
        },
        {
          "title":"Date with a girl",
          "videoLength":401,
          "thumbnailUrl":"https:\/\/deovr.com\/s\/images\/feed\/thumb3.png",
          "video_url":"https://deovr.com/deovr/video/id/2"
        }
      ]
    }
  ]
}

DeoVR の .json ファイル名の選択
«http://www.yoursite.com» のリンクを使用して DeoVRブラウザからサイトにアクセスできるようにしたい場合は、ファイル 'deovr' (拡張子と引用符なし) をサーバーのルートディレクトリに置きます。

ドメイン名のみを含むリンクをたどる場合、DeoVR はアドレス «http://www.yoursite.com/deovr» のデータを要求します。
他の URL (例: http://www.yoursite.com/video/test) を呼び出す場合、リクエストは変更せずに同じリンクで行われます。サーバー応答の結果は、ビデオの説明のリストを含む .json である必要があります。

DeoVR での承認
ログインを転送する場合、サーバー応答の結果には、次の値を持つフィールド「authorized」も含まれている必要があります。

1 --- ユーザーは正常に承認されています
0 --- アカウントを持たないユーザー
-1 --- 認証エラー

認証エラーが発生した場合、DeoVR は「Invalid login or password!(ログインまたはパスワードが無効です!)」というメッセージを表示します。
認証が使用されない場合、フィールドは必須ではないか、その値は 0 である必要があります。

認証試行の場合、.json ファイル (リストとビデオの両方) を含む現在のリンクが POST リクエスト メソッドを通じて開かれます。

「ログイン」フィールドと「パスワード」フィールドには、それぞれユーザーが入力したデータが入ります。認可の結果は、前述した.jsonの「authorized」フィールドに反映されるはずです。

認可を利用する場合、シーン取得リクエストや動画説明リクエストにも「ログイン」と「パスワード」が引き継がれます。

7. 画像のサポート

ユーザーに (ビデオではなく) 画像のフィードを提供するには、エンコード クラスの代わりに画像パス (画像へのリンク) を「path」変数に渡す必要があります。

StereoMode、ScreenType の場合は、screenType および StereMode パラメータを設定するか、画像ファイル名にフラグを直接指定できます。

例:

{
  "scenes":[
    {
      "name":"Library",
      "list":[
        {
          "path":"https://yoursite.com/picture1_tb_360.jpg",
          "title":"ExamplePicture1",
          "screenType":"sphere",
          "stereoMode":"tb",
          "thumbnailUrl":"https://yoursite.com/thumbnail_picture1.jpg",
          "corrections":{
            "x":5,
            "y":-5,
            "br":-10,
            "cont":10,
            "sat":20
          },
          "is3d":true,
          "id":123
        },
        {
          "path":"https://yoursite.com/picture2_sbs_360.jpg",
          "title":"ExamplePicture2",
          "screenType":"sphere",
          "stereoMode":"sbs",
          "thumbnailUrl":"https://yoursite.com/thumbnail_picture2.jpg",
          "is3d":true,
          "videoLength":65,
          "id":234
        }
      ]
    }
  ],
  "authorized":"0"
}

8. リモコン

このガイドでは、リモコンがどのように機能するかを説明します。シンプルなリモート コントロール クライアント アプリとソース コードは、次の場所にあります。

https://deovr.com/s/DeoRemoteControlTest.zip

クライアントは C# Windows フォームで作成されます。

DeoVR の準備:

  1. DeoVRアプリを起動する

  2. 選択シーンまたはファイル ブラウザで設定メニューを開きます (「右上の歯車マーク」)

  3. トグルスイッチ「リモートコントロールを有効にする」

  4. Windows では、ファイアウォールから通知を受け取ります。受信接続を確認してください

  5. 選択したシーンまたはファイル ブラウザからビデオを開始します。

リモートコントロールクライアントの準備

  1. DeoRemoteControlTest アプリを解凍して起動します

  2. DeoVR と同じ PC で起動した場合は、「接続」をクリックします。そうでない場合は、最初に DeoVR の IP アドレスを指定する必要があります。

  3. 接続が確立されると、「クライアントが接続されました」というメッセージが表示され、その後、DeoVR アプリからのデータの受信が開始されます。

  4. ビデオを見ている間、次の情報を受け取ります:

    • ビデオファイルへのパス

    • プレーヤーの状態 (再生または一時停止の可能性があります)

    • 現在のビデオ時間

    • そして現在の再生速度

  5. DeoVR に送信できるようになります。

    • 新しいビデオ パス (新しいビデオは DeoVR ですぐに開かれます)

    • SeekTo 値 (新しいビデオ時間を設定します)

    • 再生速度 (現在の再生速度が変更されます)

このアプリのソースコードは C# で書かれており、無料で使用できます。リモートコントロールクライアントである cs は別のプログラムで通信に使用できます。
Connect、Disconnect、Send メソッドと OnConnected、OnDisconnected、OnDataReceived イベントを実装します。

OnDataReceived は、ビデオプレーヤーを使用しているときに 1 秒ごとに実行されます。
OnDataReceived と Send は、DeoVR からデータを入力して送信または受信できる RemoteApiData クラスと連携して動作します。
TestFormでボタンハンドラーを確認できます。

cs を参照して、RemoteApiData を入力する方法を確認します。

Raw DeoVR リモート コントロール プロトコルの説明
リモート コントロール クライアントは、TCP ポート 23554で DeoVR を実行しているデバイスに接続する必要があります。

接続が確立されると、DeoVR は 1 秒ごとにパケットの送信を開始します。リモート クライアントは、ping の目的でパケット (空または json 付き) を 1 秒ごとに DeoVR に送信する必要もあります。

パケット構造:

  • 各パケットは、UTF8 形式で表される JSON データの長さの 4 バイトの整数値で始まります。

  • 長さがゼロの場合、ビデオ データは渡されません。空のパケットは ping の目的で使用されます。

  • DeoVRが 3 秒以上いかなるタイプのパケットも受信しない場合、接続が閉じられます。

エンコードされた json の構造は次のとおりです。

{
    "path":"D:/test.mp3",
    "duration":123.45,
    "currentTime":10.5,
    "playbackSpeed":1.0,
    "playerState":0
}

PlayerState は列挙子です: Play = 0、Pause = 1。
path、currentTime、playbackSpeed フィールドを含むパケットを送信できます。

DeoVR は自動的に新しいファイル/パスを開き、特別な時間にシークしたり、再生速度を変更したりします。唯一の条件は、DeoVR のビデオ プレーヤー内にいることです。

9. 空間オーディオ

DeoVR は空間オーディオのサポートを追加します。最終的な VR ビデオは、Opus コーデックでエンコードされたオーディオとともに .mkv コンテナで提供される必要があります。

現時点では tbe8_2 形式のみがサポートされています。
空間オーディオの作成の詳細については、 Spatial Workstation Web サイトに進んでください。 Spatial Workstation からエクスポートする場合は、FB360 Matroshka (experimental) を選択します。

DeoVR ディープリンク スキームを介して Web サイトで空間オーディオのサポートを有効にするには、エンコーディングを含む JSON に別の「encodings_spatial」フィールドを追加します。

「エンコーディング」と同様に、他のすべての情報を指定しますが、代わりに空間トラックのみを含む .mkv ファイルを指します。
重要: 通常のステレオ トラックはファイルから除外する必要があります。

エンコーディングではなくパスを使用してファイルを再生している場合、ファイルにはフラグ「-FB360」または「_FB360」が付いている必要があります。
2021 年 4 月の時点では、オーディオ トラックの手動切り替えはまだサポートされていません。

空間オーディオを含むビデオ ファイルをアップロードする場合に重要です。
マスター ファイルは MP4 または MKV 形式で提供され、2 チャンネルのステレオ トラックが含まれている必要があります。

空間オーディオをサポートする必要がある場合、マスター ファイルは MKV 形式であり、2 つのトラックが含まれている必要があります。
トラック 1 には、Facebook 360 TBE 8.2 形式の空間オーディオを含むトラックが含まれている必要があります。
トラック 2 が存在し、2 チャンネルのステレオ形式である必要があります。

例:

{
  "scenes":[
    {
      "name":"Library",
      "list":[
        {
          "encodings":[
            {
              "name":"h264",
              "videoSources":[
                {
                  "resolution":1080,
                  "url":"https://yoursite.com/ExampleVideo_1080p.mp4"
                },
                {
                  "resolution":1440,
                  "url":"https://yoursite.com/ExampleVideo_1440p.mp4"
                }
              ]
            }
          "encodings_spatial":[
            {
              "name":"h264",
              "videoSources":[
                {
                  "resolution":1080,
                  "url":"https://yoursite.com/SpatialExampleVideo_1080p.mkv"
                },
                {
                  "resolution":1440,
                  "url":"https://yoursite.com/SpatialExampleVideo_1440p.mkv"
                }
              ]
            }
          ],
          "title":"ExampleVideo1_Spatial",
          "screenType":"sphere",
          "stereoMode":"tb",
          "skipIntro":0,
          "videoThumbnail":"https://yoursite.com/ExampleVideo1_SeekLookUp.mp4",
          "videoPreview":"https://yoursite.com/ExampleVideo1_Preview.mp4",
          "thumbnailUrl":"https://yoursite.com/ExampleVideo1_image.jpg",
          "timeStamps":[
            {
              "ts":15,
              "name":"Wall"
            }
          ],
          "is3d":true,
          "videoLength":60,
          "id":123
        }
  ],
  "authorized":"0"
}

10. サポートされているメッシュの命名規則

DeoVR は、次の投影スタイル (メッシュ) をサポートしています。

  • Flat 2D plane(平坦な 2D 平面)

  • Equirectangular(正距円筒図法)

    • 180° FOV(180°の視野)

    • 360° FOV(360°の視野)

  • Fisheye projection(魚眼投影:)

    • 180° FOV(180°の視野)

    • 190° FOV(180° の視野)

    • 200° FOV with MKX lens correction(MKX レンズ補正による 200° FOV)

    • 220° FOV with VRCA lens correction(レンズ補正による 220° FOV)

目の位置:

  • Side-by-Side(サイド・バイ・サイド)

  • Top-Bottom(トップ・ボトム)

ローカル ファイルを正しいモードで再生するには、次のリストから適切なフラグをファイル名に追加します。

ステレオ モード (正距円筒図法) の場合:

  • _180

  • _360

  • _fisheye

  • _fisheye190 \\Canon VR lens

  • _rf52  \\Canon VR lens

  • _mkx200

  • _vrca220

画面タイプを切り替えるには:

  • LR」または「3DH」または「SBS

  • TB」または「3DV」または「OverUnder

例えば:

Title_SBS_180.mp4 sets Side by Side & 180°
My_video_SBS_mkx200.mp4 sets Side by Side & 200°
Title_FB360_SBS_180.mkv sets Side by Side & 180 & Spatial sound

11.HLS、RTMP、RTSP

今後は、Raspberry Pi を使用して、Zcam K2 Pro カメラから Oculus Quest および Quest 2 ヘッドセットに簡単にストリーミングできるようになります。

これにより、ディレクターのモニター ビューが VR に直接反映され、録画ボタンを押す前にシーンを調整できます。録画とストリーミングを同時に試してみるとよいでしょう。

開始する前に、このビデオの説明にあるRaspberry Pi SD イメージを必ずマウントしてください。 Raspberry Pi には純正の充電器または適切なパワーバンクを使用してください。
Raspberry Pi をルーターや他の WiFi デバイスから遠ざけてください。

ストリーミングはマスターカメラから機能し、映像を5Mbps モノラルで表示し、遅延は約 10 秒です。マスター カメラまたはカメラ A は、画面と録画ボタンのあるカメラです。

Quest ヘッドセットに DeoVR がインストールされていることを確認してください。

  1. カメラの電源を入れます。

  2. カメラメニューで「接続」>「ネットワーク」>「ETH」に移動します。 「ダイレクト」を設定する

  3. Raspberry Pi の電源を入れます。イーサネット ケーブルを使用して Raspberry Pi を K2 Pro カメラに接続します。

  4. ストリーミングが自動的に開始されます。

  5. ヘッドセットを「RPI4_Camera_GW」WiFi ネットワークに接続します。

  6. DeoVR プレーヤー アプリでブラウザに移動し、http:// に切り替えます (https:// をクリックして http:// に切り替えます)。

  7. ブラウザに「10.0.0.1 ( http://10.0.0.1 )」と入力し、「Enter」をクリックして、「Start Stream」をクリックします。 10 秒の遅延が発生します。

  8. カメラが逆さまになっている場合は、プレーヤーの設定を使用して逆さまにします。 [設定] > [画像] タブに移動し、「回転」スライダーを +/- 180 度までドラッグします。

  9. VR で画像を確認し、シーンに最終調整を加えます。

これは RTSP ストリーミングであり、K2 カメラの唯一のオプションです。

RTSP サポートは Windows プラットフォームでのみ利用可能です。
RTMP はサポートされていません。
HLSがサポートされています。

DeoVR で独自の HLS ストリームを開きたい場合は、HLS ストリームの URL を DeoVR に入力するだけです。
または、HLS ストリームへのエントリを含む「deovr」という名前の json ファイルを作成することもできます。

このファイルを使用すると、DeoVR ダッシュボードから複数の HLS ストリームに簡単にアクセスできます。
deovr json ファイルの詳細については、記事 5 を参照してください。

{
    "scenes": [
        {
            "name": "VR180 Samples",
            "list": [
                {
                    "path": "https://yoursite.com/Example.m3u8",
                    "title": " ExampleStream",
                    "screenType": " sphere",
                    "stereoMode": "sbs",
                    "thumbnailUrl": "https://yoursite.com/ExampleTumb.jpg",
                    "is3d": true,
                    "id": "01"
                }
            ]
        }
    ],
    "authorized": "0"
}

12. アナグリフモード

アナグリフ モードは、ある写真が別の写真と比べてどのように見えるかを示す VR クリエイター向けのツールです。

ビデオをつなぎ合わせる前に VR 映像のクイック プレビューを作成する際の位置合わせプロセスが大幅に高速化されます。
最も遠い点が一致し、画像が同じ水平線上にあることが重要です。

このツールを使用するには、 このビルドを DeoVR アプリの上にインストールします。

13. パススルーモード

サポートされているヘッドセット:

  • Quest 3 (カラーステレオ)

  • Quest Pro (カラーステレオ)

  • Pico 4 (カラーモノラル)

  • Quest 2(モノクロ)

  • Pico Neo 3 Pro(モノクロ)

  • Valve Index(単色)

  • Quest 1(モノクロ)

パススルーは、DeoVR を使用して現実世界と仮想世界を融合する方法です。複合現実または拡張現実 (AR)とも呼ばれます。

仮想現実ヘッドセットのパススルー/AR 機能を使用して、VR コンテンツをユーザーの現実世界の環境に取り込みます。 Quest 3 や Valve Index など、前面カメラを備えた VR ヘッドセットが必要です。

DeoVR を使用したパススルー コンテンツの表示:

  1. DeoVR アプリの最新バージョンに更新します。

  2. Valve Index ヘッドセットを使用している場合は、SteamVR でルームビューを必ず有効にしてください。

  3. 黒または無地の背景、またはパススルー タグが付いている DeoVR で適切な VR ビデオを見つけます。

  4. ビデオを開いて、プレーヤー設定 (右側のパネル) に入ります。下部の「パススルー」セクションに移動します。 「パススルーを有効にする」をオンに切り替えます。

  5. ここで設定を調整して、メインのアクションが表示されたまま、背景をフェードさせて現実世界の周囲を明らかにします。

    色相、彩度、明るさのスライダーを使用して透明にしたい色に合わせた後、色の範囲を広げて色とそれに似た色の削除を開始します。フォールオフを使用して、可視ピクセルから透明ピクセルへの移行をソフトにします。

パススルー コンテンツを DeoVR にアップロードする:

初期のパススルーでは、黒、緑、白などの 1 色のみをカットできました。デフォルトでは黒色が設定されており、ユーザーが色を変更したい場合は、色相、彩度、明るさ、色の範囲、減衰(ぼかし)などの設定を使用します。

クリエイターは、コンテンツをアップロードするとき (または後日) 特定のパススルー パラメーターをビデオに追加できます。このページは、DeoVR Creator のパネルに新しく追加されたページです。 [2024年2月]

各設定の正確な値を追加します:色相、彩度、明るさ、色の範囲、減衰、またはグリーン スクリーンのデフォルト設定のままにします。 (アルファ チャネル パススルーを使用している場合は、このページでそれを選択することもできます。)

過去の仕様:

以前は、ユーザーが特定の色の背景を使用してパススルー コンテンツをアップロードしたい場合、ビデオの説明でそれらの設定を送信すると、DeoVR モデレーターはそれらの設定をそのビデオのデフォルトとして使用していました。

#passthrough settings#
Hue 30
Saturation 100
Brightness 100
Color Range 360
Falloff 1000

あるいは、もっと単純に言えば、

#passthrough settings#
30
100
100
360
1000

正しい設定を見つけるには、作成者はまずオフラインで設定を識別する必要があります。
(ビデオをヘッドセットにアップロードし、DeoVR アプリを使用してローカルでテストすることによって)

ステップバイステップのチュートリアル:

この例では、黒い背景のビデオを使用します。

  • トリガーボタンをクリックしてメインプレーヤーメニューを開きます

  • 右側に設定ウィンドウが表示されます

  • パススルー設定タブ (目のアイコン) を見つけます。

  • ウィンドウの上部で、「Passthrough(パススルー)」の横にあるトグルをクリックして有効にします。

  • これにより、パススルーカラーとして黒が自動的に選択されるため、ビデオの背景が透明になります。

  • 範囲やフォールオフなどの設定を調整して、より良い結果を得ることができます

黒い背景のビデオを作成するには、完全に黒い色 (以下を参照) を使用できます。これは、黒い背景のパススルー設定のデフォルトとして設定されています。

Adobe After Effects、またはカラー 16 進数/カラー ピッカーをサポートするその他のソフトウェアで作業している場合は、カラー ピッカーで次の番号を使用します: #000000

この方法では、ビデオの品質や照明条件によっては、オブジェクトのエッジにアーティファクトが発生する可能性があります。

この例では、靴が黒いため影響を受け、部分的に透明になっていることがわかります。

このため、パススルー ビデオには緑または青の色が推奨されます。

緑の背景

ビデオの背景が緑色の場合、次の設定を使用して透明にすることができます。

DeoVR は、ほとんどのクリエイターがパススルーに使用するデフォルトの緑色の背景色を使用します。適切な緑色の背景を色選択するには、下のこの画像を使用するか、カラー ピッカー#2BE640内で次の 16 進コードを使用してください。

この方法の方がはるかにクリーンで、生成されるアーティファクトが少ないことがわかります。ただし、完璧ではありません。最適な値を見つけるには、黒の背景で上記と同じロジックを使用し、DeoVR にアップロードするときに説明セクションに値を含めます。

14. 魚眼ビデオのアルファ チャネル パススルー (13.9 以降)

パススルーの最新かつ高度なバージョンはアルファ パススルーと呼ばれ、ビデオ内に埋め込みアルファ チャネルを作成する必要があります。

これはより複雑な方法ですが、品質をより適切に制御でき、プレビューのための設定は必要ありません。ボタンをクリックするだけで、パススルーと非パススルーを切り替えることができます。現時点では、 魚眼円の隣にアルファ チャネルがパックされているため、魚眼投影 VR ビデオでのみ機能します。

利点:

  • グリーンスクリーン/背景の削除をポストプロダクションにオフロードするため、ヘッドセットの結果がはるかに良くなります。

    たとえば、髪の毛などの細かい部分が失われることはもうありません。クリエイターは、アプリのクロマキー操作に影響を与えるかどうかを心配することなく、自由に映像を色補正できるようになりました。

  • ビデオにアルファ チャンネルを追加し、オプションのパススルー バージョンに変換します。 AI 背景除去ツールの出現により、何を選んでも高品質のマットを入手できるようになるのは時間の問題です。

正しいレイアウトを作成するためのガイド:

合成ソフトウェアで、緑色を抑制した通常のビデオと、アルファのみを白黒にした別のバージョン (後で赤チャンネルのみを使用します) を通常のビデオと同じサイズと長さでエクスポートします。

私たちのツールを使用して、魚眼 VR ビデオにアルファ チャネルをパックします。

ダウンロード: Deo-Alpha-Packer.zip

  • zip を解凍し、Deo-Alpha-Packer.exeを実行します。

  • 設定メニューで、FFMPEG をリンク/インストールしてください。

  • カラービデオとアルファビデオをそれぞれのフィールドにロードし、「エクスポート」を実行します。

あるいは、次の図に従って、自分で合成ソフトウェアにパックします。

最後のステップは、アップロードする前にファイル名に _ALPHA を追加するか、アップロード者に「Has Alpha(アルファあり)」オプションをオンにするように指示することです。

これで、DeoVR プレーヤーはビデオを完璧なパススルーで表示します。

Adobe Premiere アルファチャンネルプリセット:

Adobe Premiere を使用して VR コンテンツを一緒に編集している場合は、これらのプロジェクト プリセット ファイルを使用して、パススルー用のアルファ チャネル コンテンツを作成します

この .rar ファイルには、2 つのマスク、サンプル ビデオ、およびチュートリアルが含まれています。

Adobe After Effects アルファチャンネルプリセット:

同様に、Adobe After Effects を使用して VR コンテンツを作成している場合は、これらのプロジェクト プリセット ファイルを使用して、パススルー用のアルファ チャネル コンテンツを作成します。

この .rar ファイルには、プロジェクト ファイル、サンプル ビデオ、チュートリアルが含まれています。

15. 字幕

DeoVR は、最先端の字幕サポートを提供し、位置、拡大縮小、BG の不透明度の設定、および任意の深度への配置を行う機能を備えています。

サポート:

  • .srt形式

  • アルファベット: すべてヨーロッパ文字、すべてキリル文字、日本語、中国語、韓国語、アルメニア語、グルジア語、タイ語、マラヤーラム語

設定方法:

  • DeoVR.com ストリーミング

    • メインプレーヤーパネルで字幕を有効にする

    • 言語を変更するには、プレーヤー設定/字幕タブに移動し、字幕ドロップダウンを使用して他の言語を選択します

    • 「開く」ボタン (フォルダーアイコン) を使用して独自の字幕をロードし、ファイルマネージャーで字幕を選択することもできます。

  • ローカルストレージの再生:

    • 字幕をビデオと同じフォルダーにコピーします

    • ビデオファイル名と一致するように名前を変更します

  • DLNAストリーミング:

    • 字幕を内部ストレージフォルダー(DLNAフォルダーではない)にコピーします

    • プレーヤー設定/字幕タブに移動し、上部の「開く」ボタン(フォルダーアイコン)をクリックして、ファイルマネージャーで字幕を選択します

16. サポートされているローカル ファイル形式とコーデック

DeoVR プレーヤーは、ローカル ファイルの再生時に現在利用可能な最も一般的なビデオおよびオーディオ ファイル形式とコーデックをサポートしますが、Windows アプリと Android/スタンドアロン ヘッドセット (Quest/Pico) アプリの間では若干の違いがあります。

サポートされているファイル:

DeoVR Windows アプリ: AVI、MPEG、MP4、MOV、MPG、M4V、JPG、PNG、M3U8

Quest/Pico アプリ: MPEG、MP4、MKV、WebM、MPG、M4V、JPG、PNG、M3U8

ビデオコーデック:

DeoVR Windows アプリ: HEVC/H.265、H.264、H.263 (DivX/XVid)、MJPEG、WMV、Hap、NotchLC、DV

Quest/Pico アプリ: HEVC/H.265、H.264、H.263 (DivX/XVid)、VP8、VP9、DV、非圧縮 R10K、非圧縮 V210、非圧縮 2VUY

オーディオコーデック:

DeoVR Windows アプリ: MP3、AAC、WAV、FLAC、OPUS、μLAW、ADPCM、リニア PCM

Quest/Picoアプリ:MP3、AAC、WAV、FLAC、OPUS、リニアPCM

17. APKを直接ダウンロード

このリンクを使用してapk ファイルをダウンロードします。

SideQuestを使用して、Oculus Quest 1、2、ProPico 3、4のヘッドセットに DeoVR をインストールすること
もできます。

英語のドキュメンテーションを自動翻訳機能で日本語にし、少し修正しました。

https://deovr.com/app/doc