LoginSignup
2
2

More than 1 year has passed since last update.

[Mac]右クリックメニューから動画をアニメーションGIFに変換する

Last updated at Posted at 2020-08-13

2020年に書くことか・・・?と思いつつ、右クリックメニューからクイックアクションで動画をアニメーションGIFできるようにしたので書いた。
ffmpegが必要なのでインストールしておくこと。

brew install ffmpeg

やったこと

  • Automator でクイックアクションを自作する
  • ffmpegで動画をアニメーションGIFに変換する

test.mov.gif

クイックアクションの作成

新規作成

Automatorを起動したら ⌘N で書類を新規作成。クイックアクションを選択。

step1.png

ワークフローの設定

画面上部の設定欄で、ムービーファイルを受け取るよう設定する。
イメージはただのアイコンなので適当に選ぶ。

step2.mov.gif

ワークフローの組み立て

左のアクション一覧から シェルスクリプトを実行AppleScriptを実行 を順にドラッグしてくる。
AppleScriptは処理時間が意外に長いので追加したが、通知が必要なければ追加する必要はない。

step3.mov.gif

スクリプト

シェルを /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

step4.mov.gif

名前を付けて保存

アニメーションGIFに変換する.workflow という名前で保存する。
この名前がクイックアクションメニューに表示されるっぽい。

クイックアクションの実行

動画ファイルを右クリックし、クイックアクションを選ぶと アニメーションGIFに変換する というメニューがあるはず。

test.mov.gif

この記事の動画とGIFのサイズはこんな感じだった。

size.png

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"

gifsicle を用いた gif アニメーションの作成方法

2
2
0

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
2
2