CentOS7にPT3録画サーバーを構築
環境は
- CentOS7.1
- Nginx
- epgrec
必要なパッケージのインストール
$ sudo yum -y install kernel-devel $ sudo yum -y install git unzip bzip2 wget $ sudo yum -y install gcc gcc-c++ kernel-devel make patch $ sudo yum -y install perl-ExtUtils-MakeMaker
RPMforgeのインストール
CentOS7へのリポジトリの追加方法まとめを参考に以下の様にインストールする
$ sudo yum -y install yum-plugin-priorities $ rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt $ rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
CentOS-Base.repoを優先度1 (priority=1)にする
$ sudo vi /etc/yum.repos.d/CentOS-Base.repo priority=1
RPMforgeを
優先度12 (priority=12)
デフォルトで無効 (enabled=0)
に設定する
$ sudo vi /etc/yum.repos.d/rpmforge.repo
SELinux無効化
$ sudo vi /etc/selinux/config SELINUX=disabled $ reboot
B-CASカードリーダ
カードリーダはSCR3310-NTTComを用いた
必要なパッケージのインストール
$ sudo yum -y install ccid pcsc-lite pcsc-lite-devel pcsc-lite-libs
pcsc-perlのインストール
$ cd $ wget http://ludovic.rousseau.free.fr/softwares/pcsc-perl/pcsc-perl-1.4.14.tar.bz2 $ tar xf pcsc-perl-1.4.14.tar.bz2 $ cd pcsc-perl-1.4.14.tar.bz2 $ perl Makefile.PL osname: linux LDDFLAGS: INC: `pkg-config --cflags libpcsclite` Checking if your kit is complete... Looks good Writing Makefile for Chipcard::PCSC::Card Writing Makefile for Chipcard::PCSC $ make $ sudo make install
pcsc-toolsのインストール
$ cd $ wget http://ludovic.rousseau.free.fr/softwares/pcsc-tools/pcsc-tools-1.4.25.tar.gz $ tar xf pcsc-tools-1.4.25.tar.gz $ cd pcsc-tools-1.4.25 $ make $ sudo make install
サービス起動
$ sudo systemctl enable pcscd $ sudo systemctl start pcscd
カードリーダの確認
出力が確認できたらCtrl + C
でコマンドを止める必要がある
$ pcsc_scan PC/SC device scanner V 1.4.25 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr> Compiled with PC/SC lite version: 1.8.8 Using reader plug'n play mechanism Scanning present readers... 0: NTT Communications Corp. SCR3310-NTTCom USB SmartCard Reader [Vendor Interface] 00 00 (省略) Japanese Chijou Digital B-CAS Card (pay TV)
arib25のインストール
放送波のデコードに用いるarib25をインストールする
$ sudo yum -y install ld-linux.so.2 $ cd $ wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.zip $ unzip cd c44e16dbb0e2.zip $ cd pt1-c44e16dbb0e2/arib25 $ make $ sudo make install
recpt1のインストール
http://sourceforge.jp/projects/epgrec/downloads/53384/pt1-drv_20111001.tar.gz
をダウンロードする
$ cd $ tar xf http://sourceforge.jp/projects/epgrec/downloads/53384/pt1-drv_20111001.tar.gz $ cd pt1-7662d0ecd74b/recpt1 $ vi pt1_dev.h # pt1videoをpt3videoに変更する char *bsdev[NUM_BSDEV] = { "/dev/pt3video1", "/dev/pt3video0", "/dev/pt3video5", "/dev/pt3video4", "/dev/pt3video9", "/dev/pt3video8", "/dev/pt3video13", "/dev/pt3video12" }; char *isdb_t_dev[NUM_ISDB_T_DEV] = { "/dev/pt3video2", "/dev/pt3video3", "/dev/pt3video6", "/dev/pt3video7", "/dev/pt3video10", "/dev/pt3video11", "/dev/pt3video14", "/dev/pt3video15" }; $ ./configure --enable-b25 $ make clean $ make $ sudo make install
PT3ドライバのインストール
$ cd $ echo "blacklist earth-pt1" | sudo tee -a /etc/modprobe.d/blacklist.conf $ git clone https://github.com/m-tsudo/pt3.git $ cd pt3 $ make $ sudo make install $ reboot
デバイスを確認
$ ls /dev/ | grep pt3 pt3video0 pt3video1 pt3video2 pt3video3
録画テスト
$ recpt1 --b25 --strip 13 10 test.ts --device /dev/pt3video2
エラー対応1
以下のエラーが出力される場合は
recpt1: error while loading shared libraries: libarib25.so.0: cannot open shared object file: No such file or directory
以下の様にnot found
を探して修正
$ ldd /usr/local/bin/recpt1 linux-vdso.so.1 => (0x00007ffdd3bef000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6780881000) libm.so.6 => /lib64/libm.so.6 (0x00007f678057f000) libarib25.so.0 => not found libc.so.6 => /lib64/libc.so.6 (0x00007f67801bd000) /lib64/ld-linux-x86-64.so.2 (0x00007f6780aa4000) $ sudo find /usr/ | grep libarib25.so.0 /usr/local/lib/libarib25.so.0.2.4 /usr/local/lib/libarib25.so.0 $ echo "/usr/local/lib" | sudo tee -a /etc/ld.so.conf $ sudo ldconfig $ ldd /usr/local/bin/recpt1 linux-vdso.so.1 => (0x00007ffd655d8000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fcb4b56f000) libm.so.6 => /lib64/libm.so.6 (0x00007fcb4b26d000) libarib25.so.0 => /usr/local/lib/libarib25.so.0 (0x00007fcb4b063000) libc.so.6 => /lib64/libc.so.6 (0x00007fcb4aca2000) /lib64/ld-linux-x86-64.so.2 (0x00007fcb4b792000) libpcsclite.so.1 => /lib64/libpcsclite.so.1 (0x00007fcb4aa97000) librt.so.1 => /lib64/librt.so.1 (0x00007fcb4a88e000)
epgdumperのインストール
https://osdn.jp/projects/epgrec/downloads/53385/epgdumpr2_20111001.tar.gz
をダウンロード
$ tar xf epgdumpr2_20111001.tar.gz $ cd epgdumpr2 $ touch * $ make clean $ make $ sudo cp epgdump /usr/local/bin
EPG取得テスト
以下のコマンドを実行すると番組情報が表示される
$ epgdump test /path/to/tsfile.ts -
ウェブサーバのインストール
以下のリンクの手順でNginx+PHP+mariadbの環境を構築する
必要なパッケージのインストール
$ sudo yum -y install php-cli php-mysql php-mbstring php-process at $ sudo systemctl start nginx $ sudo systemctl enable nginx $ sudo systemctl start mariadb $ sudo systemctl enable mariadb $ sudo systemctl start atd $ sudo systemctl enable atd
設定
at.deny
からnginxを削除する
$ vi /etc/at.deny
nginxの/sbin/nologin
を削除
$ sudo vi /etc/passwd nginx:x:NNN:NNN:nginx user:/var/cache/nginx
データベースの作成
epgrec用にユーザーを作成する
$ mysql -u root -p MariaDB [(none)]> grant all privileges on epgrec.* to ユーザー名@localhost identified by "パスワード"; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> quit; Bye
epgrec用のデータベースを作成する
$ mysql -u ユーザー名 -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 12 Server version: 5.5.44-MariaDB MariaDB Server Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> create database epgrec; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> quit; Bye
epgrecのインストール
$ cd /var/www/html $ git clone git://git.sourceforge.jp/gitroot/epgrec/epgrec.git $ cd epgrec
設定ファイルのコピー (必要であればhttp://www.maspro.co.jp/contact/bro/bro_ch.htmlを参考にしてチャンネルマップを編集する)
$ cp config.php.sample config.php
録画用スクリプトのコピー
$ cp do-record.sh.pt1 do-record.sh
アクセス権の設定
$ sudo chown -R nginx:nginx /var/www/html/epgrec $ sudo chmod 777 /var/www/html/epgrec/templates_c $ sudo chmod 777 /var/www/html/epgrec/video $ sudo chmod 777 /var/www/html/epgrec/thumbs $ sudo chmod 777 /var/www/html/epgrec/settings $ sudo chmod 777 /var/www/html/epgrec/cache $ sudo chmod 755 /var/www/html/epgrec/do-record.sh
初期設定
ブラウザでhttp://サーバーIP/epgrec/index.phpにアクセス
インストール ステップ1
インストール ステップ2
インストール ステップ3
インストール ステップ4
getepg.phpをcronに登録
6時5分,12時5分,17時5分に実行するように設定
$ crontab -e 5 6,12,17 * * * /var/www/html/epgrec/getepg.php