ffmpegコマンドで、.mov形式や.mp4の動画ファイルをGIFファイルに変換する方法の備忘録です。
はじめに
画面キャプチャによって出力される.movファイルを、GIFに変換したくなることがありました。
ffmpegコマンドで簡単にできたので、備忘録を残します。
なお今回はmovファイルを取り上げて検証しましたが、mp4など他の形式の動画ファイルでも同様に実行可能です。
補足: ffmpegとは

ffmpegは、画像や動画の処理に使われる非常に有名なオープンソースのソフトウェアです。
homebrewなどの各種パッケージマネージャや、公式サイトから実行ファイルを取得してインストールできます。
ffmpegでmov動画ファイルをGIFに変換する
GIFに変換する
まず、オプションを使用せずそのままGIF変換を行うには、下記のコマンドを実行します。
ffmpeg -i input.mov output.gif
-iオプション(inputオプション)に変換元のファイル名を指定し(input.mov)、その後に出力後のファイル名を.gif拡張子で指定します(output.gif)

幅を指定してGIF変換する
アスペクト比を維持したまま幅を指定してサイズ変更するには、下記のようなコマンドを実行します。
ffmpeg -i input.mov -vf "scale=<横幅(pixel)>:-1" output.gif
-vfオプションに"scale=100:-1"のように幅を指定します。
-vfは-filter:v(video filter)のエイリアスです。
動画ファイル変換に関する各種フィルターをここで指定できます。
scale=<横幅(pixel)>:-1とすることで、幅を指定しながらアスペクト比を維持した縦幅(-1)が自動設定されます。
実行例:
ffmpeg -i input.mov -vf "scale=100:-1" output.gif

fpsを指定してGIF変換する
GIFのフレームレート(fps)を指定してGIF変換するには、下記のようなコマンドを実行します。
ffmpeg -i input.mov -vf "fps=<フレームレート>" output.gif
-vfオプションに"fps=5"のようにfpsを指定します。
実行例:
ffmpeg -i input.mov -vf "fps=5" output.gif

動画をカットしてGIF変換する
x秒からy秒まで、のように動画の一部分をカットしてGIF化するには、下記のようなコマンドを実行します。
ffmpeg -i input.mov -ss <開始時間> -t <秒数> output.gif
-ssオプションにカットを開始する時間を、-tオプションに切り出す秒数を指定します。
例えば、開始0.5秒から1秒間の動画を切り出してGIF変換するにはこのようなコマンドを実行します。
ffmpeg -i input.mov -ss 0.5 -t 1 output.gif

複数の変換を組み合わせて同時に実行する
ここまで紹介した変換を全て組み合わせてGIF変換すると、このようなコマンドになります。
ffmpeg -i input.mov -ss 0.5 -t 1 -vf "scale=100:-1,fps=5" output.gif
-vfオプションに渡すフィルターは、カンマ,区切りで複数渡せます。
それ以外のオプションも同時に指定可能です。

おわりに
以上、ffmpegでmov動画ファイルをGIFに変換する方法を複数パターン紹介しました。
ffmpegはシンプルなコマンドでありながら実に多機能で便利ですね。
どなたかの参考になれば幸いです。
[関連記事]