WordPressの記事で簡単な手順を説明するのにYoutubeや動画を埋め込むと
表示が重いわSEO的によくないわいちいち再生ボタン押さないと再生されないわで、
あまりメリットがないですし不便です。。
WordPressの記事投稿に限らず、
「動画の解像度は多少悪くなっても、とにかくサイズを軽くしたい!」という方にオススメな
動画ファイル(.mov)をGIF形式ファイル(.gif)に簡単に変換できる「ffmpeg」の紹介です!
解像度をそこまで悪くしないけど、サイズもそこまで落ちない。という設定にもできます!
早速インストールしていきましょう!
ffmpeg インストール手順
・ターミナルを開いて以下のインストールコマンドを実行
brew install ffmpeg
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]
・以下のように書き換えます。
[変換前の動画キャプチャのファイル名.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
15fpsだとかなり容量を落とせますが、カクカクを顕著に感じますのでお好みで
変換後のGif形式ファイル(.gif)のフレームレートが30
人が見てスムーズだと感じる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
・これらのコマンドは組み合わせて使用することも可能です。例えば、サイズ指定と圧縮を同時に行うことができます。
・複雑なフィルターを使用すると処理時間が長くなる可能性があるので、注意が必要です。
11. ループ設定
・5回ループするGIF
ffmpeg -i input.mov -loop 5 output.gif
・1回だけ再生するGIF(ループしない)
ffmpeg -i input.mov -loop 1 output.gif
・これらのコマンドは組み合わせて使用することも可能です。例えば、サイズ指定と圧縮を同時に行うことができます。
・複雑なフィルターを使用すると処理時間が長くなる可能性があるので、注意が必要です。
・GIFのループ設定を指定しない場合、デフォルトで無限ループになります。明示的に無限ループを指定する場合は -loop 0
を使用します。
動画情報を確認するコマンド
GIF変換を行う際に、元の動画ファイルの情報を確認することで「じゃああとこのくらい圧縮しよう。」と判断基準になります。
以下の
ffprobe -i input.mp4
・動画の解像度
・フレームレート
・ビットレート
・コーデック情報
・音声トラック情報(ある場合)
・メタデータ
・動画の情報を事前に確認することで、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を作成することができるようになりましたね!
それでは次の記事で会いましょう!