APNGと並んで互換性の低かったAnimated WebPについて。対応ブラウザは、Chrome、Opera、Winodws 10のMicrosoft Edge44以降、そしてFirefox 65以降である。画像投稿サイトはほとんど対応してないと思うので実用性は高くない。対応カラーフォーマットは YUV420p(YUVA420p)。APNGのように可逆圧縮だけではないので低容量でアニメGIFよりも高画質に作れるが互換性が低いのが弱点。
2020年11月現在、ffmpegではAnimated WebPをデコードできない。1フレームのWebpならデコードできる。Patchworkにパッチが来ているが公式には組み込まれていない。
#4907 (Support decoding animated WebP images) – FFmpeg
[FFmpeg-devel] avformat/webpdec: WebP demuxer implementation – Patchwork
基本コマンド
ffmpeg -i input -c:v libwebp -lossless 0 -q:v 75 -preset default -loop 0 -an -fps_mode vfr output.webp
複数の静止画像で出力する。
ffmpeg -i input -c:v libwebp -lossless 0 -q:v 75 -preset default -loop 0 -an -fps_mode vfr output%03d.webp
公式ドキュメント:FFmpeg Codecs Documentation : libwebp
オプション
- -lossless[int]
可逆圧縮指定
既定値:0(1が可逆圧縮) - -compression_level
圧縮率の指定。数値が高いほど高圧縮でエンコードに時間がかかる
既定値:4
範囲:0から6まで - -quality、-qscaleは廃止予定
圧縮品質の指定。数値が高いほど高画質。不可逆圧縮時に高い数値だとエンコードが長時間の高画質で大容量。可逆圧縮指定に高い数値だとエンコードが長時間で低容量
既定値:75
範囲:0から100まで - -preset[int]
プリセットの指定 - -1, none:プリセットを使わない。既定値
- 0, default:自動指定
- 1, picture:人物写真
- 2, photo:風景写真
- 3, drawing:線画など
- 4, icon:小さなサイズで色彩豊富
- 5, text:文字が中心
指定フレームだけを出力する場合はtrim
フィルタを使い、リサイズや、フレームレートを減らすにはfps, scale
フィルタを使う。
ffmpeg -i input -vf fps=15,scale=320:-2 -c:v libwebp -lossless 0 -quality 75 -preset default -an -fps_mode vfr output.webp