LoginSignup
55
43

More than 3 years have passed since last update.

Macのデスクトップに動画ファイルが追加されたら、自動的にGifを生成してみる

Last updated at Posted at 2021-02-25

はじめに

普段アプリ開発をしているときに動作確認した結果をGifでPRに載せたりするのですが、
.mov.MP4の動画ファイルからFFmpegでGifを生成するのを自動化できないかなーと思い、やってみました!

準備

動画ファイルからGifを生成するのにFFmpegを使用するので、ダウンロードしておきます。

Homebrewからでもインストールできます。

$ brew install ffmpeg

AutomatorでWorkflowを作成する

Macの作業を自動化するということで、今回は標準で用意されているAutomatorを使用します!

まずは、Automatorを起動して、フォルダアクションを新規作成します。
1.png

フォルダはDesktopを指定します。
2.png

左上の検索欄に「シェルスクリプト」と入力してアクションを検索をして、「シェルスクリプトを実行」のアクションを右側にドラッグします。
3.png

「入力の引き渡し方法」を「引数として」に変更して、以下のスクリプトを書きます。
fpsやscaleなど、ffmpegの設定値の部分は、お好みで調整してください(*・ω・*)

# 1
originalFilePath=$1

# 2
if [[ $originalFilePath == **".mov" ]] || [[ $originalFilePath == **".MP4" ]] || [[ $originalFilePath == **".mp4" ]]; then
  uuid=$(uuidgen)
  uuidFilePath=$originalFilePath-$uuid

  # 3
  /usr/local/Cellar/ffmpeg/4.3.1_9/bin/ffmpeg -i $originalFilePath -filter_complex "[0:v] fps=20,scale=320:-1,split [a][b];[a] palettegen [p];[b][p] paletteuse" $uuidFilePath.gif
fi

# 1の行で、引数で受け取った動画ファイルのPATHを変数に格納しています。

# 2のif文で、動画ファイルの拡張子を.mov .MP4 .mp4 の3つに限定しています。
Gifファイルがデスクトップに追加された場合もWorkflowが動くので、条件を指定しないと、自動生成されたGifファイルから新しいGifファイルを作り出そうとして、無限にGifを作り続けてしまいます(´;ω;`)

# 3でffmpegを実行していますが、/usr/local/Cellar/ffmpeg/4.3.1_9/bin/ffmpeg の部分は、ffmpegが格納されているPATHを指定する必要があるので、適宜変更してください。
/Applications/ffmpeg とかの場合もあるかもしれません。

4.png

「command + S」で、適当な名前を付けて保存します。

5.png

これで、保存して終了です!
デスクトップに.mov.MP4またはmp4 のファイルが追加されると、gifを生成してくれるようになります。

さいごに

デスクトップに動画を追加したら、Gifを作ってくれるようになりました:clap:
result.gif

↑のGifでは別のディレクトリからドラッグしてデスクトップに動画を追加していますが、
QuickTime Playerとかで画面収録をしたら、Desktopに動画保存されるので
そこから勝手にGif作ってくれるといった感じです\(。・o・。)/

ちなみに、iOSのアプリ開発であれば、
以下のようなxcrunコマンドでiPhone Simulatorの動画を撮ることもできるので、
その時にもデスクトップに動画ファイルを保存すれば勝手にGif作ってくれます!
xcrun simctl io booted recordVideo output.mov

55
43
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
55
43