新型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 件のコメント:
コメントを投稿