写真・動画・音声の素材データ取り込みスクリプト
JPEGの写真だけならともかく、RAWデータや、管理のし難い動画の.mtsファイル、更にハンディレコーダーからの.WAVファイルまで、日々の素材データ管理は頭の痛いところだ。これをどのように管理するのが良いか?色々と試行錯誤をし、様々なソフトを利用したりもしたが、結局自作のスクリプトのバッチファイルを利用して、半自動化する方法に落ち着いた。
今更では有るが、知人に質問されたところでも有るので、ここにちょっとまとめてみる。
扱うデータの種類
主なファイル種類として・・・
写真 → .JPG,.RAF(s5pro s3pro),.RW2(GH2 GF3)
動画 → .MTS(GH2 GF3)
音声 → .WAV(DR-07mkII PS401RM)
これらをカードリーダーか本体直結等の際、何処にどのようにコピーするかが、課題となる。
尚、極めて特殊な、GH2のHDMIダイレクトキャプチャの.movや、s5proからケーブル接続撮影のRAW(RAF)なども有るが、これらを除外し、更に、特別な仕事や大掛かりな撮影からの素材も別扱いとする(それらはプロジェクト単位での管理が妥当なので)。
データの保存先
基本的に全てのデータは、6TBのNASにコピーしている。一応RAID5になっているが、さほど信頼性が高くはない。日常のファイルは割り切ってこれに入れるのみとなっているが、重要性が高いファイルはこれと合わせて他に、ローカルディスクなどにも保存している。
先の分類に合わせ、写真・動画・音声とそれぞれ別のディレクトリに分けて保存する事とした。これは、写真と動画のファイル構成のルールがあまりにも違い、同一場所で管理すると収集付かなくなる為だ。この写真と動画を別のルールで、同じスクリプトから同時にケア出来るのが、このスクリプトの肝だ。
ファイル種毎のルール
写真
カード内のDCIM/10*_PANA等のディレクトリ内のファイルを全て、NASのPhotoというディレクトリ下に自動生成した年月日_時分のディレクトリにコピーしている。
動画
カード内のPRIVATEディレクトリ内のファイルを全て、NASのMovというディレクトリ下に自動生成した年月日_時分のディレクトリにコピーしている。
これは、FCPXなどのMac系のソフトがPRIVATE以下のディレクトリ構造を保持しておかないと認識出来なくなる問題を回避する為だ(実はこれが一番面倒なところ)。
音声
NAS内に設けた機種ごとのディレクトリ(DR07mkII)等に、rsyncというコマンドで差分コピーを行っている。ハンディレコーダーはファイル名を 年月日_連番.WAV としてくれるのでディレクトリをいちいち生成しなくても問題なく管理出来るためだ。
環境
これも一つの特殊事情では有るが、マシン環境としてMac Winが見事に混在している。作業比率としてはMac7:Win3程度で、基本的に同じ結果を出せるスクリプトをMac用にシェルスクリプト、Win用にコマンドバッチと用意している。これにより、どのマシンでカードなどをマウントしても、そこからいつものルールでデータの転送が完了出来る(サウンドファイルのみWinからを対象外とした)。
スクリプト
色々なHPを参考に素人が適当に作ったものなので、あまり賢くない処理も有るし、トラブルが発生しないとも限らない。あくまでもこういう方法も有るのだとの参考にとどめて欲しいが、一応その内容を紹介する。
#環境の違いによる、改変すべき点を細かくは記載していないので、内容が把握出来ない場合は、使用してはならない。
--------------Mac版シェルスクリプト(抜粋)---------------------
#!/bin/sh
echo "CamDiskCopy"
#####サーバディスク探索
i=NO
if [ -d /Volumes/NASdisk/Mov ]; then
i=NASdisk
fi
if [ -d /Volumes/NASdisk-1/Mov ]; then
i=NASdisk-1
fi
###↑NASの仕様かOSXの仕様か時にNASのドライブ名に-1が勝手に付いてしまう為
###NASdiskは、環境に合わせ変更
if [ $i = "NO" ]; then
echo "No NASdisk !!!!"
exit
fi
echo "Output= $i"
#####日時取得
DA=`date '+%Y%m%d'`
TM=`date '+_%H%M'`
echo "$DA$TM"
######読み込みディスク検証・書き込み
num=0
fnum=0
###GH2orGF3
##MovieFilleCopy
if [ -d /Volumes/NO\ NAME/PRIVATE ]; then
num=`ls /Volumes/NO\ NAME/PRIVATE/AVCHD/BDMV/STREAM| wc -w`
fi
if [ $num -gt 0 ]; then
MD=/Volumes/$i/Mov/$DA$TM
mkdir $MD
echo "GH2orGF3 MOV Filles Copy"
cp -r -v /Volumes/NO\ NAME/PRIVATE/ $MD
echo "$MD"
num=0
fi
##PhotoFilleCopy
#fnumsearch
if [ -d /Volumes/NO\ NAME/DCIM/100_PANA ]; then
fnum=100
num=`ls /Volumes/NO\ NAME/DCIM/100_PANA| wc -w`
fi
if [ -d /Volumes/NO\ NAME/DCIM/101_PANA ]; then
fnum=101
num=`ls /Volumes/NO\ NAME/DCIM/101_PANA| wc -w`
fi
if [ $num -gt 0 ]; then
PD=/Volumes/$i/Photo/$DA$TM
mkdir $PD
echo "GH2orGF3 PHOTO Filles Copy"
cp -r -v /Volumes/NO\ NAME/DCIM/$fnum\_PANA/ $PD
fnum=`expr $fnum + 1`
num=0
fi
if [ -d /Volumes/NO\ NAME/DCIM/$fnum\_PANA ]; then
num=`ls /Volumes/NO\ NAME/DCIM/$fnum\_PANA| wc -w`
fi
if [ $num -gt 0 ]; then
PD=/Volumes/$i/Photo/$DA$TM
echo "GH2 PHOTO Filles Copy2"
cp -r -v /Volumes/NO\ NAME/DCIM/$fnum\_PANA/ $PD
num=0
fi
##DR07mkII_Copy
if [ -d /Volumes/DR-07MK2/MUSIC ]; then
RD=/Volumes/$i/DR07mkII
echo "$RD"
echo "DR07mk2 media Copy"
rsync -r -v -u /Volumes/DR-07MK2/MUSIC/ $RD
fi
----------------------------------------
※/Volumes/NASdisk/Mov 等の部分は環境に合わせる
※102_PANA等ディレクトリ名の更新に合わせ#fnumsearchの処理を増やして行く
※s3Pro s5proは##PhotoFilleCopyの処理を改変して追加
※PS401RM用もDR07mkII_Copy同様に追加する
※上記を.commandの拡張子で保存し、ターミナルでchmodコマンドでパーミッションを0766に変更する
----------Win版コマンド バッチファイル(抜粋)---------------------
REM GetTime
set yyyy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
set tt=%time:~0,2%
set ff=%time:~3,2%
set ymdt=%yyyy%%mm%%dd%_%tt%%ff%
REM DiskSearch
set idir=A
if exist "F:\DCIM" set idir=F
if exist "G:\DCIM" set idir=G
if exist "H:\DCIM" set idir=H
if exist "I:\DCIM" set idir=I
if %idir% equ A goto STEP3
REM GH2orGF3photoCopy
if exist "%idir%:\DCIM\100_PANA\*.JPG" (
set fnum=100
goto PROCESS1
)
if exist "%idir%:\DCIM\100_PANA\*.RW2" (
set fnum=100
goto PROCESS1
)
if exist "%idir%:\DCIM\101_PANA\*.JPG" (
set fnum=101
goto PROCESS1
)
if exist "%idir%:\DCIM\101_PANA\*.RW2" (
set fnum=101
goto PROCESS1
)
goto STEP2
:PROCESS1
xcopy /e /i %idir%:\DCIM\%fnum%_PANA S:\Photo\%ymdt%
goto STEP2
REM 動画ファイルコピー
:STEP2
if exist "%idir%:\PRIVATE\AVCHD\BDMV\STREAM\*.MTS " goto PROCESS2
goto STEP3
:PROCESS2
mkdir E:\test\mov\%ymdt%
xcopy /e /i %idir%:\PRIVATE S:\Mov\%ymdt%
goto STEP3
:STEP3
pause
----------------------------------------------------------
※DiskSearchの部分にカードリーダーによってマウントが予想されるドライブレターの分追加する
※s5proはGH2orGF3photoCopyの部分を改変して追加する
※S:\Photo S:\Movの部分は環境に合わせる
※WIN版はrsyncがインストールしないと使えないので音声系は省略した
※カメラがフォルダー番号を更新し、二つの番号のフォルダーが存在する時に正しく動作しない
※xcopy /e /i %idir%:\DCIM\%fnum%_PANA S:\Photo\JPEG\%ymdt% /EXCLUDE:E:\test\rawList.txt と変更しrawList.txtに.RW2と記載するとJPEGだけがコピーされる。
上記スクリプトをバッチファイルとしてデスクトップなどに配置しておき、SDカードをマウントした際にダブルクリックで実行する。
カード内のファイルを削除したり、前と同じ画像をコピーしないようにする等の処理は加えていないが、逆の事故を減らす為に敢えてそのままにしている。
閲覧
写真 Photo以下のディレクトリをAdobeBridgeで閲覧すれば、必要な画像は容易に見つけられる。動画
カメラから出力されるAVCHDの.MTSのファイルブラウジングは非常に頭の痛い問題で、Macでは絶望的となる。Winでは以前はSonyのHandyCamに付属したPictureMotionBrowtherが大変重宝していたが、最近の更新で使用不能となり、現在はGoogle提供のPicasaに.mtsを見れるプラグインをインストールして利用している。Movディレクトリ以下を時系列で並べてくれるので非常に便利だ。
※Mac版のPicasaでは.MTSは表示出来ない。MacではFCPXで、.movに変換したファイルをベースに管理するより無いが、この辺りのところはまた次の機会に(8.28追記)
音声
ファイルの扱いは簡単だが、後で探すのにもっとも苦労するのが音声ファイルだ。何しろサムネールというものが存在しない。こればっかりは、自力で必要なものを名前を付けて別に整理するより無い。