2015年09月27日

Automatorを使ってみた

動画管理の自動化にチャレンジ
前回、動画管理の説明のところで書きましたが、私は動画を2種類の形式で保存しています。1つは、Blu-rayやDVDに焼くためにフルハイビジョン形式で、もう1つはiPhone/iPadから参照するためにより低画質の動画形式で保存しています。また、作成した2種類の動画をバックアップの目的と、iPhone/iPadでストリーミング再生する目的のためにSynologyのNASにコピーしています。

しかし、動画の編集が完了しファイルに出力した後で、「やっぱりこのシーンにはキャプションがあった方がいいな」とか、「このシーンは長いのでもう少し短くしよう」などと思うことはよくあると思います。そんな時は、もう一度下記の3つの作業を行うことになります。個々の作業にはそれなりの時間がかかるため、これが意外に面倒なのです。

  • ハイビジョン画質の動画を作成する
  • iPhone/iPad用の低画質の動画を作成する
  • 上記2つのファイルをNASにコピーする

そこで、以上の作業をAutomatorで自動化して、一度実行すれば後は放置できるようにならないか考えてみました。

Automatorを使って行うこと
上記の作業を実施する上で、編集後にハイビジョン画質の動画を作成するところまでは、一連の流れでできますので、その後の2つのステップをAutomatorで実現することにします。つまり、やりたいことは以下のタスクになります。

  • 対象となるハイビジョン画質の動画を選択する
  • 選択されたハイビジョン画質の動画をiPhone/iPad用の低画質動画に変換する
  • ハイビジョン画質の動画と、低画質動画をそれぞれNAS上の所定のフォルダーにコピーする

Automatorでワークフローを作成する場合のポイント
Automatorでワークフローを作成する場合、あるアクションは、前のアクションから入力をもらい、後ろのアクションに出力を渡す、という制約を理解する必要があります。例えば、私の実施したいアクションの要素を列挙すると以下のようになります。

  1. 処理対処となるハイビジョン画質の動画を入力として与える
  2. ハイビジョン画質の動画を低画質動画に変換する
  3. 低画質動画をNAS上のフォルダー1に移動する
  4. ハイビジョン画質の動画をNAS上のフォルダー2にコピーする

3.で移動、4.でコピーとしたのは、ローカルディスクにはハイビジョン画質の動画のみを残したいと考えたためです。

上記の1.から4.についてAutomatorで該当する機能を探すと、以下のようになります。

  1. 「アプリケーション型」のAutomatorならアプリケーションにドロップされたファイルを入力として受け取ることができます。「サービス型」ならFinderで選択中のファイルなどを入力として受け取ることができます。今回のケースでは、ハイビジョン動画を入力として与えることになります。
  2. 「メディアをエンコード」を使います。入力はエンコード前のファイル、出力はエンコード後のファイルです。今回のケースでは、ハイビジョン動画を入力し、低画質動画が出力されることになります。
  3. 「Finder項目を移動」を使います。入力は移動対象ファイル、出力は移動後のファイルです。今回のケースでは、ローカルディスクにある低画質動画を入力として、NAS(フォルダー1)に移動後の低画質ファイルが出力されます。
  4. 「Finder項目をコピー」を使います。入力はコピー対象ファイル、出力はコピー後のファイルです。今回のケースでは、ローカルディスクに存在するハイビジョン動画を入力として、NAS(フォルダー2)にコピー後のハイビジョン動画が出力されます。

上記の処理を上から順に流した場合に、入出力の整合性が取れるかどうかを確認する点が、Automator作成の最大のポイントだと思います。上から順に入出力を確認していくと、1.から3.までは入出力の関係が一致していますが、3.の出力(NASに移動後の低画質ファイル)に対して、4.で期待している入力(ローカルディスクに存在するハイビジョン動画)が合わないことが分かります。

私が行ったAutomatorの設定
ここで、解決方法は2つあります。1つ目は処理の順序を変えて、4.を1.の直後に持ってきます。すると、以下のようになります。

  1. 入力としてローカルディスクに存在するハイビジョン動画を与えます。
  2. ローカルのハイビジョン動画を入力として受け取り、NAS上にコピー後(「Finder項目をコピー」)、NAS上のハイビジョン動画を出力します。
  3. NAS上(フォルダー2)のハイビジョン動画を入力として受け取り、低画質動画にエンコード後(「メディアをエンコード」)、同じ場所(NASのフォルダー2)にある低画質動画を出力します。
  4. NAS上(フォルダー2)の低画質動画を入力として受け取り、NAS上のフォルダー1に移動後(「Finder項目を移動」)、フォルダー1に移動された低画質動画を出力します。

以上より、この順序であれば、入出力の整合性が取れることが分かります。

しかし、この順序で処理を行うと、ハイビジョン動画から低画質動画へのエンコードをNAS上で行うことになります。こうした処理はなるべくローカルで行い、NASへはコピー(または移動)を行うだけにしたいと考えました。

そこで、変数に入力値を格納して後で取り出す、という技を使います。具体的には、以下の手順となります。

  1. 入力としてローカルディスクに存在するハイビジョン動画を与えます。
  2. Automatorのアクションとして「変数の値を設定」を使い、入力値(ローカルのハイビジョン動画)を変数1に保存します。入力値はそのまま次のアクションへ出力されます。
  3. ローカルのハイビジョン動画を入力として受け取り、低画質動画にエンコード後(「メディアをエンコード」)、同じローカル上の低画質動画を出力します。
  4. ローカルの低画質動画を入力として受け取り、NAS上のフォルダー1に移動後(「Finder項目を移動」)、NAS上のフォルダー1にある低画質動画を出力します。
  5. Automatorのアクションとして「変数の値を取得」を使い、変数1の値を取り出します。入力は無意味なので受け取りません。変数1の値(ローカルのハイビジョン動画)が出力になります。
  6. ローカルのハイビジョン動画を入力として受け取り、NAS上のフォルダー2にコピー後(「Finder項目をコピー」)、NAS上のフォルダー2にあるハイビジョン動画を出力します。

以上の手順でアクションを並べれば、期待通りに作業を実行することができます。Automatorの設定は以下のようになります。

07.Automator.png

今回は「サービス型」のAutomatorを「動画をNASに保存」という名前で作成しました。動画ファイルを選択したのちに、Finderのメニューで「Finder→サービス→動画をNASに保存」と辿れば実行できます。Automatorすごく便利です。

ラベル:Synology MacBook
posted by たんさん at 14:10| Comment(0) | TrackBack(0) | Mac | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック