読者です 読者をやめる 読者になる 読者になる

clock-up-blog

go-mi-tech

avi や mp4 等をアニメーションGIFに変換する

ffmpeg というモジュールを使って変換できます。

ffmpeg による一発変換だとファイルサイズが大きくなりすぎるので、一旦パレットを生成してファイルサイズを抑制します。

ffmpeg の導入

CentOS の場合

# yum -y install ffmpeg

Windows の場合

以下からビルド済み実行ファイルを入手可能。

自分はこの中の「FFmpeg 64-bit Static」を使ってます。

変換

以下、横幅=1024, FPS=8 で a.mp4 を output.gif として変換する例です。

# パレット生成 (ファイルサイズを小さくするため)
ffmpeg -y -i a.mp4 -vf fps=8,scale=1024:-1:flags=lanczos,palettegen palette.png

# アニメーションGIF生成
ffmpeg -i a.mp4 -i palette.png -filter_complex "fps=8,scale=1024:-1:flags=lanczos[x];[x][1:v]paletteuse" output.gif
  • scale=1024 という指定の部分を scale=-1 にすると横幅は自動設定になります。
  • fps=8 という指定の部分を変えると FPS(秒間フレーム数) を変更することができます。
  • 入力ファイルは mp4 以外にも avi や flv 等にも対応しています。

おしまい

アニメーションGIFってかなり普及してる形式だと思ってるんですけど、インターネットで見つかる技術情報少なすぎませんかね?みんなどうしてるんだろう…?

});