AssettoCorsaのリプレイで、3Dの360動画を作りました。
作り方は、左右の360動画を上下に結合します。
左右の同期と結合は、FFMPEGで編集しました。
HMDで見ると、車体など立体感のある映像になります。
<目次>
1.360動画(360VR_3D)の制作ポイント
2.360動画(360VR_3D)の制作手順
3.FFMPEGの編集手順
4.FFMPEGのコマンド
5.RENAMEのバッチ処理
6.実行結果サンプル
<サンプル>
・ac_sample_2560.png
・ac_sample_5120.png(超解像)
1.360動画(360VR_3D)の制作ポイント
・Geforce experienceのインストール(GPU録画のため)
・ContentManagerのインストール(360表示、解像度のため)
・Nvidiaコントロールパネルを[カスタム解像度:3840×2160]にする
・リプレイは、[F5]を使用する
・動画編集は、FFMPEGを使用する

2.360動画(360VR_3D)の制作手順
①走行データを取るため、ドライブする
②CotentManagerのメディアで、走行データを保存する
③CotentManagerの設定/ビデオで、レンダリングモードを[360°]にする
④CotentManagerの設定/ビデオで、解像度を[3840×2160 60Hz]にする
⑤CotentManagerのメディアでリプレイ開始後、すぐ一時停止する
⑥[F5]でフリーカメラモードに切替し、マウスで[Left Eye]を表示調整する
⑦[ALT+F9]でGPU録画を開始し、リプレイを再開する
⑧リプレイ終了後、[ALT+F9]でGPU録画を停止する
⑨[Right Eye]の表示調整で、⑤~⑧を繰り返す
⑩FFMPEGで動画編集する
(左右の動画⇒左右のフレーム画像⇒調整⇒左右の結合動画)


3.FFMPEGの編集手順
①左右の動画⇒左右のフレーム画像(PNG:3840×2160)
②左右の開始位置と終了位置を決定する
③開始位置前と終了位置後のフレーム画像を削除する
④左右のファイルシーケンスを再附番する
⑤左右のフレーム画像⇒左右の結合動画(VP9:3840×4320)
超解像(Real-ESRGAN)を行う場合
・動画変換前、超解像を実施する(PNG:7680×4320)
・動画変換時、”-s 7680×3840″で上下圧縮する
4.FFMPEGのコマンド
ワークフォルダに、次のファイルとフォルダを準備してください。
ffmpeg.exe、フォルダ(3d-l、3d-r)、動画(input_L.mp4、input_R.mp4)、バッチファイル
※バッチファイルは、ワークフォルダで実行してください※
<環境条件>
FOLDER(Left,Right):3d-l、3d-r
INPUT(Left,Right): input_L.mp4、input_R.mp4
OUTPUT(VP9):output_3d.webm
<動画⇒フレーム画像(左:Left Eye)>
chcp 65001
ffmpeg -i input_L.mp4 -vcodec png .\3d-l\stereo_L%%05d.png
pause
<動画⇒フレーム画像(右:Right Eye)>
chcp 65001
ffmpeg -i input_R.mp4 -vcodec png .\3d-r\stereo_R%%05d.png
pause
<フレーム画像⇒動画(4K60p)>
chcp 65001
ffmpeg -r 60 -i .\3d-l\stereo_L%%05d.png -r 60 -i .\3d-r\stereo_R%%05d.png -filter_complex "vstack" -c:v libvpx-vp9 -b:v 0 -crf 16 -pix_fmt yuv420p -r 60 output_3d.webm
pause
<フレーム画像⇒動画(8K超解像)>
chcp 65001
ffmpeg -r 60 -i .\3d-l\stereo_L%%05d.png -r 60 -i .\3d-r\stereo_R%%05d.png -filter_complex "vstack" -c:v libvpx-vp9 -b:v 0 -crf 16 -pix_fmt yuv420p -r 60 -s 7680x3840 output_3d.webm
pause
5.RENAMEのバッチ処理
ワークフォルダ(3d-l、3d-rの上位階層)に、バッチファイルを準備してください。
※バッチファイルは、ワークフォルダで実行してください※
<rename_stereo_L(3d-lフォルダのリネーム)>
chcp 65001
setlocal enabledelayedexpansion
set prefix="stereo_L"
set extention=".png"
set pad=5
set num=1
cd .\3d-l
for %%F in (stereo_L*.png) do (
set padnum=00000000!num!
rename %%F !prefix!!padnum:~-%pad%!!extention!
set /a num+=1
)
endlocal
pause
<rename_stereo_R(3d-rフォルダのリネーム)>
chcp 65001
setlocal enabledelayedexpansion
set prefix="stereo_R"
set extention=".png"
set pad=5
set num=1
cd .\3d-r
for %%F in (stereo_R*.png) do (
set padnum=00000000!num!
rename %%F !prefix!!padnum:~-%pad%!!extention!
set /a num+=1
)
endlocal
pause
6.実行結果サンプル
