0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

サイドバイサイド動画を空間ビデオに変換してMeta Questで空間ビデオとして見る

Posted at

はじめに

以前Appleの単眼深度推定モデルDepth Proを用いてサイドバイサイドの動画をMeta Questに取り込んでなんちゃって空間ビデオをつくっていたわけですが、最近M4 Mac miniを購入したので、今回はApple公式のコンバータを使ってiOSで空間ビデオとして認識される本物の空間ビデオを作っていこうと思います。

↓前回の記事。サイドバイサイドの動画をお持ちでない場合はぜひこちらを参考に作成してみてください。

今回この記事を作成するにあたり、こちらの記事がとても参考になりました。

必要なもの

  • Apple silicon搭載のMac(Xcode使用のため)
  • サイドバイサイドの動画
  • Meta Quest
  • iPhone
  • Meta Horizonアプリ(iOS)

インストール類

公式のコンバータだと音声はつけてくれないらしいので、こちらの記事を元に準備します。


まずはパッケージをインストールします。

brew install spatial

brewを入れてない場合は事前にインストールしておきましょう。

インストールが終わったら、spatialとターミナルで打って認識されているか確認しましょう。正常にインストールできていると以下のようなものが出てきます。

% spatial

OVERVIEW: A tool to process MV-HEVC spatial photo and video files.

This tool exports from spatial photo/video files to specified formats and makes
spatial photo/video files from formatted inputs. It can also combine existing
audio and video files, report spatial information in a photo/video, and edit
spatial video metadata.

Questions and comments: https://blog.mikeswanson.com/contact

USAGE: spatial [--args <args>] <subcommand>

OPTIONS:
  --args <args>           Arguments file.
  --version               Show the version.
  -h, --help              Show help information.

SUBCOMMANDS:
  info                    Show spatial information for an input file.
  export                  Export formatted output from a spatial input file.
  make                    Make spatial output from a formatted input file.
  combine                 Combine/mux multiple inputs into a single video
                          output.
  metadata                Report and modify spatial video metadata.

  See 'spatial help <subcommand>' for detailed help.

実行

実行コマンドは以下で構成されています。

$ spatial [--args <args>] <subcommand>
区分 オプション / サブコマンド 説明
オプション --args <args> 引数ファイル
--version バージョンを表示
-h, --help ヘルプ情報を表示
サブコマンド info 入力ファイルの空間情報を表示
export 空間入力ファイルからフォーマット済み出力をエクスポート
make フォーマット済み入力ファイルから空間出力を生成
combine 複数の入力を1つの映像出力に結合/多重化
metadata 空間ビデオのメタデータを表示・修正

すでに持っているサイドバイサイドの動画を空間ビデオに変換したい今回のようなケースでは基本的にmakeサブコマンドしか使わないです。
以下はmakeサブコマンドを指定したときのオプションの引数です。

