ffmpegで大量の画像をwebp化する [mac]
2025/12/09
ffmpegは動画圧縮で愛用していたが、画像も圧縮できるとは知らなかった。
大量の画像を圧縮したいと思ってツールを探していたのだが、灯台もと暮らしだったんだね。
ファイル1枚もしくは連番で
input_0001.jpgのような連番に使える。
ffmpeg -i input_%04d.jpg -c:v libwebp -qscale 75 output_%04d.webpフォルダ 「aa」 内の JPG/PNG をすべて WebP 化するコマンド(macOS/Linux)
bashにて
for f in aa/*.jpg aa/*.png; do
[ -e "$f" ] || continue
ffmpeg -i "$f" -c:v libwebp -qscale 75 "${f%.*}.webp"
doneaaフォルダ内にそれぞれのwebpが作成されます。だいたい1/10~1/20くらいの容量に。
出力先を別フォルダにしたい場合(例:「output」 フォルダ)
mkdir -p output
for f in aa/*.jpg aa/*.png; do
[ -e "$f" ] || continue
base=$(basename "$f")
ffmpeg -i "$f" -c:v libwebp -qscale 75 -compression_level 6 \
"output/${base%.*}.webp"
doneオプション
-lossless 0: 非可逆だが透過保持しつつ軽量-lossless 1: 透過保持で可逆(画質は最強だが容量大)-compression_level 6: WebP の圧縮効率最大(0〜6)