ffmpegのscale

ffmpegでサムネイル用画像を書き出す際、Node.jsのsharpと同じ拡縮指定となるように頑張ってみた。

sharpでは5種類(cover,contain,fill,inside,outside)の拡縮指定がある。

元画像

input.jpg 240×320

cover

指定サイズを埋める最小の大きさに縦横比を維持して拡縮する。


cover 160×90

cover 160×300

contain

指定サイズ内に収まるように縦横比を維持して拡縮する。余白は黒で塗りつぶし。


contain 160×90

contain 160×300

fill

指定サイズを埋めるように拡縮する。


fill 160×90

fill 160×300

inside

指定サイズの箱の内側にハマる最大サイズで縦横比を維持して拡縮する。


inside 68×90

inside 160×213

outside

指定サイズの箱の外側にハマる最小サイズで縦横比を維持して拡縮する。


outside 160×213

outside 225×300

node.jsのコード

参考

Scaling – FFmpeg
Documentation
Resizing images – sharp
Node.jsのライブラリsharpでリサイズを試してみる | Simple is Beautiful.