2010年2月19日金曜日

D510MOで録画サーバ(epgrecのdo-record.shを編集する)

新型AtomのD510を使ってPT2の録画サーバを作ったときのメモ その6

録画が終わった後に自動でtssplitter_liteで分離するように epgrec の do-record.sh を修正する。

基本は日経Linux 2010年2月号の図8のスクリプトを参考にした。

ただ ubuntu と fedora ではシェルが違うのか if の条件の論理演算子のところでエラーとなった。
ubuntu のシェルの bash では 数値の比較は -eq 、文字列の比較は = となっている。

自分の環境の do-record.sh
----------------------------------------------------------------------
#!/bin/sh
echo "CHANNEL : $CHANNEL"
echo "DURATION: $DURATION"
echo "OUTPUT  : $OUTPUT"
echo "TUNER : $TUNER"
echo "TYPE : $TYPE"
echo "MODE : $MODE"

RECORDER=/usr/local/bin/recpt1
B25=/usr/local/bin/b25_bcas
SPLIT=/usr/local/bin/tssplitter_lite

OUTTMP=${OUTPUT}.tmp.ts

if [ ${MODE} -eq 0 ]; then
$RECORDER --b25 --strip $CHANNEL $DURATION ${OUTPUT} >/dev/null
elif [ ${MODE} -eq 1 ]; then
$RECORDER --b25 --strip $CHANNEL $DURATION ${OUTTMP} >/dev/null
if [ ${TYPE} = "BS" ]; then
$SPLIT ${OUTTMP} ${OUTPUT} ${CHANNEL}
elif [ ${TYPE} = "GR" ]; then
if [ ${CHANNEL} = "20" ]; then
#NHK総合・水戸
$SPLIT ${OUTTMP} ${OUTPUT} 26624
elif [ ${CHANNEL} = "13" ]; then
#NHK教育・東京
$SPLIT ${OUTTMP} ${OUTPUT} 1032
elif [ ${CHANNEL} = "14" ]; then
#日本テレビ
$SPLIT ${OUTTMP} ${OUTPUT} 1040
elif [ ${CHANNEL} = "15" ]; then
#TBS
$SPLIT ${OUTTMP} ${OUTPUT} 1048
elif [ ${CHANNEL} = "17" ]; then
#テレビ朝日
$SPLIT ${OUTTMP} ${OUTPUT} 1064
elif [ ${CHANNEL} = "18" ]; then
#テレビ東京
$SPLIT ${OUTTMP} ${OUTPUT} 1072
elif [ ${CHANNEL} = "19" ]; then
#フジテレビ
$SPLIT ${OUTTMP} ${OUTPUT} 1056
fi
fi
#中間ファイル削除
rm ${OUTTMP}
fi
----------------------------------------------------------------------
それぞれのチャンネルのプログラムIDは全チャンネルを録画し、ffmpeg -i で調べておく。

録画予約のときに指定できるようにconfig.phpを編集

----------------------------------------------------------------------
$RECORD_MODE = array(
        // ※ 0は必須で、変更不可です。
        0 => array(
                'name' => 'Full TS',    // モードの表示名
                'suffix' => '.ts',      // ファイル名のサフィックス
        ),

        1 => array(
                'name' => 'Partial TS',
                'suffix' => '_tss.ts',
        ),

----------------------------------------------------------------------

というように変更。

これで手動予約のとき、予約カスタマイズで録画モードに Partial TS を選べるようになり、分離したデータのみが保存される。

0 件のコメント: