2024/06/23(日)ffmpegでアニメーションgifの容量をできるだけ小さくする

今時は、mp4やmovなどの動画ファイルを気軽にアップロードできますが、プログラムライブラリに動画を同梱する場合は
  • なるべく容量を抑えたい
  • 画質は問わない
  • そのため動作内容がわかればよい
  • 汎用性の高いファイル形式にしておきたい
という要件があると思います。じゃあffmpegで良い感じにできないかといろいろ調べた結果以下のコマンド
./ffmpeg.exe -i "C:\soft\ffmpeg\input.mp4" -vf "fps=1, setpts=PTS/1.5, scale=600:-1, split[a][b]; [a]palettegen=max_colors=8[c]; [b][c]paletteuse;" -ss 3 -loop 0 output.gif
  • 1fps
  • 8色
  • そこそこサイズの幅600
※-ss 3 は元ソース3秒目から変換、パスなどは適宜読み替え。

で600KB程度の数十秒間の動画の作成ができました。