AssettoCorsaで360動画(360VR_3D)


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.実行結果サンプル