タイトルのとおり。
Kodak PIXPRO SP360 っていうカメラ
半天球の画像や動画を録画できます。 そして PCの純正ツールを使うと VRで使用されるような 正距円筒図法 の画像・動画に変換できます。
しかしながら、マウスでポチポチやったり 1個1個操作したりで、あんまり使い勝手がよいとは言えません。
てことで、ネットで調べてみたら、ffmpeg で変換できそうだったのでやってみました。
実行
Windows 10 で、てきとうに拾ってきた ffmpeg を用いています。
コマンド
DOS窓 を開き、次のように入力してエンター。
> ffmpeg -i input.mp4 -y ^ -vf rotate=-90*PI/180,^ v360=fisheye:e:pitch=-90:interp=linear,^ crop=2144:536:0:0,pad=2144:1072:0:0 ^ -c:a copy output.mp4
パラメータのざっくり説明
- -vf : フィルタ使うよ。
- rotate : 入力画像を回転させます。ラジアン指定。
- 正距円筒図法にしたとき、画像を左右に移動させることに相当します。純正ツールの出力と同じになるように調整。
- v360 : 360°画像のフィルタ。
- fisheye : 魚眼。単眼。
- e : 正距円筒図法 で出力するように指定します。
- pitch : ピッチ。度。純正ツールの出力と同じになるように調整。
- interp : 画素の補完方法を指定します。
- crop : 使用する画素の範囲を切り出します。
- 今回は 2144 x 1072 の画素数。下半分(=レンズ周辺部分)は捨てるので、高さを 1072 の半分の 536 を使う。
- pad : 範囲外を塗りつぶし。
- crop で切り出した範囲外で 2044 x 1072 のなかを塗りつぶし。
まとめ
- 動画ファイルを変換したところ、期待する見え方に変換できていました。
- 変換前と後の動画ファイルを比較してみると、ファイルサイズが思いっきり(1/10くらい)小さくなっていました。 もともと圧縮がゆるいのか、それとも ffmpeg で必要以上に圧縮されてしまったのか。 もうちょっと調べる。
- 画素の補完方法について、最適なものを調べてみる。
- サンプル画像を記事にのっける。文字だけだとわかりづらいし。
- AviUtl のフィルタも存在するらしい。試してみる。 ドーム射影変換フィルタ for AviUtl