はじめに
Oculus Goではホームのシェアタブから画面を録画する機能が用意されているが、何故かアプリを起動すると録画が停止してしまう。そこで今回はOculus Goの映像をMacに出力し録画する方法を検討してみた。
前提
Mac: macOS High Sierra 10.13.5
VLC: 2.2.6
Vysor Pro: 1.9.3
Vysorは有償版でしか試していないので、無償版だと出来ないかも。
手順
Macにミラーリング
以下の記事を参考にした。
Oculus Goの画面をPCに表示させる with Vysor【無線もできた!!!!!!】 - トマシープが学ぶ
http://bibinbaleo.hatenablog.com/entry/2018/05/14/115112
Oculus Goの画面をPCにWirelessでミラーリング表示する - Qiita
https://qiita.com/zinziroge/items/84b06ab47168d68dc962
無償版だと1.5時間のトライアルが付いているが、それを過ぎると解像度が低かったり広告が出たりする。
その場合、用途に合わせて有償版を検討してください。サブスクリプションと買い切り(4kくらい)がある。
http://www.vysor.io/#pricing
VLCで録画
Web Video StreamのURLの取得

設定ボタンを押して

下の方にあるWeb Video StreamのURLを取得する。
クリックするとクリップボードにコピーされる。
VLCの設定
URL設定
VLCのメニューより、ファイル > ネットワークを開く
を選択。(もしくは ⌘ + N
)
URLに先ほどのURLを入力しておく。
この状態で開くを押すと、VLC上でキャプチャした映像が再生される。
※ただし10秒くらいラグがある。
VLCでStreamingのurl開けた。録画できそう。 pic.twitter.com/1ayTQa4w1d
— Nakaji Kohki (@kohki_nakaji) 2018年6月25日
録画設定

「ソースを開く/ネットワーク」の画面より、「ストリーミング/保存」の項目にチェックを入れる。
その状態で右側の設定ボタンをクリック。

上記のように設定する。
カプセル化を入力してからファイルの参照を設定すると、適切な拡張子を提示してくれる。順番に注意。
フォーマットはMPEG 4で試したが、ストリーム中に欠損してしまう箇所があった。要検証。
MPEG TSも録画できることを確認した。Quicktimeは確認できなかった。Rawは再生の仕方が分からなかった。
(コンバートが発生しないフォーマットにすれば良い気がするが、URLの.flvに合致する項目がないように思う)
オプションとして、「ストリーム出力の表示」にチェックを入れておくと、録画中の画面を表示することができる。
「ロー入力データをダンプ」にチェックを入れるとうまく出力されなかったので、これも注意。
最後にOKボタンを押して設定完了。
ちなみにVLCを再起動するとこの設定はリセットされてしまう。地味にだるいので保持する方法分かる方は教えて欲しいです。
録画開始
VLCの「ソースを開く/ネットワーク」の画面より、「開く」をクリックすると録画が開始される。
「ストリーム出力の表示」にチェックを入れている場合、数秒後に映像が表示される。
録画を停止する場合はプレイヤーの停止ボタンをクリックする。
停止ボタンをクリックしても動画ファイルが再生できない場合は、設定を見直した方が良いかも。
課題
ファイルの欠損
お、アプリ内画面も録画できた
— Nakaji Kohki (@kohki_nakaji) 2018年6月25日
(一部データ欠損してそう) pic.twitter.com/NxgW4OGTLm
上記の手順により、一応こんな感じで録画が成功した。
ただし、FPSがおかしかったり、途中に欠損したフレームがある。
Mac上で確認するとFPSは正しかったので、うまく変換すればいける気もする。
音声の録音
今回の方法だと音声を録音することが出来ない。
そもそもVysorが音声の出力に対応していないので、別の方法を検討する必要がある。
Oculus Goにはイヤホン出力端子があるので、それを拾う方法が一つ考えられる。
また、Vysorと似たようなサービスの「Reflector」を使うと音声も出力できるらしい(未検証)
さいごに
間違っている箇所や、こうすれば出来るというアドバイスなどお待ちしております!