ubuntu10.04LTSで録画サーバ構築 「do-record.sh設定編」

前回に引き続き、今度はdo-record.shの設定ですが、
我が家は神奈川県なのでテレビ朝日とテレビ東京のHD分割に難点があり
うまくrecpt1だけでは分割ができないようです。
そこでテレ朝、テレ東以外は、recpt1でHD画質だけ抜き取り
テレ朝、テレ東はTSsplitterで分割する処理にしてみました。
1ファイルのスクリプトでもよいのですが
テストの都合上、do-record.shで処理をして、テレ朝、テレ東の場合だけ
split.shというスクリプトにジャンプするようにしています。
現時点での仕様は次の通り
do-record.sh
-------------------------------------------------------------------------
#!/bin/sh
echo “CHANNEL : $CHANNEL”
echo “DURATION: $DURATION”
echo “OUTPUT : $OUTPUT”
echo “TUNER : $TUNER”
echo “TYPE : $TYPE”
echo “MODE : $MODE”
echo “SID : $SID”
#echo “ST : $ST”
#echo “ET : $ET”
RECORDER=/usr/local/bin/recpt1
SPLITTER=/usr/local/bin/TsSplitter.exe
TMPPATH=/var/www/html/epgrec/video/tmp
DATE=`date +%Y%m%d%H%M`
# fail safe
case $CHANNEL in
101|102|191|192|193)
if [ $SID = ‘hd’ ]; then
SID=$CHANNEL
fi ;;
esac
if [ -z $SID ]; then
SID=’hd’
fi
if [ ${MODE} = 0 ]; then
# MODE=0では必ず無加工のTSを吐き出すこと
$RECORDER --b25 --strip $CHANNEL $DURATION ${OUTPUT} >/dev/null
elif [ ${MODE} = 1 ]; then
if [ ${CHANNEL} = “24” ] || [ ${CHANNEL} = “23” ]; then
$RECORDER --b25 --strip $CHANNEL $DURATION ${TMPPATH}/GR${CHANNEL}_${DATE}_${DATE}_tss.ts >/dev/null
  bash split.sh
else
$RECORDER --b25 --strip --sid $SID $CHANNEL $DURATION ${OUTPUT} >/dev/null
fi
fi
----------------------------------------------------------------------------------
split.sh
----------------------------------------------------------------------------------
#!/bin/sh
RECORDER=/usr/local/bin/recpt1
SPLITTER=/usr/local/bin/TsSplitter.exe
PATH=/home/public/sdb/1temp/tmp
OUTPUT=/home/public/sdb/1temp
MV=/bin/mv
RM=/bin/rm
if [ -e ${PATH}/GR23_*_*_tss.ts ] || [ -e ${PATH}GR24_*_*_tss.ts ] ; then
${wine} $SPLITTER -SD -1SEG -WAIT2.5 ${PATH}/GR23_*_*_tss.ts >/dev/null
${wine} $SPLITTER -SD -1SEG -WAIT2.5 ${PATH}/GR24_*_*_tss.ts >/dev/null
fi
if [ -s ${PATH}/GR23_*_*_tss_HD.ts ] || [ -s ${PATH}GR24_*_*_tss_HD.ts ] ; then
$MV ${PATH}/GR23_*_*_tss_HD.ts ${OUTPUT} ##>/dev/null
$MV ${PATH}/GR24_*_*_tss_HD.ts ${OUTPUT} ##>/dev/null
$RM -f ${PATH}/GR23_*_*_tss.ts
$RM -f ${PATH}/GR24_*_*_tss.ts
else
$MV ${PATH}/GR23_*_*_tss.ts ${OUTPUT} ##>/dev/null
$MV ${PATH}/GR24_*_*_tss.ts ${OUTPUT} ##>/dev/null
fi
----------------------------------------------------------------------------------

ubuntu10.04LTSで録画サーバ構築 「epgrecインストール編」

