コピペでできる録画サーバー on Linux with PT2 (epgrec 番組表編)
この章では番組表のツール(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