コフス技術ブログ

ffmpegで動画をアニメーションGIF/WebPへ変換する手順

ffmpegを用いて動画ファイルをGIF、またはWebPへ変換する手順です。
Markdownなどピュアなドキュメントに短い動画ファイルを添付したい際などにも便利です。

インストール

ffmpegはHomebrewなどであらかじめインストールします。

Terminal window
brew install ffmpeg

変換

GIF変換

動画ファイルをinput.mov、出力をoutput.gifとした場合の変換例です。

Terminal window
ffmpeg -i input.mov -filter_complex "[0:v] fps=10,scale=780:-1,split [a][b];[a] palettegen [p];[b][p] paletteuse=dither=none" output.gif

オプションは以下を指定しています。

  • -fps:10
  • -scale(サイズ):780px
  • グローバルパレットの最適化 + ディザリングなし

参考:https://qiita.com/yusuga/items/ba7b5c2cac3f2928f040

WebP変換

動画ファイルをinput.mp4、出力をoutput.webpとした場合の変換例です。

Terminal window
ffmpeg -i input.mp4 -vcodec libwebp -filter:v fps=fps=30 -lossless 0 -qscale:v 30 -loop 0 -preset default -an -vsync 0 -compression_level 6 -s 780:1690 output.webp

オプションは以下を指定しています。

  • -fps:30
  • -lossless:なし
  • -qscale(非可逆エンコーディング時の品質):30
  • -loop:ループ再生
  • -preset(none/default/picture/photo/drawing/icon/text):default
  • -compression_level(圧縮品質0〜6):6
  • -s(解像度指定):780px × 1690px

公式オプション指定:http://ffmpeg.org/ffmpeg-all.html#libwebp
参考:https://gist.github.com/witmin/1edf926c2886d5c8d9b264d70baf7379