shuhelohelo’s blog

Xamarin.Forms多めです.

Windowsでmp4をgifに変換する.コマンドラインで.

ブログでアプリケーションの動作を説明するとき,動画がわかりやすいです.

はてなブログを使っていますが,mp4はアップロードできないようです.

f:id:shuhelohelo:20200228115504p:plain

そこでGIFの出番ですが,録画したmp4を別のアプリケーションを起動して変換するのは手間に感じます.

コマンドラインで変換できると便利です.

FFMpegというコマンドラインツールを使うことで,mp4をgifに変換できます.

参考↓ www.addictivetips.com

インストールはChocolateyというパッケージ管理ツールを使いました.

Chocolateyのインストール,使い方については以下. shuhelohelo.hatenablog.com

ffmpegがchocolateyで取得できるか確認します.choco list ffmpegコマンドラインで実行します.

> choco list ffmpeg
Chocolatey v0.10.15
ffmpeg 4.2.2 [Approved]

あるようです.choco install ffmpegでインストールします.

インストールが完了したらコンソールアプリを再起動して,ffmpeg -versionと入力して実行します.

> ffmpeg -version
ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 9.2.1 (GCC) 20200122

バージョンが表示され,インストールされていることが確認できました.

ではmp4をgifに変換します.

一番シンプルなコマンドは以下のとおりです. mp4ファイルを同じ縦横サイズのgifに変換します.デフォルトのフレームレートは20fpsです.

ffmpeg -i movie.mp4 movie.gif

-i movie.mp4で入力する変換対象の動画ファイルを指定します.

変換後のファイルサイズには気をつけたいところです.

1MBのmp4を上のコマンドでgifに変換したところ,4MBになりました.基本的にはサイズは大きくなるようです.

そこで,縦横サイズ,フレームレートをオプションで設定することでファイルサイズを調整します.

以下のコマンドは「20fpsで縦横比を保って幅240のgifに変換する」ものです.

ffmpeg -i video.mp4 -r 20 -vf scale=240:-1 my_gif.gif

各オプションの意味は以下のとおりです.

  • -r 20 : フレームレートを20fpsに
  • -vf 240:-1 : 横幅240で,縦は元の縦横比に従って自動で
  • もし横幅も指定したい場合は-vf 240:240のように指定する

これで作成したgifはこちら. f:id:shuhelohelo:20200228122602g:plain

アップロードにかかる時間はファイルサイズ次第なので,適切なものを選択する必要があります.