PinPlayer は、普通の動画のほかに、透過や疑似6DoFの情報を決まった形に並べた「特殊な動画」を再生できます。
ここでは、その並べ方とファイル名の決まりを説明します。どのソフトで作ってもかまいません。
形式:mp4 / mkv / mov / m4v / webm。映像は H.264 または H.265(8bit・4:2:0)がおすすめです
大きさ:横幅・高さとも 4096 ピクセル以下(Quest の再生の上限)。並べた後の大きさで数えます
重さの目安:4K(3840×2160)60fps と同じくらいまで
ファイル名の決まりは、拡張子の直前に付けます(例:dance_alpha.mp4)。大文字・小文字は区別しません
背景が透明な動画です。部屋の中にキャラクターなどが立っているように見えます。
左半分:映像(色)
右半分:透明度の白黒(白=見える、黒=透明、灰色=半透明)
左右は同じ大きさにします
左右の目の映像と、それぞれの透明度を4つ並べます。
ファイル名に _SBS などを入れるか、再生の設定の「映像の形式」で「3D(SBS)」を選ぶと立体になります
頭を動かすと、奥行きに合わせて見え方が変わります(疑似6DoF)。
右半分:奥行きの白黒(白=手前、黒=奥)
奥行きは、なめらかな方がきれいに見えます(細かい凹凸やちらつきは、そのまま形のゆがみになります)
飛び出し具合は、アプリの再生の設定(画質)の「奥行きの強さ」で調整できます
ファイル名、または動画の情報(VR 動画の標準の書き方)から自動で判定します。間違っていたら、再生の設定の「映像の形式」で選び直してください。
3D(左右に並んだ物):_SBS _LR _3DH
VR180(左右に並んだ物):_VR180 _180_LR
VR360:_VR360、または _360 と _TB(上下)・_LR(左右)・_MONO(1枚)の組み合わせ
普通の動画から人物だけを切り抜くには、「背景を消す」機能のある動画編集ソフトや、AI で背景を消すサービス・ツールを使います(機能や料金は各ソフト・サービスで確認してください)。
例:DaVinci Resolve、Adobe After Effects(ロトブラシ)、CapCut、Runway など
パソコンに詳しい人向け:rembg などの、AI で背景を消す無料のツール
切り抜いた結果の書き出し方によって、次のどちらかで PinPlayer 用の形にします。
透明度つきで書き出せる場合(ProRes 4444、透明度つきの WebM など):下の「透明度を持つ動画から透過動画を作る」のコマンドで変換します
背景を緑一色にして書き出す場合(グリーンバック):次のコマンドで、緑の部分を透明にして並べます
ffmpeg -i green.mp4 -filter_complex "[0:v]chromakey=0x00FF00:0.15:0.05,despill=type=green,format=yuva444p,split[c][a];[c]format=yuv444p[cc];[a]alphaextract,format=yuv444p[m];[cc][m]hstack,format=yuv420p" -c:v libx264 -crf 18 -c:a aac output_alpha.mp4
0x00FF00 は背景の緑の色、0.15 は「どのくらい近い色まで消すか」です。緑が残るときは大きく、人物まで消えるときは小さくしてください
髪の毛などの細かい部分は、切り抜きの精度で仕上がりが大きく変わります
他人が作った動画を加工するときは、権利者の許可がある範囲で行ってください
ffmpeg は無料の動画変換ツールです(https://ffmpeg.org/ から各自で入手してください)。
透明度を持つ動画(ProRes 4444 など)から上記形式の透過動画を作る
ffmpeg -i input.mov -filter_complex "[0:v]split[c][a];[c]format=yuv444p[cc];[a]alphaextract,format=yuv444p[m];[cc][m]hstack,format=yuv420p" -c:v libx264 -crf 18 -c:a aac output_alpha.mp4
映像と透明度(マスク)の動画が別々のときに並べる
ffmpeg -i color.mp4 -i mask.mp4 -filter_complex "[0:v][1:v]hstack,format=yuv420p" -c:v libx264 -crf 18 output_alpha.mp4
映像と奥行きの動画を並べる(奥行きの動画は、奥行きを推定するツールなどで作ります)
ffmpeg -i color.mp4 -i depth.mp4 -filter_complex "[0:v][1:v]hstack,format=yuv420p" -c:v libx264 -crf 18 output_depth.mp4
映像・透明度・奥行きの3つを並べる
ffmpeg -i color.mp4 -i mask.mp4 -i depth.mp4 -filter_complex "[0:v][1:v][2:v]hstack=inputs=3,format=yuv420p" -c:v libx264 -crf 18 output_alpha_depth.mp4
並べる動画は、高さ・コマ数・フレームレートをそろえてください
並べた後の横幅が 4096 を超えるときは、先に縮めてください(例:-filter_complex の最後に ,scale=4096:-2 を追加)
Besides regular videos, PinPlayer can play "special videos" arranged in a specific layout. This page explains the layouts and file naming rules. You can create them with any software.
Formats: mp4 / mkv / mov / m4v / webm. H.264 or H.265 video (8-bit, 4:2:0) is recommended
Size: width and height of 4096 pixels or less (the Quest playback limit), measured after arranging
Load: up to about the same as 4K (3840×2160) at 60 fps
Put the naming suffix right before the extension (e.g. dance_alpha.mp4). Case does not matter
A video with a transparent background. Characters appear to stand in your room.
Left half: the picture (color)
Right half: transparency in grayscale (white = visible, black = transparent, gray = semi-transparent)
Both halves must be the same size
Put _SBS etc. in the file name, or choose "3D (SBS)" under "Video format" in the playback settings
The view shifts with depth as you move your head (pseudo 6DoF).
Right half: depth in grayscale (white = near, black = far)
Smooth depth looks best (fine bumps and flicker show up as distortion)
Adjust the amount with "Depth strength" in the playback settings (Picture tab)
Detected automatically from the file name or the video's metadata (standard VR video tags). If it is wrong, choose the format under "Video format" in the playback settings.
3D (side by side): _SBS _LR _3DH
VR180 (side by side): _VR180 _180_LR
VR360: _VR360, or _360 combined with _TB (top-bottom), _LR (left-right) or _MONO
To cut out just the person from a regular video, use video editing software with a background removal feature, or an AI background removal service or tool (check each product for its features and pricing).
Examples: DaVinci Resolve, Adobe After Effects (Roto Brush), CapCut, Runway
For advanced users: free AI background removal tools such as rembg
Depending on how you export the result, convert it for PinPlayer in one of these ways:
If you can export with transparency (ProRes 4444, WebM with alpha, etc.): convert it with the command "Make a transparent video from a video with an alpha channel" below
If you export over a solid green background (green screen): use this command to make the green transparent and arrange the layout
ffmpeg -i green.mp4 -filter_complex "[0:v]chromakey=0x00FF00:0.15:0.05,despill=type=green,format=yuva444p,split[c][a];[c]format=yuv444p[cc];[a]alphaextract,format=yuv444p[m];[cc][m]hstack,format=yuv420p" -c:v libx264 -crf 18 -c:a aac output_alpha.mp4
0x00FF00 is the green of the background, and 0.15 is how similar a color must be to be removed. Raise it if green remains; lower it if parts of the person disappear
Fine details such as hair depend heavily on the quality of the cutout
When editing videos made by others, stay within what the rights holder allows
ffmpeg is a free video conversion tool (get it yourself from https://ffmpeg.org/).
Make a transparent video from a video with an alpha channel (ProRes 4444 etc.)
ffmpeg -i input.mov -filter_complex "[0:v]split[c][a];[c]format=yuv444p[cc];[a]alphaextract,format=yuv444p[m];[cc][m]hstack,format=yuv420p" -c:v libx264 -crf 18 -c:a aac output_alpha.mp4
Combine separate color and mask videos
ffmpeg -i color.mp4 -i mask.mp4 -filter_complex "[0:v][1:v]hstack,format=yuv420p" -c:v libx264 -crf 18 output_alpha.mp4
Combine color and depth videos (make the depth video with a depth estimation tool, etc.)
ffmpeg -i color.mp4 -i depth.mp4 -filter_complex "[0:v][1:v]hstack,format=yuv420p" -c:v libx264 -crf 18 output_depth.mp4
Combine color, mask and depth
ffmpeg -i color.mp4 -i mask.mp4 -i depth.mp4 -filter_complex "[0:v][1:v][2:v]hstack=inputs=3,format=yuv420p" -c:v libx264 -crf 18 output_alpha_depth.mp4
The videos must have the same height, number of frames and frame rate
If the combined width exceeds 4096, scale it down first (e.g. add ,scale=4096:-2 at the end of -filter_complex)