はじめに
いつも大変お世話になっております。シャチクです。
今回の記事は Oculus GO で撮影したスクリーンショットや動画を
簡単にパソコンへコピーする方法の紹介です。
要するに
adb pull コマンド便利!PowerShell 便利という記事です。
動作確認環境
- Oculus GO
- [開発者モード] にして、USBデバッグを許可しておくこと
- Windows 10 x64 1803
- adb コマンドが動作すること
手順
用途に合わせて以下のコマンドを実行するだけです。
- 全ファイル転送したいときのコマンド
-
日付を指定して転送したいときのコマンド
- こちらがおすすめ
注意点
- adb pull コマンドで転送するとファイルは 問答無用で上書き されます
Oculus GO 内に保存されているフォルダ
録画したキャプチャー動画は
/sdcard/oculus/VideoShots/
に .mp4 として保存されています。
撮影したキャプチャー画像は
/sdcard/oculus/Screenshots/
に .jpg として保存されています。
転送したいものに合わせてコマンドを読み替えてください。
全ファイル転送したいときのコマンド
実行すると C:\Temp\VideoShots\ フォルダに Oculus GO 内でキャプチャーしたファイルがコピーされます。
C:\Temp\ は各自キャプチャーを保存したいフォルダに置き換えてください。
mkdir C:\Temp\
adb pull /sdcard/oculus/VideoShots C:\Temp\
日付を指定して転送したいときのコマンド
PowerShell が実行できる環境であれば、こちらのコマンドが高速で便利です。
$today = Get-Date -Format "yyyyMMdd"
$saveDir = "C:\Temp\$today\"
$videos = adb shell ls /sdcard/oculus/VideoShots/*$today*
mkdir -Force $saveDir
foreach($file in $videos){ adb pull $file $saveDir }
一度 ls コマンドを使ってコピー対象のファイルを取得し、foreach で 1ファイルずつコピーしています。
なぜこんな回りくどい方法をとるかというと adb pull コマンドは *(アスタリスク)でフィルターできません。
Oculus GO のキャプチャーファイル名の書式が yyyyMMdd を含んでいるため、このような指定になっています。
今日以外の日付をコピーしたい場合
$today の行を以下のように変更してください。
####前日をコピーしたい場合
$today = (Get-Date).AddDays(-1).ToString("yyyyMMdd")
####指定日をコピーしたい場合
$today = 20190916
メリット
エクスプローラーでコピーすると再生できない動画が問題なく再生できる
私の環境では、なぜだか Windows のエクスプローラーから Oculus GO の動画をコピーすると長さが「00:00:00」になっており正常に再生できない現象に悩まされました(再生できても真っ黒な画面が一瞬再生されるだけ)
Oculus GO の Wi-Fi を OFF にして、Oculus GO を再起動を何回も繰り返せば再生できる、という情報を聞き試しましたが、私の環境では10回以上再起動してもダメでした。
しかし、今回紹介した adb pull コマンドを使えば問題なく再生可能な .mp4 ファイルがコピー出来ました。
ワンクリックで簡単で高速にコピーできる
今回紹介したコマンドをスクリプトファイルに保存しておけば、ワンクリックで簡単に実行できます。
Windows の [画像とビデオのインポート] 機能で転送する方法もあるようですが、
Oculus GO 内の全てのメディアファイルを走査しているようで、毎回コピーに使うには耐えがたい遅さでした。
おわりに
今回紹介した adb コマンドのように Oculus GO でも Android 開発の知識が使い回せるので、どんどん使っていきましょう。
Oculus Quest や Windows 以外の OS でもパスを揃えれば動作すると思いますが、
環境を持っていないので試せていません。
『こんな環境で動きました!』『こっちのやり方がオススメ』など皆さんのご意見ご感想お待ちしております。
おまけ
adb pull 以外に便利な adb コマンドの紹介。
Oculus GO 内のファイルを削除するコマンド
重要なファイルを削除しないよう誤指定に注意
adb shell rm -rf /sdcard/oculus/VideoShots/*20190916*
Oculus GO 内のファイルを閲覧するコマンド
adb shell ls /sdcard/oculus/VideoShots/
PCからOculus GO 内にファイルをコピーするコマンド
今回紹介した pull の反対のコマンド。フォルダ毎コピーするときは1つ上の階層にコピーします。
adb push C:\Temp\VideoShots\ /sdcard/oculus/