コピペでできる録画サーバー on Linux with PT2 (epgrec 番組表編)

  1. コピペでできる録画サーバー on Linux with PT2 (ハードウェア編)
  2. コピペでできる録画サーバー on Linux with PT2 (OSインストール編)
  3. コピペでできる録画サーバー on Linux with PT2 (recpt1 録画編)
  4. コピペでできる録画サーバー on Linux with PT2 (epgrec 番組表編)
  5. コピペでできる録画サーバー on Linux with PT2 (再生編)
  6. コピペでできる録画サーバー on Linux with PT2 (エンコード編)


この章では番組表のツール(epgcre)をインストールすることにより、他のPCからブラウザで番組表を閲覧し予約できるようにします。
epgrecはに必要なソフトウェアをインストールしていきましょう。


※2013/6/16更新
epgdump,epgrecを公式版から各種パッチの適用や機能の追加が行われているSTZ版に変更しました。

gitのインストール

yum -y install git

epgdumpのインストール

cd /usr/local/src/PT2
git clone https://github.com/stz2012/epgdump.git
cd epgdump
make
make install

libiconvを自分でソースインストールしたことがあるとmakeを実行したときに以下のようなエラーが表示されます。

 undefined reference to `libiconv'
 undefined reference to `libiconv_open'
 undefined reference to `libiconv_close'

そのときは以下のようにMakefileのLIBSに-liconvを追加してから再度makeをやり直してください。

  • vi Makefile
LIBS            = -liconv

番組表はWebサーバで動作するのでWebサーバをインストールします。

Apacheのインストール

yum -y install httpd
yum -y install php php-cli php-sql php-mysql php-mbstring php-process

Apacheの設定

cat << '_EOF_' > /etc/httpd/conf/httpd.conf
ServerTokens Prod
ServerRoot "/etc/httpd"
PidFile run/httpd.pid
Timeout 120
KeepAlive On
MaxKeepAliveRequests 10
KeepAliveTimeout 15
Listen 80

<IfModule prefork.c>
StartServers       3
MinSpareServers    1
MaxSpareServers    5
ServerLimit      10
MaxClients       10
MaxRequestsPerChild  100
</IfModule>


LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule php5_module modules/libphp5.so

User apache
Group apache
ServerAdmin address@email.com
ServerName 192.168.1.2:80
DocumentRoot "/var/www"

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

<Directory "/var/www/html">
    AllowOverride None
    Options FollowSymLinks
    Order allow,deny
    Allow from all
</Directory>

<Directory "/var/www/cgi-bin">
    Options ExecCGI
</Directory>

<Directory "/var/www/epgrec">
    AllowOverride None
    Options FollowSymLinks
    Order allow,deny
    Allow from all
</Directory>

DirectoryIndex index.html
AccessFileName .htaccess
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>

TypesConfig /etc/mime.types
DefaultType text/plain
<IfModule mod_mime_magic.c>
    MIMEMagicFile conf/magic
</IfModule>

ErrorLog "/var/log/httpd/error_log"
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog logs/access_log combined
ServerSignature Off

AddDefaultCharset UTF-8
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
AddHandler cgi-script .cgi .pl
_EOF_

Apacheの起動

chkconfig httpd on
/etc/init.d/httpd start

MySQLのインストール

yum -y install mysql-server
/etc/init.d/mysqld start
chkconfig mysqld on
mysql

username、passwordは各々で設定してください。あとで使うので覚えておきましょう。

grant all privileges on PT2.* to username@localhost identified by 'password';
exit

テーブルの作成

mysql -u username -p
create database PT2;
show databases;
exit

atd

yum -y install at
usermod -s /bin/bash apache
/etc/init.d/atd start
chkconfig atd on

epgrecのインストール

cd /var/www
git clone https://github.com/stz2012/epgrec.git
cd /var/www/epgrec
cp config.php.sample config.php

epgrecの設定

vi config.php
各自の環境に合わせてコメントアウトを付けたり、外したり
参考 http://www.mda.or.jp/epgrec/index.php/epgrec%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A8%E8%A8%AD%E5%AE%9A

$GR_CHANNEL_MAP = array(
"GR27" => "27", // NHK
"GR26" => "26", // 教育
"GR25" => "25", // 日テレ
"GR22" => "22", // 東京
"GR21" => "21", // フジ
"GR24" => "24", // テレ朝
"GR23" => "23", // テレ東
// "GR20" => "20", // MX TV
// "GR18" => "18", // テレ神
"GR30" => "30", // 千葉
// "GR32" => "32", // テレ玉
"GR28" => "28", // 大学
);

録画用スクリプト

cat << '_EOF_' > /var/www/epgrec/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"

RECORDER=/usr/local/bin/recpt1

# 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 EPG取得用(変更しないこと)
   $RECORDER --b25 --strip --sid epg $CHANNEL $DURATION ${OUTPUT} >/dev/null
elif [ ${MODE} = 1 ]; then
   # 目的のSIDのみ残す
   $RECORDER --b25 --strip --sid $SID $CHANNEL $DURATION ${OUTPUT} >/dev/null
   fi
fi
_EOF_

パーミッションの設定など

chown -R apache.apache /var/www/epgrec
chmod 777 /var/www/epgrec/templates_c
chmod 777 /var/www/epgrec/video
chmod 777 /var/www/epgrec/thumbs
chmod 777 /var/www/epgrec/settings
chmod 777 /var/www/epgrec/cache
chmod 755 /var/www/epgrec/do-record.sh

MySQLデータベース設定

http://サーバアドレス/epgrec/index.phpにアクセスすると初回は設定が始まる。
    • MySQLホスト名
      • pt2
    • MySQL 接続ユーザー名
      • user
    • MySQL接続パスワード
      • password
    • 使用データベース名
      • PT2
    • インストールURL
      • http://サーバアドレス/epgrec
      • 設定を保存する
    • デジタルチューナー設定
    • 地デジチューナーの台数
      • 2
    • BSチューナーの台数
      • 2
    • 録画ファイル名の形式
      • %MONTH%月%DAY%日_%DOWJ%_%HOUR%時%MIN%分_%TYPE%%CH%_%TITLE%
      • 最後のEPG初回受信は実行しない

番組情報の取得、定期実行

cat << '_EOF_' > /etc/cron.d/getepg
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

29 */2 * * *   apache   /var/www/epgrec/getepg.php
_EOF_
chmod 644 /etc/cron.d/getepg

番組表取得 終了するまでに数十分かかります。

/var/www/epgrec/getepg.php

終了後 http://サーバアドレス/epgrec/index.php にアクセスすると以下のように番組表が表示されるはずです。


使い方 公式サイト参照

epgrecの使い方 - 録画予約システムepgrec
http://www.mda.or.jp/epgrec/index.php/epgrec%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9

録画した番組の保存先

/var/www/epgrec/videoに保存されます。
これでは録画した番組をWindowsから参照できないので、sambaで公開しているディレクトリにシンボリックリンクを作成します。

ln -s /var/www/epgrec/video /home/services/samba