2024/09/15

Nubia Pad 3Dで撮影した動画をPCサイド・バイ・サイドに変換する方法(Windows)

 Nubia Pad 3D、たまーに引っ張り出して遊んでます。90過ぎてだいぶ外出もおっくうになった祖母に山で撮影した風景や植物の写真を見せたら、ほんとに行って見てきたみたいだー、と楽しんでくれていた様子。

まぁそれはともかく、タイトルの件。

撮影した動画はmp4形式なのだけれど、サイド・バイ・サイドではなく、片側ぶんの映像がメタデータとして埋め込まれた変則的なフォーマットになっている。Nubia Pad 3Dで再生すると3D動画として再生されるが、PCなどにコピーして再生すると普通の2D動画として扱われる。(開発元のLeia社は「LVF」フォーマットと呼んでいるらしい。)

で、やりたいのは、Nubia Pad 3Dで撮影した3D動画をPCに持っていって、そこからMeta Quest 3で3D動画として再生、試聴すること。

そのためには、どうにかしてこの特殊なLVFフォーマットの動画を3D動画として扱いやすいサイドバイサイド形式に変換したい。で、調べてみると、こんなのが出てきた。

Leia.inc, Convert from LVF to SBS
https://forums.leialoft.com/t/convert-from-lvf-to-sbs/2825

FFMPEGというコマンドラインの動画編集ツールと、ここに掲載されているFFMPEGを使ったシェルスクリプトで、LVFフォーマットの動画をSBS(サイド・バイ・サイド)形式や、左右単独の動画ファイルに変換できるらしい。

で、このシェルスクリプトはMac(とLinux)用に書かれているので、Windowsで実行できるようにちょっとだけ手を加えて試してみたところ、上手くいくようだ。せっかくなので、それをここに掲載しておきます。

FFMPEGのインストール方法とかは割愛。環境変数にパスを通すのを忘れずに。

サイド・バイ・サイド変換用スクリプト

下記の1行だけのスクリプトをテキストエディタ(メモ帳でOK)にコピペして、lvf2sbs.bat みたいな名前で保存します。(ページ幅の都合で行が折り返されているかも。)

ffmpeg -i "%1" -filter_complex "[0:v:m:language:abl]fps=30[l];[0:v:m:language:abr]fps=30[r];[l][r]hstack" -c:a copy "%~n1_2x1.mp4"

左右の独立した動画に分離して書き出すスクリプト

下記の3行のスクリプト。おなじくテキストエディタにコピペして lvf2lr.bat みたいな名前で保存します。

ffmpeg -y -i "%1" -map 0:v:m:language:abl -c copy left.mp4
ffmpeg -y -i "%1" -map 0:v:m:language:abr -c copy right.mp4
ffmpeg -y -i "%1" -c copy audio.aac

スクリプトの使い方

コマンドラインで、ファイルを出力したいフォルダへ移動してから、下記のように上記のスクリプト(バッチファイル)を実行します。

C:\> /folderOfScript/lvf2sbs.bat /folderOfVideo/nameOfVideo.mp4

例えば、上記のように C:\ 直下で実行したら、そこにサイド・バイ・サイド形式に変換された.mp4形式の動画ファイルが出力されるはず。