Animated GIFをWebPで劇的に圧縮する
Animated GIF は多様なブラウザで互換性が高く気軽に貼れる面白い猫の動画などで広く使用される
互換性が高く便利な一方で、動画コンテンツとしては MPEG4 AVC / H.264 や HEVC / H.265 などのビデオフォーマットに比較してファイルサイズがかなり大きくなる傾向がある。
そんなときは ffmpeg を使用して GIF を WebP もしくは WebM に変換するとほぼ劣化なくファイルサイズを圧縮できる。
iOS や macOS の Safari の場合はアルファチャンネルを含む WebP のレンダリングが正常に行えないので APNG もしくは HEVC + WebM のような構成にする必要があるので注意
Safariはアルファチャンネル付きAnimated WebPを正しくレンダリングできない場合がある
ブラウザ互換性の高いメディア形式の選択早見表
変換方法
ffmpeg 自体は scoop や Homebrew で取得できるので予めインストールしておく。
基本的には以下のコマンドで一発で変換できる。
無限ループする Animated GIF の場合は -loop 0 を指定するのを忘れないように。
圧縮率は元のデータや圧縮率により変動するが概ね 1/3 から 1/4 程度まで圧縮される。
code:sh
# input.gif を無限ループ動画として output.webp に出力する
ffmpeg -i input.gif -loop 0 output.webp
関連
ffmpegで動画をアニメーションGIF/WebPへ変換する手順 | COFUS技術ブログ
FFmpegでgif動画のファイルサイズを小さく調整する | 魔法使いのWebマーケティング