FFmpegを使ってgif画像を作成する
TOC
ブログやドキュメントを書いていると、一連の流れを動きで見せたい時が稀にあります。 そういった時、自分は毎回Google先生に「Mac gif 作成」などで検索してしまうので、探す手間を省く&メモとしてブログに残しておきたいと思います。
前提
- homebrewがインストールされている
素材の準備
今回のサンプルとして適当な素材を用意します。
Macはcmd + shift + 5
で動画の撮影できるので、これを使って適当な動画を撮影します。
今回はデスクトップにsample.mov
を作成しました。
作成した動画の情報はこちらになります。
[動画ファイル]
- サイズ:41.3 MB
- 再生時間:24秒
- 大きさ:1542 × 862
FFmpegのインストール
今回gif画像の生成にFFmpegと言うフリーソフトを使用します。 このソフトはMac以外にも様々なOSで使用する事ができるソフトウェアです。
下記コマンドをターミナルに入力しインストールを行います。
$ brew install ffmpeg
gif画像の生成
インストールが完了したら早速gif画像を生成してみましょう。 基本的な使い方はこちらになります。
$ ffmpeg -i 変換前のファイルパス 変換後のファイル名及びパス
-i
オプションは入力ファイルのパスを指定するオプションなので、必ずつけてください。
デスクトップにあるsample.movをsample.gifに変換します。
$ ffmpeg -i Desktop/sample.mov Desktop/sample.gif
ファイルが生成されました! ...ですが、生成されたgif画像のファイルサイズをみてみると、動画ファイルの倍のサイズになってしまっています。
[生成されたgifファイル]
- サイズ:76.2 MB
このままではあまり使い勝手が良くないので、更にオプションを追加して、ファイルサイズを小さくしていきたいと思います。
フレームレートを指定する
-r
オプションを指定すると、フレームレートを指定値にして変換してくれます。
gif画像にそこまで高いフレームレートは求めないと思いますので、次は10フレームレートに指定してgif画像を作成してみたいと思います。
$ ffmpeg -i Desktop/sample.mov -r 10 Desktop/sample.gif
先ほどよりファイルサイズが小さいgif画像が生成されました。 フレームレートをさらに落とせばもっとファイルサイズは小さくなりますが、その分画像は荒くなります。
画像の横幅と高さを変更する
-vf
オプションを指定する事で、様々なフィルター処理をファイルにかける事ができます。
このオプションを使って、横幅と高さを、指定したサイズに変換してみたいと思います。
今回は横幅640px、高さはアスペクト比を維持して出力を行います。
$ ffmpeg -i Desktop/sample.mov -vf scale=640:-1 -r 10 Desktop/sample.gif
横幅640pxの画像が生成されたと思います。
結果
フレームレートと横幅を指定する事で、かなりファイルサイズが軽減されました。
[最終的なgifファイル]
- サイズ:6.4 MB
[今回生成したgif画像]
スプラ1のカンストした動画が残っていたので今回サンプルで使用しました。 ・・・懐かしい。
まとめ
自分はそれほど頻繁にgif画像や動画ファイルを扱う機会がない為、FFmpegの触り部分しか使えておりませんが、Macのショートカットから動画を撮り、コマンドを実行したらgif画像がすぐ生成されるというのは、非常に簡単で便利だなと感じました。
gif画像作成にお困りの方は、是非FFmpegを使ってみてはいかがでしょうか。
補足
今回FFmpegを使ってgif画像を生成しましたが、本来このソフトは動画と音声を記録・変換・再生するソフトウェアで、メディアを扱った様々な操作を行う事ができます。 この記事をみてこのソフトに興味が湧いた方は、是非ご自身で他の使い方など調べてみてください。 [公式サイト] https://ffmpeg.org/