10/07/31 04:26:44 FC7MJpVz
一応、他の方の参考になれば・・・。epgrecのdo-record.shについて、ブログ等からの情報で試行錯誤した結果です。
おかしなところが多々ありますがすみません。参考程度に。
(前略)
#録画モードが1の場合にmp4形式で保存する部分、開始。
elif [ ${MODE} = 1 ]; then {
if[ ${CHANNEL} = 24 ]; then
$RECORDER $CHANNEL $DURATION ${OUTPUT}.tmp.ts --b25 --strip
else
$RECORDER $CHANNEL $DURATION ${OUTPUT}.tmp.ts --b25 --strip --sid hd
fi
}
#ここまででTV朝日での問題が起きるらしいので対応。物理チャンネルが24だったらフルTS、それ以外ならHDだけ切り取り保存。
#以下、他にffmpegのプロセスが動いていたらffmpegを実行しないで待つ。10秒ごとにチェック。
#4番組同時に録画した後、ffmpegが多重実行されて録画サーバがいっぱいいっぱいだったので。
cmd=`ps -A | grep ffmpeg`
while [ "$cmd" != "" ]; do
sleep 10;
# echo "waiting..."
cmd=`ps -A | grep ffmpeg`
done
#録画したファイルをffmpegでエンコード開始(以下、音ズレ、音無しなどの問題で試行錯誤中、問題多し)
ffmpeg -i ${OUTPUT}.tmp.ts -acodec libfaac -ab 128k -ac 2 -async 1000 -vcodec libx264 -vpre hq -r 30000/1001 -s 720x480 -aspect 16:9 -b 1400k -maxrate 3000k -threads 0 ${OUTPUT}.mp4
#エンコードが終わったtsファイルを削除
rm -f ${OUTPUT}.tmp.ts
#エンコードが終わったファイルをアーカイブディレクトリに移動。
mv ${OUTPUT}.mp4 /var/www/epgrec/video/archive
(後略)