■Oculus Quest の画像をパソコンに取り込む（ミラーリング）いくつかの方法

##**■はじめに**
・VRの映像を視聴者以外の人にもわかってもらうために外部デバイスに出力する必要がありますが、パソコンに取り込めれば編集や配信も行うことができるようになるので活用できる幅が広がります。そんないくつかの方法について試したので忘れないうちに**備忘録**として残しておきます

###**■■ここで出来るようになること**
・OculusQuest で表示されている映像をミラーリングしてパソコンに取り込むことができるようになります。
　・OculusQuest - Chrome (Browser)
　・OculusQuest - ODH (Oculus Developer Hub 開発用アプリ)
　・OculusQuest - iPhone - AnyCast - CaptureBoard - Bandicam or OBS
　・OculusQuest - Scrcpy

###**■■環境**
・Oculus Quest
・Windows10 Pro

**※上記は現時点（2021/04/23）で動作確認が取れた組み合わせになります。最新の環境の組み合わせについては各自でご確認下さい**

▲初投稿：2021-04-30

##**■やってみよう！**
###**■■OculusQuest - Chrome (Browser)**
・Questの映像をChrome (Browser)で見ることができます
###**・前提**
・OculusQuestとパソコンは同じネットワーク（WiFi）に接続する必要があります
・パソコン側にGoogleChromeをインストールする必要があります
・Oculusのサイトに事前にログインしてください
###**・方法**
・パソコン側でChrome (Browser)で下記URLにアクセスしてください
https://www.oculus.com/casting
すると下記のような画面が表示されます。Quest側で行う手順が書かれています
![oq001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224568/4e6449bb-7a9b-32f9-b846-6e5fa960c2b5.png)
・Quest側でメニューからシェアを選択して、ミラーリングを実行します
![oq003-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224568/b8194669-fae7-ea89-b742-00fa4f8fca17.png)
・その後、接続可能なデバイスの一覧が出てくるので先ほどのURLを呼び出したパソコンを選択します
・これでミラーリングが開始されブラウザ内にQuest側の映像が表示されるようになります
![oq004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224568/4ca93d61-b9ff-f628-aff5-cd9986aa8dd6.png)
・現状の映像共有だけであれば、一番簡単です。必要ならキャプチャツールで動画を保存します

###**■■OculusQuest - ODH (Oculus Developer Hub 開発用アプリ)**
・ODH (Oculus Developer Hub）開発用アプリですが、Questの映像をミラーリングする機能も持っているのでそれで見ることができます
###**・前提**
・OculusQuestとパソコンは同じネットワーク（WiFi）に接続する必要があります
・パソコン側にODH (Oculus Developer Hub 開発用アプリ)をインストールする必要があります
　https://developer.oculus.com/downloads/package/oculus-developer-hub-win/
・Oculus Linkを利用可能にしておいてください（ADBドライバー インストール）
###**・方法**
・パソコンとOculusQuestを有線接続して側でODHを起動します
・パソコン側でODHを起動します（最初の場合、Oculusアカウントでログインします）
・画面左側のMyDeviceから接続先を選択します
![odh001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224568/8fba85ef-f295-8a0b-ad59-fb6c3e0444cd.png)
・CastDeviceからCastをクリックしてQuestとミラーリングを実行します
![odh002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224568/451dad1c-8684-8f2d-a48d-2bd2d7fc7e4d.png)
・Questの映像がミラーリングされます
![odh003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224568/cf47fb3e-458c-c69b-aa5e-2a3da858d318.png)
・ODHからQuestの映像をキャプチャ、動画のレコーディングをすることができます
![odh005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224568/28c29972-eb9c-111d-0002-c6d38f630024.png)
・ODHのADB over Wi-Fi機能を選択するとQuestとWiFi経由で接続することもできます
・その際、OculusQuestとパソコンは同じネットワーク（WiFi）に接続する必要があります
![odh004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224568/5a0bced1-ed7b-2d4f-9ac2-59f8abbae96a.png)
・有線での接続準備する必要がありますが、録画やキャプチャ機能が使えるので便利ですし、開発用の別の機能も利用が可能になります。

###**■■OculusQuest - iPhone - CaptureBoard - Bandicam or OBS**
・Questの映像をiPhoneにミラーリングし、そのiPhone の映像をパソコンに取り込みます
###**・前提**
・OculusQuestとiPhoneとパソコンは同じネットワーク（WiFi）に接続していた方がいいです
・パソコン側にキャプチャ用のツール（Bandicam、OBS等々）
・AnyCastとiPhone間は事前に設定しておいてください
###**・方法**
・下記のサイトで詳細に説明していますので、下記のサイトの方を参照してください
https://qiita.com/KSxRDevelop/items/35af15c1e7b249b639a6
![ocu001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224568/5a8ef498-14f8-5314-f061-83fab9faedae.png)
・手順としては色々やることがあるので大変ですが、キャプチャツールや動画配信ツールに取り込めるので取り込んだ後の使い道の幅は広がると思います

###**■■OculusQuest - Scrcpy**
・Scrcpyというアプリケーションを使ってQuestの映像をWiFi経由でパソコンに取り込みます
###**・前提**
・OculusQuestとパソコンは同じネットワーク（WiFi）に接続する必要があります
・パソコン側にScrcpyをインストールする必要があります
　https://github.com/Genymobile/scrcpy#get-the-app
・Oculus Linkを利用可能にしておいてください（ADBドライバー インストール）
###**・方法**
・パソコンとQuestをUSBケーブルで接続します
・管理者モードでコマンドプロンプト起動します。下記のコマンドを実行して接続先のOculusQuestのIPアドレスを調べます

```
>cd C:\Program Files\scrcpy\scrcpy-win64

>adb shell ip addr show wlan0

7: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 3000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.xxx.xxx/24 brd 192.168.xxx.xxx scope global wlan0
　　　　　^^^^^^^^^^^^^^^
       valid_lft forever preferred_lft forever
```
・inet 192.168.xxx.xxx が使用するWiFi IPアドレスになります
・上記IPアドレスに対して接続を行います

```
>adb tcpip 5555

>adb connect 192.168.xxx.xxx:5555

connected to 192.168.xxx.xxx:5555
```
・上記connectedとメッセージが出たら接続出来たので、USB ケーブルを外します。
・接続状況を確認して、scrcpyを実行します

```
>adb devices

List of devices attached
1PASH9BX9X9164  device
192.168.xxx.xxx:5555      device

>scrcpy.exe
```
・下記のような両眼映像が表示されます
![oq006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224568/494c3729-91fc-26fd-4040-0467052f5348.png)
・単眼映像を表示したい場合は下記のようにオプションを指定します

```
>scrcpy.exe --crop 1600:900:2017:510

INFO: scrcpy 1.16 <https://github.com/Genymobile/scrcpy>
C:\Program Files\scrcpy\scrcpy-win64\scrcpy-server: 1 file pushed, 0 skipped. 40.7 MB/s (33622 bytes in 0.001s)
[server] INFO: Device: Oculus Quest (Android 10)
INFO: Renderer: direct3d
INFO: Initial texture: 856x896
```
・下記のように単眼映像が表示されます
![oq007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224568/791a1103-976d-0024-8512-e35250c7d29a.png)
・YoutubeにVR映像として挙げる場合に活用できます

#### ※他にもやり方はあるようなので、自分の目的に合った方法で試してみるとよいでしょう。

##**■参考**

・Qiita(KSxRDevelop)　・・・　その他の情報は[こちら](https://qiita.com/KSxRDevelop)