ffmpegとAutomatorで、動画変換作業を効率化
Table of Contents
今回はffmpegとAutomatorを使用して、動画の変換作業を効率化する方法を紹介します。
動画の変換は面倒な手間が多いです。例えば、変換用のソフトウェアを起動したり、変換用のWebサイトを検索して探したりする必要があります。こういう手間は、スクリプトで自動化しましょう。これで、GitHubにAnimation GIFを載せたり、Slackにmp4を載せたりする作業が、爆速になります!
完成形 #
対象のファイルを右クリックしてコンテキストメニューを表示、ショートカットから選択するだけで、変換が完了です。
環境の前提と手順 #
Macの環境を前提としています。
- Homebrewで、ffmpegをインストール
- Automatorで変換スクリプトを作成
ffmpegのインストール #
まずはじめに、Homebrewを使用して、ffmpegをインストールします。
もちろんインストール済みの方は、スキップしてください( brew outdated
で、更新を確認しておくのもあり)。
$ brew install ffmpeg
これで、ffmpegはインストールOK!
Automatorで変換スクリプトを作成 #
次に。変換スクリプトをAutomatorで作成します。作業は、以下のとおりです。
- Automatorを起動、新規作成を選択
- 書類の種類は「クイックアクション」を選択します
- 以下のように入力を設定します
ワークフローが受け取る現在の項目: ムービー
検索対象: Finder - 「シェルスクリプトを実行」のアクションをワークフローに追加
- 以下のようにアクションを設定します
入力の引き渡し方法: 引数として
コマンド: (以下に記載) - 名前を付けて保存します(コンテキストメニューの表示名になります)
詳しくは、以下で解説します。
Automator書類を新規作成 #
Automatorで新規の書類を作成するときは、書類の種類を選択します。今回は、クイックアクションを選択します。
ワークフローを作成 #
それでは、ワークフローを作成していきます。詳細は画像を見るとわかりやすいですが、改めてまとめておきます。
書類の設定
項目 | 設定 |
---|---|
ワークフローが受け取る現在の項目 | ムービー |
検索対象 | Finder |
イメージ | お好みで画像を設定してください(メニューのアイコンになります) |
「シェルスクリプトを実行」のワークフロー
項目 | 設定 |
---|---|
入力の引き渡し方法 | 引数として |
スクリプト | (以下に記載) |
GIFアニメーションへ変換するスクリプト
DIRNAME=`dirname $@`
BASENAME=`basename $@`
/usr/local/bin/ffmpeg -i $@ -r 10 ${DIRNAME}/${BASENAME}.gif
MP4へ変換する場合は、スクリプトの最後の拡張子をmp4
にします。
最後に、名前を付けて保存します。この名前が、そのままクイックアクションのメニューに表示されます。
以上で完成です!
ffmpegのスクリプトを解説 #
今回は以下のスクリプトを使いました。
$ ffmpeg -i [input_file] -r [frame_rate] [output_file]
-i
: 変換するファイルを指定
-r
: フレームレートを指定
オプションで、ビデオフィルタを使用すると、リサイズもできるようになります。
$ ffmpeg -i [input_file] -r [frame_rate] -vf scale=640:-1 [output_file]
-vf
: ビデオフィルタの指定。上ではscale=640:-1
を指定している。横幅を640にし、縦のサイズはアスペクト比を維持して自動で指定。ちなみに、setpts=PTS/2.0
を指定すると、再生速度が2倍になる。複数のビデオフィルタを使用する場合は、カンマを使ったり、ダブルクオートで全体を囲ったりする(一つの引数として入力できるように工夫する必要があるようだ)。
まとめ #
ffmpegとAutomatorを使用して、動画ファイルを変換する作業を効率化する方法を紹介しました。このクイックアクションを用意しておけば、動画ファイルを共有するときに、さくっと変換できるので便利です。