以下のようなスクリプトを作成し、cronで一時間毎に起動するように設定。空行だけのコメントはtdiaryの制限から付けているもの。
#! /bin/sh
#
cd /usr/local/share/RDService
#
# lock処理
if [ -e lock ] ; then
        exit
else
        touch lock
fi
#
for i in *.mpg
do
        # 現在ダウンロード中のファイルの場合、処理対象外
        mid_flow=$(lsof "$i")
        if [ ${#mid_flow} != "0" ] ; then
                continue
        fi
        #
        name=${i%%.mpg}
        dst_file="$name".mp4
        /usr/local/bin/ffmpeg -y -i "$i" -title "$name" -bitexact -vcodec xvid \
        -coder 1 -g 240 -s 320x240 -r 29.97 -b 768 -acodec aac \
        -ac 2 -ar 44100 -ab 48 -f psp "$dst_file"
        #
        chown user:group "$dst_file"
        mv "$dst_file" /home/target_dir
        rm "$i"
done
#
# lock解除
rm lock
途中、cronで/usr/local/binにPATHが通ってなくて、動いたように見えなくて焦った。
あと、クライアントの都合で日本語をEUC-JPに統一するために、RDServiceのシェルスクリプトで文字コード設定。そして、デーモン起動するようにさせて終わり。
#! /bin/sh export LANG=ja_JP.eucJP export LC_ALL=ja_JP.eucJP java -jar /usr/local/share/RDService/RDService.jar -s -p 5500:5509 \ -d /usr/local/share/RDService
SuSEだと、startproc関数を使ってデーモンとして起動させるのね。
自分用のスクリプトなので同時実行性やパーミッションその他諸々はあんま考慮してない。あとは、タイトルによってffmpegに渡すオプションを変化させられるようにしたいのぅ。
(追記):間違ってるところがあったので修正