こんにちは、エンジニアのオオバです。
とある仕事でmp4動画ファイルをgifに変換する必要が出てきました。
オンラインで変換してくれるサービスはいくつもあります。
しかし、動画素材がプライバシー的にアップロードできずパソコン上での変換が必須。
この条件でmp4動画からgifに変換するベストプラクティスを紹介します。
→11万文字で徹底解説した「DOTweenの教科書」Unityアニメーションの超効率化ツールはこちら
mp4動画からgif変換はFFmpegがベストプラクティス
言わずと知れば動画エンコードアプリ 「FFmpeg」 。
やはりmp4動画からgifに変換するときはFFmpegが最強です。
まず 「無料」 であることが大きい。
本記事はMac環境で話を進めます。
Macユーザーの方はHomeBrewでFFmpegをインストールすると楽です。
ぼくもHomeBrewを使っています。
$ brew install ffmpeg
このコマンドだけでFFmpegは使えるようになります。
では実際に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動画がこれで作られます。
とても簡単ですよね。
まとめ : mp4動画をgifに変換するのはFFmpegが最強
最後に記事の内容を簡単にまとめます。
①FFmpegを使うと拡張子をgifにするだけでgifを作成可能
②FFmpegは解像度を簡単に指定可能
③FFmpegはフレームレードも設定可能
④FFmpegは高機能なのに無料
こんな感じです。
動画のエンコード案件はまずFFmpegが候補として上がります。
解像度、フレームレートの他、さまざまな設定項目があります。
そしてこんなに高機能なのに 「無料」 。
信じられないですね。
mp4からgifへの変換はとりあえずFFmpegに任せれば大丈夫かなと思います。
設定次第で自分好みの画作りも可能。
ぜひまだ使ったことがない方はインストールしてみてください。
この記事が気に入ったらフォローしよう
「Unity初心者大学」というUnity初心者向けのYouTube始めました!!
ぜひチャンネル登録をお願いします!
最後まで読んでいただきありがとうございました!
すばらしいFFmpegライフをお過ごしください。
- FFmpeg v5.0