epgrecインストール
1.epgdumpr2のインストール
cd /usr/local/src/
wget ‘http://www.mda.or.jp/epgrec/index.php?plugin=attach&refer=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E5%89%8D%E3%81%AE%E6%BA%96%E5%82%99&openfile=epgdumpr2.tar.gz’ -O epgdumpr2.tar.gz
tar xvzf .tar.gz
cd epgdumpr2/
make
#sudo cp epgdump /usr/local/bin
------------------------------------------
2.確認
atのインストール
$ sudo apt-get -y install at [Enter]
3./etc/at.denyの設定
epgrecはWebサーバーのユーザーアカウント(Ubuntuはwww-data)
でatコマンドを実行しますが、セキュリティ上の配慮からatの使用禁止ユーザーリスト
/etc/at.denyに、Webサーバーのアカウントが設定されている場合があるので解除します。
/etc/at.denyを開き、www-dataのWebサーバーのアカウント
が含まれていないか調べ、含まれていたら、その行を必ず削除します。
4./etc/passwdの確認
一部のディストリビューションでは、セキュリティ上の配慮からWebサーバーのアカウント
にnologin(ログイン不可)が設定されているのでこれも解除しますが
すでにwww-dataで設定済みでした。
5.epgrecのインストール
他のサイトを参考にして・・・・
cd /usr/local/src/後に
epgrec-20100322版を導入しましたが、うまく動きませんでした。
getepgでphpエラーが出てしまって”構文エラー”とのことなので
修正できません。
epgrecの最新版epgrec20111001版をダウンロード&インストールしたらうまく動きました。
6.設定編
1)データベース(MySQL)の設定
流れはデータベース管理用のユーザ作成、データベース作成、番組表の設定
端末から
mysql -u root -p
パスワードを求められるのでソフトウェアインストール時に設定したパスワードを入力
データベース作成
  epgrec というデータベース作成
mysql> CREATE DATABASE epgrec;
Query OK, 1 row affected (0.04 sec)
mysql> show databases;
+---------------------+
| Database |
+---------------------+
| information_schema |
| epgrec |
| mysql |
+---------------------+
5 rows in set (0.00 sec)
ユーザー作成
  epgrec というデータベースで epgrec@localhost というユーザ パスワード ×××に対しすべての権限を与える
mysql> GRANT ALL PRIVILEGES ON epgrec.* TO epgrec@localhost IDENTIFIED BY ‘×××’;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
2)番組表設定
sudo gedit /var/www/html/epgrec/config.php
チャンネル番号わからないよーという方はマスプロのページを参考に
http://www.maspro.co.jp/contact/bro/bro_ch.html
地上デジタルチャンネルマップ$GR_CHANNEL_MAPの設定
を書こうと思いましたが、よく分からないし他のサイトの方が詳しいので
そちらを参考にしてください。
3)do-record.shの設定 これは次回

ubuntu10.04LTSで録画サーバ構築 「PT1 ドライバインストール編」

画像

我が家のテレビを重厚長大なブラウン管テレビから60インチ液晶AQUOSにしたので
長らく眠っていたPT1を再セットアップすることにしました。
以下手順です。
ハードウエアの装着やカードリーダの準備は他サイトにも多数の記録があるので参考にしてください。
ここではubuntuサーバに対するソフトウエアインストールを書いておきます。
基本的には、他サイトの記述をカット&ペーストしてサーバにインストールしたのですが
我が家環境ではうまくいかないこともあり、苦労したポイントなんかを書いてます。
1.まずはカードリーダのセットアップ
1)ソースリストの追加
なんでも新しいバージョンのアプリではICカードリーダーが動かないらしいので、古いバージョンのアプリを
インストールできるようにします。
テキストエディターで「sources.list」ファイルを開きます。
sudo gedit /etc/apt/sources.list
最終行に以下を追記します。
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu maverick main universe
deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu maverick main universe
deb http://security.ubuntu.com/ubuntu maverick-security main universe
deb-src http://security.ubuntu.com/ubuntu maverick-security main universe
アップデートします。
$ sudo apt-get update
2)必要なツールをインストールします。
$ sudo apt-get install pcscd=1.5.5-3ubuntu2.1
             libpcsclite1=1.5.5-3ubuntu2.1
             libccid=1.3.11-1 pcsc-tools=1.4.16-1
