🐈
動画からGIFを作成する
はじめに
Zenn で記事作成時に、言葉で説明しにくい文章を GIF にしたいときがあります。外部のオンラインサービスに頼らず、ローカルで動画から GIF を作成する方法を紹介します。
作成された GIF は以下のようになります。
前提
以下を前提とします。
- Mac を利用していること
- Homebrewが利用できること
環境構築
ffmpegとは、動画を変換するためのツールです。
Homebrew
で ffmpeg
をインストールします。
$ brew install 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
参照
Discussion