【Mac】ffmpegで動画キャプチャ.mov を gif に簡単変換

【Mac】ffmpegで動画キャプチャ.mov を gif に簡単変換

WordPressの記事で簡単な手順を説明するのにYoutubeや動画を埋め込むと
表示が重いわSEO的によくないわいちいち再生ボタン押さないと再生されないわで、
あまりメリットがないですし不便です。。

WordPressの記事投稿に限らず、
「動画の解像度は多少悪くなっても、とにかくサイズを軽くしたい!」という方にオススメ
動画ファイル(.mov)をGIF形式ファイル(.gif)に簡単に変換できる「ffmpeg」の紹介です!

Point

解像度をそこまで悪くしないけど、サイズもそこまで落ちない。という設定にもできます!

早速インストールしていきましょう!

ffmpeg インストール手順

・ターミナルを開いて以下のインストールコマンドを実行

brew install ffmpeg
Attention

Homebrewがインストールされていることが前提です🍺
インストールしていない方は以下コマンドでインストールしてください。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

ffmpegの基本的な使い方

・ターミナルを開く
command ⌘ + space → 「ターミナル」と入力 → return ⏎
ランチパッドでアプリを起動するよりこっちのほうが早くて好き

・以下をコマンドを実行

ffmpeg -i [変換前の動画キャプチャのファイル名.mov] -r [FrameRate] [GIFに変換後のファイル名.gif]
Point

・以下のように書き換えます。
[変換前の動画キャプチャのファイル名.mov] → 変換前の動画ファイル名
[FrameRate] → フレームレートを半角数字で指定
[変換前の動画キャプチャのファイル名.gif] → 変換後のGif形式ファイル名

・実行例
「input_Sample.mov」という動画ファイルを24フレームレートで「output_Sample.gif」というGIFファイルに変換する場合

ffmpeg -i input_Sample.mov -r 24 output_Sample.gif

上記コマンドで実際にどのくらいのフレームレートでどのくらいの滑らかさなのか、
ということは変換してみないとわからないので、参考Gifをサンプルとしておいておきます。

変換後のGif形式ファイル(.gif)のフレームレートが5

変換後のGif形式ファイル(.gif)のフレームレートが15

Point

15fpsだとかなり容量を落とせますが、カクカクを顕著に感じますのでお好みで

変換後のGif形式ファイル(.gif)のフレームレートが30

Point

人が見てスムーズだと感じるfps(フレームレート)は、24fps〜30fps程度と言われています。
また、日本のテレビ放送が30fpsのため、最高でも30fpsあればスムーズに感じられますが、あまりファイル容量を落とせません。

変換後のGif形式ファイル(.gif)のフレームレートが60

30fpsとあんまり変わらない、、?

コマンド一覧

上記では基本的なコマンドをご紹介しましたが、その他にも高解像度でのGif変換や、Gif変換をさらに圧縮などの方法もご紹介していきたいと思います!

1. 基本的なGIF変換

ffmpeg -i input.mov -r 24 output.gif

2. 高品質GIF作成(カラーパレット最適化)

ffmpeg -i input.mov -vf "fps=15,scale=640:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif

3. サイズ指定

ffmpeg -i input.mov -vf "scale=640:480,fps=15" output.gif

4. 幅のみ指定(高さ自動調整)

ffmpeg -i input.mov -vf "scale=640:-1,fps=15" output.gif

幅のみを指定する場合は scale=640:-1 のように指定しますが、高さのみを指定する場合は scale=-1:480 のように変更します。この場合、幅は元の動画の比率を保持して自動調整されます。

5. 比率指定(50%にスケールダウン)

ffmpeg -i input.mov -vf "scale=iw*0.5:ih*0.5,fps=15" output.gif

6. GIF圧縮

ffmpeg -i input.gif -vf "fps=10,scale=320:-1:flags=lanczos" -q:v 10 output_compressed.gif

7. 動画の一部分をGIF化

ffmpeg -ss 00:00:10 -t 00:00:05 -i input.mov -vf "fps=15,scale=640:-1" output.gif

8. GIFの速度調整(2倍速)

ffmpeg -i input.mov -vf "setpts=0.5*PTS,fps=15,scale=640:-1" output_fast.gif

9. テキスト追加

ffmpeg -i input.mov -vf "drawtext=fontfile=/path/to/font.ttf:fontsize=24:fontcolor=white:box=1:boxcolor=black@0.5:boxborderw=5:x=(w-text_w)/2:
y=h-th-10:text='Sample Text',fps=15,scale=640:-1" output_with_text.gif

10. フェードイン・アウト効果

ffmpeg -i input.mov -vf "fade=in:0:30,fade=out:270:30,fps=15,scale=640:-1" output_fade.gif
Point

・これらのコマンドは組み合わせて使用することも可能です。例えば、サイズ指定と圧縮を同時に行うことができます。
・複雑なフィルターを使用すると処理時間が長くなる可能性があるので、注意が必要です。

11. ループ設定

・5回ループするGIF

ffmpeg -i input.mov -loop 5 output.gif

・1回だけ再生するGIF(ループしない)

ffmpeg -i input.mov -loop 1 output.gif
Point

・これらのコマンドは組み合わせて使用することも可能です。例えば、サイズ指定と圧縮を同時に行うことができます。
・複雑なフィルターを使用すると処理時間が長くなる可能性があるので、注意が必要です。
・GIFのループ設定を指定しない場合、デフォルトで無限ループになります。明示的に無限ループを指定する場合は -loop 0 を使用します。

動画情報を確認するコマンド

GIF変換を行う際に、元の動画ファイルの情報を確認することで「じゃああとこのくらい圧縮しよう。」と判断基準になります。
以下のffmpegに付属するffprobeコマンドを使用すると、動画の詳細情報を取得できます。

ffprobe -i input.mp4

・動画の解像度
・フレームレート
・ビットレート
・コーデック情報
・音声トラック情報(ある場合)
・メタデータ

Point

・動画の情報を事前に確認することで、GIF変換時の最適な設定(解像度、フレームレートなど)を決定するのに役立ちます。
・特に、元の動画のフレームレートを知ることで、GIF作成時に適切なフレームレートを選択できます。

権限系のエラーのトラブルシューティング

インストール時に権限エラーがでた際の対応手順を、別記事で紹介しているので参考にどうぞ!
【Mac】brew install 時に「XXX is not writable. You should change the
ownership and permissions of XXX back to your
user account:」とエラーが出た時の対処法

【Mac】brew install 時に「The following directories are not writable by your user:」とエラーが出た時の対処法

あとがき

ffmpegのインストールお疲れさまでした。
これで簡単にfpsを指定してGIFを作成することができるようになりましたね!

それでは次の記事で会いましょう!

Macカテゴリの最新記事