MOONGIFTでソフトウェア紹介をする際に、なるべくアニメーションGIFを使っています。デスクトップであればLICEcapのように操作をアニメーションGIFとして記録するソフトウェアがあるのですが、iOSなどの場合は操作を動画で記録した後、アニメーションGIFに変換する必要があります。 その際、アニメーションGIFへの変換と幅やフレームレートの調整などを行わなければならないのですが、screengifを使えば一つのコマンドでできるようになります。

screengifの使い方

screengifでは動画ファイルをコマンド一つでアニメーションGIFに変換できます。以下は変換例です。

コマンドのヘルプです。

$ screengif --help
screengif.rb - Convert your screencast into a gif.
Usage:
	screengif.rb [options] [--input FILENAME.mov] [--output OUTPUTFILE.gif]
Examples:
	./screengif.rb --input demo.mov --output out.gif
	cat somefile.gif | ./screengif.rb --progressbar --framerate 10 --delay 50 --delay-last 5 > out.gif

Specific options:
    -i, --input FILENAME.mov         Use ffmpeg to convert FILENAME.mov into PPM image stream and process results.
                                     If missing, will process PPM or GIF image stream from STDIN.
    -o, --output FILENAME.gif        Output resulting GIF data to FILENAME.gif. (defaults to STDOUT).
    -p, --progressbar                Overlay progress bar on the animation.
    -d, --delay MS                   Animation frame delay, in tens of ms. (default: 10)
        --delay-last MS              Animation frame delay of last frame, in tens of ms. (default: 50)
    -r, --framerate FPS              Specify amount of frames per second to keep. (default: 5)
    -w, --max-width PIXELS           Output image max width, in pixels.
        --max-height PIXELS          Output image max height, in pixels.
        --no-contrast                Skip increasing contrast using imagemagick.
    -f, --fuzz PERCENT               Imagemagick fuzz factor for color reduction. (default: 5%)
        --no-coalesce                Skip Magick::ImageList#coalesce() if input doesn't need it.
        --no-gifsicle                Prevent filter the output through gifsicle. Greatly increases output file size.
    -h, --help                       Show this message
    -v, --verbose                    Verbose output
        --version                    Show version

実際の変換コマンドは次のようになります。

$ screengif --max-width 350 --framerate 10 -i screen.mov > screen.gif
Processing image: 60/60
Conversion completed in 5.748048 seconds.
Input: screen.mov (00:00:05.82, 6.0M)
Output: STDOUT (1071K)

変換後のファイルサイズが大きいのが気になるところですが、再現度はかなり高いように見えます。動画で取っていたヘルプなどをHTMLに簡単に埋め込めるアニメーションGIFに変換してみてはいかがでしょう。

screengifはRuby製のソフトウェア(ソースコードは公開されていますがライセンスは明記されていません)です。

dergachev/screengif