とやってみましたが途中でエラーを吐いてしまってうまくインストールできません。
webで該当ツールを探してみました。
libpcsclite-dev⇒http://launchpadlibrarian.net/70522559/libpcsclite-dev_1.5.5-3ubuntu2.1_i386.deb
        は依存関係でNGなんか上手く入らなかったっぽいです。
      ※sudo apt-get aptitude libpcsclite-dev にてむりやりインストールしました。
       但し
       libpcsclite1_1.5.3ubuntu4.2にダウングレードして依存関係を解決しました。
libpcsclite⇒http://launchpadlibrarian.net/70522563/libpcsclite1_1.5.5-3ubuntu2.1_i386.deb
       をダウンロードインストール
libccid⇒インストールok
linux-headers⇒sudo apt-get install linux-headers-`uname -r` 最新バージョンでインストール済
build-essential⇒インストールok
autoconf⇒インストールok
pcsc-tools⇒インストールok
pcscd⇒http://launchpadlibrarian.net/70522564/pcscd_1.5.5-3ubuntu2.1_i386.deb
   をダウンロードインストール
もしも間違ってインストールした場合は下記を実行して削除してから再トライすると上手くいくかも・・
$ sudo aptitude remove pcscd libpcsclite-dev libpcsclite1 libccid libpcsc-perl pcsc-tools
SCR3310-NTTComのランプが点滅します。点滅すれば設定は成功です。点滅しなかったら
手順を間違えた可能性があります。初めからやり直してみて下さい。
3)確認
sudo pcsc_scan
を実行してください.ズラズラと文字が出て,最後に
Japanese Chijou Digital B-CAS Card (pay TV)
が出たら上手くいってます.確認できたらCtrl+C で終了します.
いろいろ環境を変えたら
  sudo /etc/init.d/pcscd restart
しましょう。
2.PT1ドライバインストール
b25というソフトがデジタル放送のスクランブルを復号化してくれるそうです
(ということは、b25がないと映像が見れない?)。
最新のドライバはb25を含んでいないそうなのでいろいろ探したら
http://hg.honeyplanet.jp/pt1のchangeset c44e16dbb0e2にありました。
(「hg no longer accepts ‘#’ in a template」をクリックして、左のzipとかbz2を
クリックしてダウンロード)。
cd /usr/local/src/に保管
pt1-c44e16dbb0e2.tar.bz2
このファイルを展開する。
tar zxvf pt1-c44e16dbb0e2.tar.bz2
cd /usr/local/src
cd /pt1-c44e16dbb0e2/PT2/driver/
1)ドライバをビルド
# make -C /lib/modules/`uname -r`/build M=`pwd` V=1
ここで
error: implicit declaration of function ‘schedule_timeout_interruptible’
というエラーメッセージが表示される。pt1_i2c.cに#include
追記すればちゃんとmakeされる。
2)インストール
# make -C /lib/modules/`uname -r`/build M=`pwd` V=1 modules_install
モジュールを有効にします。
# sudo depmod -a
ルールファイルをコピーします。
# cp -ip etc/99-pt1.rules /etc/udev/rules.d/
Ubuntu再起動します。
# reboot
3)確認
dmesg | grep “\] [pP][tT]1”
[ 10.033988] pt1-pci.c:v1.00 11/28/2008
[ 10.432032] PT1:ISDB-S Sleep
[ 10.488060] PT1:ISDB-S Sleep
[ 10.544117] PT1:ISDB-T Sleep
[ 10.600036] PT1:ISDB-T Sleep
[ 10.656092] PT1: device[0]=(null)
[ 10.656400] PT1: card_number = 0
[ 10.656756] PT1: card_number = 0
[ 10.656909] PT1: card_number = 0
[ 10.657047] PT1: card_number = 0
[ 10.788346] pt1_thread run
以上でPT2ドライバのインストールは完了です。
3.録画ツールのインストール
1)arib25
cd /usr/local/src/pt1-c44e16dbb0e2/arib25/src
make
make install
2)recpt1をコンパイル・インストールします
cd /usr/local/src/pt1-c44e16dbb0e2/recpt1
make
make install
これで、録画系ドライバのインストールは完了です。
ところが・・・・
試しにコマンドラインから録画指示してみても上手くいかなかったりして・・・
4.トラブルその1
現象
1)25チャンネルが一度だけ低画質で録画された。他は録画してもVLCでも再生不可
2)コマンドにてrecpt1 --strip --b25 27 10 test.tsと打ってみても
 b25_decode failed
 b25->put failed
