2020年に書くことか・・・?と思いつつ、右クリックメニューからクイックアクションで動画をアニメーションGIFできるようにしたので書いた。
ffmpegが必要なのでインストールしておくこと。
brew install ffmpeg
やったこと
- Automator でクイックアクションを自作する
- ffmpegで動画をアニメーションGIFに変換する
クイックアクションの作成
新規作成
Automatorを起動したら ⌘N
で書類を新規作成。クイックアクションを選択。
ワークフローの設定
画面上部の設定欄で、ムービーファイルを受け取るよう設定する。
イメージはただのアイコンなので適当に選ぶ。
ワークフローの組み立て
左のアクション一覧から シェルスクリプトを実行
と AppleScriptを実行
を順にドラッグしてくる。
AppleScriptは処理時間が意外に長いので追加したが、通知が必要なければ追加する必要はない。
スクリプト
シェルを /bin/bash
に変更し、入力の引き渡し方法を 引数として
に変更する。
それから シェルスクリプトを実行
にこのスクリプトを貼り付ける。
ffmpegのパスは、Homebrewでインストールした場合のパスになっているので、適宜変更すること。
split[a][b]; [a]palettegen[c]; [b][c]paletteuse
の部分は画質を良くするたために設定しているが、これを使うとサイズがかなり大きくなるので、画質が悪くてもいい|サイズが大きすぎる、場合は外したほうがいいと思う。
綺麗なGIFアニメを作る(カラーパレットを自動作成し適用) | Qiita
dir=$(dirname "$1")
cd $dir
/opt/homebrew/bin/ffmpeg -i "$1" -vf "scale=640:-1,split[a][b]; [a]palettegen[c]; [b][c]paletteuse" -r 10 "$1.gif"
AppleScriptはただの完了通知処理。
こちらも貼り付ける。
on run {input, parameters}
display notification "変換処理が完了しました" with title "アニメーションGIFに変換する"
return input
end run
名前を付けて保存
アニメーションGIFに変換する.workflow
という名前で保存する。
この名前がクイックアクションメニューに表示されるっぽい。
クイックアクションの実行
動画ファイルを右クリックし、クイックアクションを選ぶと アニメーションGIFに変換する
というメニューがあるはず。
この記事の動画とGIFのサイズはこんな感じだった。
gifsicle
あまりサイズが変わらなかったので外してしまったが gifsicle
を使うと最適化されて画質はほぼそのままで多少サイズが小さくなる。
split[a][b]; [a]palettegen[c]; [b][c]paletteuse
の部分を外して使うなら gifsicle
を使ってもいいと思う。
その場合 シェルスクリプトを実行
のスクリプトは下記のようにする。
最適化も結構時間がかかるので、最適化レベルを下げることもできる。
/opt/homebrew/bin/ffmpeg -i "$1" -vf "scale=640:-1" -r 10 - | /usr/local/bin/gifsicle --optimize=3 > "$1.gif"