🐈

動画からGIFを作成する

2023/06/12に公開

はじめに

Zenn で記事作成時に、言葉で説明しにくい文章を GIF にしたいときがあります。外部のオンラインサービスに頼らず、ローカルで動画から GIF を作成する方法を紹介します。

作成された GIF は以下のようになります。

前提

以下を前提とします。

  • Mac を利用していること
  • Homebrewが利用できること

環境構築

ffmpegとは、動画を変換するためのツールです。

Homebrewffmpeg をインストールします。

$ brew install ffmpeg

https://formulae.brew.sh/formula/ffmpeg

画面を収録

Mac でプリインストールされている機能を利用し画面収録します。

「shift」「command」「5」の 3 つのキーを同時に押します。その後、以下のような画面が出ますので、①で「画面全体収録」か「選択部分の収録」かのどちらかを選択します。「選択部分の収録」の場合は、②で撮影場所を指定します。そして最後に③で「収録」ボタンを押して収録を開始します。

動画をGIFに変換

ffmpeg を利用して、動画を GIF に変換します。

基本的な使い方

最も単純な使い方です。

# テンプレート
$ ffmpeg -i {入力動画} {出力GIF画像}

# 以下が例です。
$ ffmpeg -i input.mp4 output.gif
オプション 説明
-i {入力動画} 入力する動画ファイルのパスを指定
{出力GIF画像} 出力するGIF画像ファイルのパスを指定

フレームレートを指定する方法

基本的な使い方だと、ファイルサイズが大きくなってしまうので、フレームレートを指定しファイルサイズを縮小します。ちなみに、フレームレートが高すぎると、逆にファイルサイズが大きくなってしまいます。

# テンプレート
$ ffmpeg -i {入力動画} -r {フレームレート} {出力GIF画像}

# 以下が1秒間10フレームの場合の例です。
$ ffmpeg -i input.mp4 -r 10 output.gif
オプション 説明
-i {入力動画} 入力する動画ファイルのパスを指定
{出力GIF画像} 出力するGIF画像ファイルのパスを指定
-r {フレームレート} 1秒間のフレーム数を指定

解像度を指定する方法

出力する Gif の解像度を指定できます。

# テンプレート
$ ffmpeg -i {入力動画}` -vf scale={横ピクセル数}:{縦ピクセル数} {出力GIF画像}

# 幅320ピクセル、縦640ピクセルに変換する場合は以下です。
$ ffmpeg -i input.mp4 -vf scale=320:640 output.gif
# 縦幅の比率を変えずに、幅を320ピクセルに変換する場合は以下です。
$ ffmpeg -i input.mp4 -vf scale=320:01 output.gif
オプション 説明
-i {入力動画} 入力する動画ファイルのパスを指定
{出力GIF画像} 出力するGIF画像ファイルのパスを指定
-vf scale={横ピクセル数}:{縦ピクセル数} 横ピクセル数と縦ピクセル数で出力サイズを指定。比率を変えずに解像度を指定する場合は、-1 を指定

解像度、フレームレートを指定する方法

最後に、解像度、フレームレートを同時に指定する方法を紹介します。

# 縦横の比率を変えずに幅を320ピクセルにリサイズ、フレームレートは10に指定
$ ffmpeg -i input.mp4 -vf scale=320:-1 -r 10 output.gif

参照

https://ffmpeg.org/ffmpeg.html
https://support.apple.com/ja-jp/HT208721
https://brew.sh/index_ja
https://formulae.brew.sh/formula/ffmpeg

Discussion