オプション 説明
-i, --input <input> 入力ファイル
-o, --output <output> 出力ファイル
-f, --format <format> 入力ファイルのステレオ形式。2つの入力がある場合は不要
(値: hsbs, sbs, hou, ou
-r, --reverse エンコード時に左右の目を反転(メタデータだけでなく実データも)
-b, --bitrate <bitrate> 出力ビデオのビットレート(例: 750K, 20M, 20000000
--scale <scale> 出力スケールの指定(例: w=200:h=100, 200:100, 200x100, 200:-1
-1 は元のアスペクト比を維持
-q, --quality <quality> ビデオ品質(範囲: 0.01.0
--ss <ss> 開始時刻(秒または hh:mm:ss[.xxx] 形式)
ファイルの先頭からの相対値
--t <t> 再生時間(秒または hh:mm:ss[.xxx] 形式)
開始時刻からの相対値
--to <to> 終了時刻(秒または hh:mm:ss[.xxx] 形式)
ファイルの先頭からの相対値
-n, --no-audio 音声トラックを含めない
--hero <hero> 空間対応プレイヤー向けのヒーローアイ(left, right
--primary <primary> 通常2D再生時のプライマリーアイ(left, right
--cdist <cdist> カメラ中心間の距離(単位: mm)
--hfov <hfov> 水平方向の視野角(単位: 度)
--hadjust <hadjust> 水平視差調整(範囲: -1.01.0
--projection <projection> ビデオの投影種別(rect, equirect, halfEquirect, fisheye
--faststart moov atom を動画ファイルの先頭に移動
-y, --overwrite 出力ファイルを上書き
--maxkey <maxkey> キーフレームの最大間隔(秒)デフォルト: 2.0
--args <args> 引数ファイルを指定
--version バージョン情報の表示
-h, --help ヘルプを表示

たくさん引数がありますが、とりあえず以下を実行すればいいです。
-fの引数のsbsはside by sideを意味しています。

spatial make -i input.mp4 -o output.mov -f sbs --cdist 19.24 --hfov 63.4 --hadjust 0.02 --primary right --projection rect

cdist以降のパラメーターは開発者曰く、iPhone 15 Proで空間ビデオを撮影したときのように見える数値のようです。

正常に処理できていると以下のように表示されます。
スクリーンショット 2025-07-14 18.37.01.png


ファイル情報を表示するときは以下を実行すると中身を見れます。
spatial info -i output.mov

スクリーンショット 2025-07-14 18.29.48.png

Meta Horizonへアップロード

完成した空間ビデオ(movファイル)をiPhoneへAirDropで送ります。
iPhoneの写真アプリで開いた時、以下のように左上にSPATIAL表記があれば正しく空間ビデオとして認識されています。
IMG_7524.jpg

もしApple Vision Proをお持ちであればMacから直接Vision Proに送ればそのまま空間ビデオを楽しめますが、Meta Questで見たい場合はそうはいきません。

今度は、iPhoneのMeta Horizonアプリを開いてまずメニューアイコンを選択。
IMG_7527.jpg

次にGalleryを選択。
IMG_AF18B7BC9FD9-1.jpeg


右上にあるアップロードアイコンを選択
IMG_37674305F09A-1.jpeg

右側のSpatialを選択して先ほどiPhoneに保存した空間ビデオを選んでアップロードします。
IMG_4CA7B80C5551-1.jpeg

アップロードが完了するまで待ちましょう。動画が長いと少々時間かかります。このアップロードの過程でAppleの空間ビデオをMeta Questで見られるようにする処理が内部で行われています。

レッツ空間ビデオ

これで準備は整いました。心の準備はいいでしょうか?

Meta Questを起動してGalleryアプリを開き、アップロードした動画の左下に3Dと表記されていれば空間ビデオとして認識されています。あとは空間ビデオを楽しむだけです。
188edb732f1c4c7d8d3a067c657f47d5.jpg

どのように見えているか載せたいところですが、2D画像ではどう頑張っても立体的に見えている様子を伝えられないのないので泣く泣く省略。

感想

前回記事で作成したなんちゃって空間ビデオは本当になんとなく立体...?という具合でしたが、今回作成したものは明らかに奥行きを感じられたと思います。
普通の2Dの動画から深度推定して本当の空間ビデオに変換する一連の流れが完成したので、推しの動画から好きなバンドのMVやらなんでもかんでも立体的に楽しまます。

いろんな動画を変換してみた所感としては、MVのように頻繁にカットが変わるような激しい動きの動画ではなかなか立体感を楽しめません。おそらくvlog系の動画やスマホで撮影したような日常系の映像のほうがより立体感を楽しめると思います。
アイドルのMVはシーンの遷移が激し過ぎてちょっとしか立体感を味わえません(泣)
あと、よっぽどいいカメラで撮影されてない限り、明るさが暗めの動画もちょっと苦手そうな雰囲気があります。

今後の展望

満足度は高いですが、決して完璧ではありません。

Meta Questにサンプルとして入っている深度推定して復元処理されていない(ネイティブでステレオ撮影された)空間ビデオは視聴者側に飛び出して見えるのに対して、今回の深度推定から復元処理を経た自作空間ビデオは手前側には飛び出しては来ず、動画の中で奥行きのある空間が生まれている程度に過ぎません。
おそらくサイドバイサイドの生成処理を改良すれば手前側にも飛び出して見えるようにできると思います(たぶん)。

あとそもそもAppleの空間ビデオのフォーマットが1080p 30fpsなので、せっかく元の動画が4kでもフルHDになってしまいます。

まあ今後に期待ですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?