2015年09月28日

Automatorを使ってみた その2

自動処理のコピーに失敗した
前回は、ローカルディスク上で編集した動画をNASにアップロードする作業を、Automatorを使って自動化する方法を紹介しました。 http://macfan0707blog.seesaa.net/article/426799284.html
自動化した処理の概要は以下の通りです。

  1. ローカルディスクに存在するハイビジョン動画をAutomatorに与えます。
  2. 「変数の値を設定」を使い、入力値(ローカルのハイビジョン動画)を変数1に保存します。
  3. ローカルのハイビジョン動画を入力として受け取り、「メディアをエンコード」を使って低画質動画にエンコードします。
  4. ローカルの低画質動画を入力として受け取り、NAS上のフォルダー1にファイルを移動します。
  5. 「変数の値を取得」を使い、変数1の値(ローカルのハイビジョン動画)を取り出します。
  6. ローカルのハイビジョン動画を入力として受け取り、NAS上のフォルダー2にコピーします。

以上の処理に、「動画をNASに保存」という名前をつけ、サービス型のAutomatorとして保存しました。

するとある時、Finderから「動画をNASに保存」を実行すると、以下のようなエラーが出てしました。

08.移動時のエラー.png

NASに移動する処理でエラーが出ているため、直ぐにMacをシャットダウンしたことが原因だなと、ピンときました。これまで何度か、Macをシャットダウンすると、ファイルサーバとのマウントが解除されると聞いたことがあるためです。 そこで、再びAutomatorを使って、今回はログイン時にNASに自動的にマウントを行う処理を作成することにしました。

Automatorを使ったマウントの自動化
ログイン時にNASにマウントする処理については、いつくかのブログで紹介されています。

http://lixblog.blog25.fc2.com/blog-entry-276.html http://www.1010uzu.com/boyaki/2014/10/nas-mount-at-login-on-mac-by-automator

私もこれらに倣ってログイン時の自動マウントの機能を作成してみました。設定内容は以下の通りです。

08.Automatorの設定.png

これをアプリケーション型のAutomatorで「ConnectNAS」保存し、ログイン時の自動起動アプリケーションに登録します。

08.ログイン時の起動.png

これでシャットダウンした後でも、ログイン時に自動的にNASへのマウントが行われ、上記の「動画をNASに保存」処理がエラーなく動くようになりました。本当にAutomatorって秀逸ですね。

タグ:NAS MacBook
posted by たんさん at 22:29| Comment(0) | TrackBack(0) | NAS | このブログの読者になる | 更新情報をチェックする

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 | このブログの読者になる | 更新情報をチェックする

2015年09月22日

動画管理のMacへの移行

NASによるビデオの管理
私はSonyのビデオカメラを使用しているため、Windowsの頃はPlayMemories Homeでビデオカメラから素材ファイルを取り込んでいました。これは、ビデオカメラを買った際に付属のソフトをインストールしてそのまま使っていたというのが実態です。しかし、敢えて理由を挙げるなら、ビデオカメラの内臓ハードディスクに保存されるファイルサイズの上限が4GBまでという制約があり、付属のソフトを使えば安心して分割されたファイルの結合ができるのではないかと考えたからです。といっても、私は長回しをしないので、それ程大きなファイルが作成されたことはありませんが。

ファイルの保存場所に関しては、NASに素材ファイルを置いてしまうと、編集の際にアプケーションの動きが悪くなりますので、一旦はローカルディスクに保存します。Windowsの頃は、私はビデオ編集ソフトとしてPower Directorを使っていました。旅行などビデオであれば、1日分を大体15分程度の長さに編集し、フルハイビジョンの動画とiPhone/iPad用に画質を落とした動画の2種類を作成しています。

NASへのデータのコピーは、一通り編集作業と、動画の書き出しが終了してから行っていました。バックアップのため、素材ファイルをNASの共有フォルダーに写真と同様に「日付+イベント名」のフォルダを作成して保存します。編集後の動画ファイルは"/homevideo"というフォルダの下に「年」ごとのフォルダを作成して保存しています。Power Directorの編集ファイルは、この「日付+イベント名」のフォルダに一緒に入れています。当然、NAS上で開いても、パスの定義が合わないので動きません。あくまでもバックアップ目的になります。

さらに、SynologyのVideo Stationと呼ばれる動画管理用ソフトで動画ライブラリとして、"/homevideo"のフォルダを指定することにより、付属のDS videoというアプリを使ってiPhone/iPadから参照できるようになります。以上を整理するといかのようになります。Macに移行後は、どのようなソフトを使うと以下の運用が楽になるかを考えることになります。

  1. 素材ファイルを「日付+イベント名」の体系でNAS上に保存する(バックアップ目的)
  2. 素材ファイルを編集してフルハイビジョンとiPhone/iPad参照用の2種類の動画を作成する
  3. 動画ファイルをNASの"/homevideo/[撮影年]"のフォルダに配置する(iPhone/iPadからの参照目的)

Macへの移行
Macを購入したらiMovieを使おうと決めてました。iMovieでは複数のライブラリを管理することができ、ライブラリの下にイベントを作成する構造になっています。私は、以下の体系でiMovieのライブラリを管理しようと考えました。

  1. NAS上に撮影年ごとにiMovieライブラリを作成する
  2. 直近年の(今なら2015年)のiMovieライブラリはローカルディスク上に作成する
  3. 撮影した動画は、iMovieのローカルライブラリに「yyyymm[イベント名]」という名前のイベントで取り込む
  4. イベントの下にプロジェクトを作成し、一通りの編集が終了したらフルハイビジョンとiPhone/iPad参照用の2種類の動画を出力する
  5. 動画ファイルをNASの"/homevideo/[撮影年]"のフォルダに配置する(iPhone/iPadからの参照目的)
  6. 編集が終わったイベントをNAS上の今年のiMovieライブラリに移動する(バックアップ目的)

こうすることで、イベント単位でNASにバックアップをとることができます。再編集する際には、NAS上のイベントをローカルのiMovieライブラリにコピーしても良いですし、NAS上で直接編集もできます。

ところが、上記を実現する上で多少苦労がありました。第一にiMovieはNASに対応していないため、ターミナルからおまじないを打ち込む必要があります。

defaults write -app iMovie allowNV -bool true

これは、ネットで調べればいくらでも出てきますので、Mac購入前から認識していました。しかし、これだけでは済みません。iMovieは特定の形式(Mac OS 拡張(ジャーナリング)形式)にフォーマットにされたディスクにしかライブラリを作成できないのです。

そこで、ディスクユーティリティを使ってNAS上に「Mac OS 拡張(ジャーナリング)形式」にフォーマットされたディスクイメージを作成してやる必要があります。

06.ディスクユーティリティ.png

作成されたディスクイメージにマウントすることにより、ようやくiMovieライブラリを保存するための場所がNAS上に出来上がります。後は、通常どおりのiMovieの操作で、NAS上にライブラリを作成することができます。NAS上に作成されたライブラリは、通常のiMovieライブラリと何ら変わりませんので、今まで(Windows時代)以上に快適な動画のバックアップ環境ができました。

このようにして、私の写真/音楽/動画の管理はようやくMacに移行されたのでした。

タグ:MacBook Synology NAS
posted by たんさん at 20:03| Comment(0) | TrackBack(0) | NAS | このブログの読者になる | 更新情報をチェックする