Buys & Memo

買ったものとか、メモ書き

携帯動画変換君のVer0.23 のリリースについて

2005-01-19 00:03:25 | Weblog
WindowsでPSPの動画を変換している人にとっては必須に近いソフトがバージョンアップされた(ご苦労様です)。今の所OSX + altshiivaを使っているので、変換君は使ったこと無いんだがVersionUp履歴を見ていると

自動操作したいという需要があるようなので、3GP_Converter.exeにコマンドライン 引数としてファイル名を指定することでファイルリストに追加できるようにしました。 言い方を変えると、アプリケーションアイコンやショートカットへのドラッグ& ドロップでファイルの追加が可能です。 フォルダ監視系のソフトウェアと組み合わせると自動処理も可能かと思います


の記述があった。これは良い!!予約録画の出力フォルダを監視しておいて、録画終了後にPSP用に再エンコとか出来たらかなり幸せな感じだ。と思ってフォルダ監視ソフトを探したんだが、いまいち良いのが見つからない。

よしタスクスケジューラー使えば多分楽だし作って見よう。カタカタカタ。うーんWSHでやろうかと思ったけど、vbsでもjsでもファイルリストの差分検出の実装がめんどいなぁ、んならシェルスクリプトとcrontabのセットにしてしまえ(基本Unixな人なので・・・orz)。cygwin入れればwindowsでも使えるし、macでも使えるし便利じゃないか。

、、、と言うわけで作って見ました。cygwin入れてないんでテストしてないです(爆
まぁしごく原始的な方法しか使ってないし、変数ちゃんとすればなんとなく動くんでないかなぁ。パフォーマンスもあんまり考えてません。ファイルの書き込み終了チェックに指定時間後のファイルサイズの増加を使うってのは、反則くさい気もするし、、、(fuserとか普通使うのかもしれんが、cygwinに実装されてるか調べんのメンドクサカッタ)まぁ変なところあったら適当に直してください。(ていうか誰か使うのか?w

以下ソース

 
#!/bin/bash 
# 前回実行時から追加されたファイルを見つけ出し、そのファイルに対して処理を実行 
# crontabに登録すればディレクトリ監視プログラムになる 

WILDCARD="*.avi"                # 新規追加時処理対象ファイルワイルドカード 
WATCH_PATH=~/work               # 監視ディレクトリ 
COMMAND_LINE=~/bin/a.out        # 実行コマンド 
FILELST=~/.flist                # 現ファイルリスト保存ファイル名 
TMPPATH=/tmp                    # 一時ファイル保存ディレクトリ 
WAITSEC=30                      # ファイル書き込み終了チェック間隔(秒) 

        # 新ファイルリストの作成 
ls -1 $WATCH_PATH/$WILDCARD > $TMPPATH/newlst.$$ 

        # 追加されたファイルのリストを作成する 
if [ -r $FILELST ] 
then 
        diff $TMPPATH/newlst.$$ $FILELST |  ¥
                grep ¥< | awk '{print $2}' > $TMPPATH/addlst.$$ 
else 
        cp $TMPPATH/newlst.$$ $TMPPATH/addlst.$$ 
fi 

        # 現ファイルリスト更新 
mv $TMPPATH/newlst.$$ $FILELST 

        # 追加されたファイル毎の処理 
ADDLST=`cat $TMPPATH/addlst.$$` 
rm -f $TMPPATH/addlst.$$ 
for FILE in $ADDLST 
do 
        echo $FILE Added. Now checking for write end. 

                # ファイルサイズを比較することによって更新終了をチェックする 
        CURSIZE=-1 
        SIZE=0 
        until [ $CURSIZE -eq $SIZE ] 
        do 
                CURSIZE=$SIZE 
                sleep $WAITSEC 
                SIZE=`ls -l $FILE | awk '{print $5}'` 
        done 

                # Fileの更新が終了したらコマンドを実行する 
        echo Execute ¥"$COMMAND_LINE $FILE¥" 
        $COMMAND_LINE $FILE 
done 



最新の画像もっと見る