Insta360などで撮影した360度コンテンツ(equirectangular形式)から、自然な見た目のサムネイル画像を作成する方法を紹介します。

課題:そのままリサイズすると歪む

360度動画や写真はequirectangular(正距円筒図法)形式で保存されています。この形式は球体を平面に展開したもので、特に上下の端に近いほど横方向に引き伸ばされています。

そのまま単純にリサイズしてサムネイルを作成すると、歪んだ不自然な画像になってしまいます。

#ffmpeg-i360video.mp4-ss00:00:05vframes1vf"scale=640:-1"thumb.jpg

解決策:v360フィルターでflat projectionに変換

ffmpegのv360フィルターを使用して、equirectangular形式からflat(rectilinear/透視投影)形式に変換することで、人間の目で見たような自然な画像を切り出せます。

使用ツール

ffmpeg を使用します。macOSの場合、Homebrewでインストールできます。

brewinstallffmpeg

v360フィルターが含まれているか確認:

f#fmpe:g.-SfCilvt3e6r0sV2->>/VdeCvnnvuelrlt|36g0repprovj3e6c0tionofvideo.

基本コマンド

動画からサムネイル作成

ffmtpvhefugm"b-vni3a6i30l6=.0ejv:pifgdlea-oty.:mhp_4fo-vs=s12000::v0_0f:o0v5=90v:fyraawm=e0s:p1it\ch=0,scale=640:-1"\

写真からサムネイル作成

ffmtpvhefugm"b-vni3a6i30l6=.0ejp:phfgolta-oty.:jhp_gfo\v=120:v_fov=90:yaw=0:pitch=0,scale=640:-1"\

v360フィルターのパラメータ解説

パラメータ説明
e入力形式:equirectangular
flat出力形式:flat(透視投影)
h_fov=120水平視野角(度)
v_fov=90垂直視野角(度)
yaw=0水平方向の回転(-180〜180)
pitch=0垂直方向の回転(-90〜90)

視野角の調整

用途に応じて視野角を調整できます。

###vvvfff"""1v9vv23036306°606°00°0=x==xeexe:6::9f0f4f0l°l5l°aa°at-tt-::-:hhh___fffooovvv===1962000:::vvv___fffooovvv===649050"""

視点の変更

yawpitchで切り出す方向を変更できます。

#####vvvvvfffff9"0""""vvvvv333336666600000=====eeeee:::::ffffflllllaaaaattttt:::::hhhhh_____fffffooooovvvvv=====111112222200000:::::vvvvv_____fffffooooovvvvv=====9999900000:::::yyyyyaaaaawwwww=====09100:08::p:0ppip:iitipttcticchcthh=hc==0=h4-"0=54"0"5""

複数ファイルの一括処理

動画ファイル用スクリプト

#IOmfde!NUkooc/PTdrnhbUPieoiTUrfffen_Tifc"/D_-ilm"hbIDpnepv$oaRInefO"s=R""agU"h"=$$m"T/"OIe-vPp/UN=i3U:apTP$6TtaPU("0_$htUTb$=D{/hT_afeIft_Ds":RitDIef/loIRn-l$ev/R"asa{nit"/mstfadh*e:imeu.0hleomm"0_e}sbp$:fn_"n4f0oata;"0vmhi:=euld.01}msom52_b"p0t.4:hj)vvupf_mgrfb"ao.mvje=ps9g0"1:y-\ayw=0:pitch=0,scale=640:-1"\

画像ファイル用スクリプト

#IOmfde!NUkooc/PTdrnhbUPieoiTUrfffen_Tifc"/D_-ilm"hbIDpnepv$oaRInefO"s=R""agU"h"=$$m"T/"OIe-vPp/UN=i3U:apTP$6TtaPU("0_$htUTb$=D{/hT_afeIft_Ds":RitDIef/l/oIRn\l$ep/R"aa{nht"/mtfaoh*e:imtu.hleomj"_e}sbp$fn_"ngfoata;"vmhi=euld.1}msoj2_b"p0t.g:hj)vup_mgfb"o.vj=p9g0":y-ayw=0:pitch=0,scale=640:-1"\

4方向のサムネイルを作成

360度コンテンツの全体像を把握するため、4方向のサムネイルを作成するスクリプトです。

#IOBm#f#f#f#fe!NUAkffffc/PTSdm"m"m"m"hbUPEipv$pv$pv$pv$oiTUNrefOefOefOefOn=TAgUgUgUgU"/"_M-"T"T"T"T4b$DEp-vP-vP-vP-vPa1I=i3Ui3Ui3Ui3Us"R$"6T6T6T6Th=($"0_"0_"0_"0_"bO$=D$=D$=D$=D$aUIeIIeIIeIIeI2sTN:RN:RN:RN:R"ePPf/Pf/Pf/Pf/nUUl$Ul$Ul$Ul$aTTa{Ta{Ta{Ta{m_"tB"tB"tB"tBeD:A:A:A:AI-hS-hS-hS-hS"Rs_Es_Es_Es_E$"sfNsfNsfNsfNIoAoAoAoA"N0vM0vM0vM0vMP0=E0=E0=E0=EU:9}:9}:9}:9}T00_00_00_00_"0:f0:r0:b0:l:vr:vi:va:ve|0_o0_g0_c0_f5fn5fh5fk5ftsototo.o.ev.v.vjvjdv=jv=jv=pv=pf6pf6pf6gf6g'r0gr0gr0"r0"sa:"a:"a:a:/mymymy-my-\ea-ea-eayeay.swyswyswsw[====^1019111-.:089]\p\:\0\0*ip::$tipp/ctii/hctt'=hcc)0=hh,0==s,00cs,,acsslaccelaa=ell4=ee84==0844:088-:001-::"1--"11\""\\\

使用例:

brewinstallffmpeg

0

まとめ

  • 360度コンテンツはequirectangular形式で保存されており、そのままリサイズすると歪む
  • ffmpegのv360フィルターでflat(透視投影)に変換することで自然なサムネイルが作成できる
  • h_fov/v_fovで視野角、yaw/pitchで視点方向を調整可能

参考