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

kivantium活動日記

プログラムを使っていろいろやります

mp4からのアニメーションGIFの作成方法

アニメーションGIFはかなりレガシーな形式ですが、Twitterに投稿できるようになるなど今でも使われ続けています。mp4の動画からアニメーションGIFを作成する方法をメモしておきます。動画形式はlibavで読めるものならmp4でなくてもできるはずです。

必要なソフトのインストール

libav(ffmpegからフォークしたプロジェクト)とImagemagicを使います。Ubuntuなら

sudo apt-get install libav-tools imagemagick

でOKです。(次のバージョンからffmpegに戻るという噂もあるので動向に注目)

アニメーションGIFの作成

まずは動画を複数の静止画にバラします。

avconv -i input.mp4 -r 10 -f image2 image-%03d.jpg
  • iオプションは入力動画名を指定します
  • rオプションはfpsを指定します。ここでは1秒あたり10枚の画像を作っています
  • fオプションは出力形式を指定します。image2は静止画の組にすることを表します
  • 最後はimage-xxx.jpgという名前で画像を保存するように指定しています
avconv -i output.avi -vf "scale=480:270" -r 10 -f image2 image-%03d.jpg

というようにすれば画像サイズが480x270になります。

次にバラした静止画をアニメーションGIFに合成します。

convert -delay 10 -loop 0 image-*.jpg output.gif
  • delayオプションにはコマの間隔を1/100秒単位で指定します。10fpsなので100msになる10を指定しました。
  • loopオプションはループ回数を指定します。0を指定すると無限ループです。

こんな感じのGIFを作れます。
f:id:kivantium:20150202170210g:plain:w300