アルファ付きのPNG連番画像からAVPの標準動画プレーヤー透過するムービーを作る
概要
Apple Vision Proでの再生時に背景が透明な動画を作成する方法です。
Unityで撮影することが前提です。
流れ
- Unityで動画の元となるPNG連番画像を作成(Windows)
- ffmpegで透過情報ありのApple ProRes動画を作成(Mac)
- avconvertを使用して透過情報付きのHEVCに変換(Mac)
- mp4boxで音を追加(Mac)
環境
・Unity
・OSはWindows11
・Unity 2022.3.27f1
・HDRPのプロジェクト
・UnityRecorder 4.0.3
・Mac
・macOS Sequoia 15.4
・ffmpeg version 7.0.1
・MP4Box version 2.4-revrelease
https://gist.github.com/uupaa/262fa1a98236331571b4
手順
※WindowsのUnity URPプロジェクト、MacでのUnityはうまくできなかった。
※ffmpeg,MP4Boxのインストールについては省略
1. Unityで動画の元となるPNG連番画像を作成(Windows)
Unityから背景が透過しているPNG画像を連番で出力します
Render Texture作成、設定

Size → 1920×1080 に設定 (ここでは2Kサイズの動画を想定)
Main Camera設定

Environment > Background Type → Color
Environment > Background Color の Alpha値 → 0
OutputEnvironment > Target texture → 上で作成したRender Textureを設定
Recorder設定
60フレーム、10秒の動画の場合

Frame Rate > Target FPS → 60 (ここでは60FPS想定)
Recording Mode を Frame Intervalにして Start → 0 End → 600
Add Recorder → Image Sequence
Input > Source → Render Texture Asset
Input > Render Texture → 上で作成したRender Textureを設定
Output Format > Media File Format → PNG
Output Format > Include Alpha → ON
Output File > File Name → ここでは movie_<Frame>
「The Post Processing Buffer Format does not support alpha~」と出るけどとりあえず無視
で、 START RECORDING します。
出力されたアルファ付きPNG
Output File > Path 配下に連番PNGファイルが出力されます

画像が透過になっていることを確認します

これを出力フォルダごとMacにコピー
以下はMacのターミナルでの操作となります
2. ffmpegで透過情報ありのApple ProRes動画を作成(Mac)
フレームレートが60fps
インプットの連番PNG画像が「movie_NNNN.png」
出力先の動画が「outMov.mov」
コマンド例
ffmpeg -r 60 -i ./movie_%04d.png -an -codec:v prores_ks -pix_fmt yuva444p10 -profile:v 4 -bits_per_mb 8000 -vf scale=in_color_matrix=bt709:out_color_matrix=bt709 ./outMov.mov
3. avconvertを使用して透過情報付きのHEVCに変換(Mac)
インプット動画は「outMov.mov」
出力解像度の指定は--preset
2Kの時:PresetHEVC1920x1080WithAlpha
4Kの時:PresetHEVC3840x2160WithAlpha
出力する動画は「TransparentMovie_nosound.m4v」
コマンド例
2Kで出力する場合
avconvert --preset PresetHEVC1920x1080WithAlpha -s ./outMov.mov -o ./TransparentMovie_nosound.m4v
4Kで出力する場合
avconvert --preset PresetHEVC3840x2160WithAlpha -s ./outMov.mov -o ./TransparentMovie_nosound.m4v
4. mp4boxで音を合成(Mac)
インプット動画は「TransparentMovie_nosound.m4v」
合成する音声ファイルは「sound.mp3」
出力動画は「TransparentMovie.m4v」
コマンド例
mp4box -add TransparentMovie_nosound.m4v -add sound.mp3 TransparentMovie.m4v
ファイル出来上がり例

作成した動画
背景が透明なため、浮かんでいるような表現ができます

株式会社ホロラボの技術に関するブログ集です。 ホロラボは「フィジカルとデジタルをつなげ、新たな世界を創造する」をミッションに、XRや空間コンピューティングを軸にした価値を提供する企業です。 お問い合わせは👉のURLよりお願いします! hololab.co.jp/#contact
Discussion