29.9.24

google photoに360度動画をいれると正方形に変換されるので分割してもとに戻すことにした覚え書き

 動画保存先としてのgoogle Foto。
360度写真もphotospere状態で保存できるが画質が1920x1920になってしまう。


例えばinsta360で5.7k撮影すると5760x2880で撮影される。2:1。
せめて左右に分割して2880x2880で保存したい。
google fotoの節約で自動的に長辺1920になるが。
5760が1920になるよりはマシだろう。


半分ずつトリミングして保存すれば良い。

トリミングして保存

適当に書くとこう

for %%A in (*.mp4) do (

ffmpeg.exe -i "%%A" -vf crop=iw/2:ih:0:0 -r 25 -c:v hevc_nvenc "%%~nA_l.mp4"

ffmpeg.exe -i "%%A" -vf crop=iw/2:ih:iw/2:0 -r 25 -c:v hevc_nvenc "%%~nA_r.mp4"


とりあえず_lと_rと名前をつけて保存。
横幅の半分で切って保存。
最終的に長辺1920になるのであらかじめ変換してもよいがこのままで。
あとはgoogle fotoに投げるだけ。



投げたあとの復元

ファイル名の末尾が_l.mp4を見つけて_rとくっつける。

for %%A in (*_l.mp4) do (

set B=%%A

ffmpeg -i "%%A" -i !B:~0,-5!R.mp4 -filter_complex hstack !B:~0,-5!mrg.mp4

exiftool -XMP-GSpherical:Spherical="true" !B:~0,-5!mrg.mp4

)

photospereなので左右逆にしても影響はない。

ffmpeg単体でsphereデータが入らないようなので、exiftoolを使う。

for文の中で代入するのは遅延実行が必要らしく面倒だった。




まとめ

これで分割保存した動画をsphereに戻せた。

解像度は3840x1920だが。

0 件のコメント:

コメントを投稿