こんにちは、エンジニアのオオバです。
結論 : このコマンドでmp4からgifに変換できます
急いでいる方のために、先に答えを置いておきます。
$ ffmpeg -i input.mp4 output.gif
出力ファイルの拡張子を gif にするだけです。
解像度とフレームレートを指定したい場合はこちら。
$ ffmpeg -i input.mp4 -vf scale=320:-1 -r 20 output.gif
-vf scale が解像度、-r がフレームレートの指定です。
scale の高さに -1 を渡すと、元の比率を保ったまま縮小されます。
以下、それぞれのオプションを詳しく解説していきます。
とある仕事でmp4動画ファイルをgifに変換する必要が出てきました。
オンラインで変換してくれるサービスはいくつもあります。
しかし、動画素材がプライバシー的にアップロードできずパソコン上での変換が必須。
この条件でmp4動画からgifに変換するベストプラクティスを紹介します。
→11万文字で徹底解説した「DOTweenの教科書」Unityアニメーションの超効率化ツールはこちら
mp4動画からgif変換はFFmpegがベストプラクティス
言わずと知れば動画エンコードアプリ 「FFmpeg」 。
やはりmp4動画からgifに変換するときはFFmpegが最強です。
まず 「無料」 であることが大きい。
本記事はMac環境で話を進めます。
Macユーザーの方はHomeBrewでFFmpegをインストールすると楽です。
ぼくもHomeBrewを使っています。
$ brew install ffmpeg
このコマンドだけでFFmpegは使えるようになります。
Macでmp4をgifに変換する手順
Macのターミナルで、次の3つを順に実行します。
- FFmpegをインストールする(最初の1回だけ)
- mp4ファイルがあるフォルダへ移動する
- 変換コマンドを実行する
# 1. FFmpegをインストール(最初の1回だけ)$ brew install ffmpeg
# 2. mp4があるフォルダへ移動(例: デスクトップ)$ cd ~/Desktop
# 3. mp4からgifに変換
$ ffmpeg -i input.mp4 output.gif
同じフォルダに output.gif ができれば変換完了です。
オンラインの変換サービスへ動画をアップロードする必要はありません。
では実際にmp4からgifへの変換方法を解説します。
出力ファイルの拡張子を「gif」にするだけ
mp4をgifに変換するのはとても簡単です。
出力ファイルの拡張子を「gif」にするだけなのです。
変換するmp4ファイル名を「input.mp4」、
出力するgifファイル名を「output.gif」とします。
gifに変換する最短コードはこちら。
$ ffmpeg -i input.mp4 output.gif
これでgifに変換されます。超簡単。
gifの解像度を指定する方法
このままでは味気ないのでgifファイルの解像度を指定してみましょう。
$ ffmpeg -i input.mp4 -vf scale=出力幅ピクセル数:出力縦ピクセル数 output.gif
このようなコマンドで解像度指定できます。
ポイントは -vf オプションです。
幅高さのサイズ(ピクセル)を指定するだけ。
では以下の条件でmp4動画からgifに変換してみましょう。
- 幅320ピクセルにリサイズ
- 高さは比率をを変えずにリサイズ
$ ffmpeg -i input.mp4 -vf scale=320:-1 output.gif
比率を変えずに解像度を指定する場合は -1 をセットすればOK。
gifのフレームレートを指定する
最後にフレームレートの指定をしてみます。
フレームレートは動画の滑らかさに欠かせない設定。
数値が高ければ高いほどなめらかな動画になりますが、
同時にファイルサイズも大きくなるので注意してください。
$ ffmpeg -i input.mp4 -r フレームレート output.gif
こんな感じで -r オプションでフレームレートを指定します。
ではフレームレート20のgifに変換してみましょう。
$ ffmpeg -i input.mp4 -r 20 output.gif
このコマンドを実行するとフレームレート20のgifファイルが作られます。
解像度、フレームレート同時に指定したgif変換方法
では、解像度、フレームレートどちらも指定したgifに変換して締めたいと思います。
- 幅320ピクセルにリサイズ
- 高さは比率をを変えずにリサイズ
- フレームレート20
以上の条件を満たす変換コマンドはこちらです。
$ ffmpeg -i input.mp4 -vf scale=320:-1 -r 20 output.gif
解像度幅320px、フレームレート20のgif動画がこれで作られます。
とても簡単ですよね。
gifの画質が粗いときは?(パレットを作って変換)
gifは256色までしか使えないため、そのまま変換すると色がざらつくことがあります。
その場合は、動画から色のパレットを作ってから変換します。
$ ffmpeg -i input.mp4 -vf "fps=20,scale=320:-1:flags=lanczos,split[a][b];[a]palettegen[p];[b][p]paletteuse" output.gif
palettegen で動画に合ったパレットを作り、paletteuse でそのパレットを使ってgifにしています。
fps=20 がフレームレート、scale=320:-1 が解像度で、前の節の -r 20 と -vf scale=320:-1 と同じ指定です。
mp4の一部だけをgifにするには?
長い動画の一部だけをgifにしたいときは、-ss で開始位置、-t で長さ(秒)を指定します。
$ ffmpeg -ss 5 -t 3 -i input.mp4 -vf scale=320:-1 -r 20 output.gif
ファイルサイズを小さくしたいときも、長さを短くするのがいちばん効きます。
連番画像からgifを作る場合
mp4ではなく、連番のpng画像からアニメーションgifを作る方法は別の記事にまとめました。
👉 【FFmpeg】連番画像からアニメーションGIFをつくる方法
まとめ : mp4動画をgifに変換するのはFFmpegが最強
最後に記事の内容を簡単にまとめます。
①FFmpegを使うと拡張子をgifにするだけでgifを作成可能
②FFmpegは解像度を簡単に指定可能
③FFmpegはフレームレードも設定可能
④FFmpegは高機能なのに無料
こんな感じです。
動画のエンコード案件はまずFFmpegが候補として上がります。
解像度、フレームレートの他、さまざまな設定項目があります。
そしてこんなに高機能なのに 「無料」 。
信じられないですね。
mp4からgifへの変換はとりあえずFFmpegに任せれば大丈夫かなと思います。
設定次第で自分好みの画作りも可能。
ぜひまだ使ったことがない方はインストールしてみてください。

この記事が気に入ったらフォローしよう
「Unity初心者大学」というUnity初心者向けのYouTube始めました!!
ぜひチャンネル登録をお願いします!
最後まで読んでいただきありがとうございました!
すばらしいFFmpegライフをお過ごしください。
- FFmpeg v8.1.1