になってしまう。エラーコードが出ないのも痛い
うまく行かないので次に方針変更して再インストすることに・・・
対策1
 1.ソフトインストールはこのまま
 sudo apt-get install mercurial gcc pcsc-tools pcscd
   libpcsclite-dev boost-build g++ libboost-filesystem-dev
   libboost-thread-dev libglib2.0-dev libboost-regex-dev
   build-essential autoconf php5-cli
 2.ドライバインストール
 1)arib25はこのまま
 cd /usr/local/src/pt1-c44e16dbb0e2/arib25/src
 make
 make install
 ※ここは、/arib25でも/arib25/srcでも同じみたいですね。
 2)ドライバ&recpt1を実績あり新しめからダウンロード
 たとえばコレ pt1-38a793ac3d9d を展開して
 $cd ~/pt1-38a793ac3d9d/driver
 $ make -C /lib/modules/`uname -r`/build M=`pwd` V=1
 ⇒エラーがでるのでsudo make のみで行うとすんなり通った
 $ sudo make -C /lib/modules/`uname -r`/build M=`pwd` V=1 modules_install
 ⇒同じくエラーがでるのでsudo make install のみで実施
 $ sudo depmod -a
 $ sudo cp etc/99-pt1.rules /etc/udev/rules.d/
 $ sudo shutdown -h now
 そして「recpt1」
 $ cd ./pt1-38a793ac3d9d/recpt1
 $./autogen.sh       ⇒無しでもヘーキかも意味不明だし
 $./configure -enable-b25 ⇒無しでもヘーキかも意味不明だし
 $make
 $sudo make install
 $sudo cp ./recpt1 /usr/local/bin
 ⇒録画は出来るようになったが再生不可能
Recording…
b25->put failed
b25_decode failed (code=-4). fall back to encrypted recording.
5.トラブルその2
ここまでやって気づいたのは、ひょっとしてアンテナ???
そこでチェックシグナルしてみると
checksignal --device /dev/pt1video2 --lnb 15 25
checksignal --device /dev/pt1video2 --lnb 11 25
checksignal --device /dev/pt1video2 --lnb 11 25
上記のようにchecksignalしてみるがいずれも20~25db程度しか出ていない。
そこで配線やアンテナを見直してみることにしました。
そしたら
⇒アンテナケーブル交換によって24~28dbに向上
 録画&再生は全チャネル出来た。
 しかし画質はワンセグ画質
 最初-enable-b25のところを間違えて--enable-b25としてしまっているのが原因?
 とおもったけど全然違うみたい。
6.トラブルその3
さらにここまでやって、ひょっとしてrecpt1でHD画質指定出来ることに気が付いたので
試してみると。
 /home/public/sda$ recpt1 --b25 --strip --sid hd 24 15 test24h.ts
      using B25…
      enable B25 strip
      pid = 4599
      C/N = 27.567718dB
      Recording…
      Available sid = 1064 1065 1066 1448
      Chosen sid = 1064
      Recorded 16sec
 無事HD画質で録画されていました。
どーもすんません。