過去のバージョンの設定
過去のバージョンのconfig.phpの設定
7月29日版より古いバージョンでは、下記の定数をconfig.php内に設定する必要があります。
INSTALL_PATH
epgrecをインストールしたディレクトリのパスを設定します。ここまでの例なら"/var/www/epgrec"です。末尾の/は不要です。
SPOOL
録画したビデオファイルを格納するディレクトリをINSTALL_PATHからの相対ディレクトリで設定します。録画済みビデオの視聴を行うためには、SPOOLはWebサーバのドキュメントルートの下でなければなりません。
標準は/video(つまり/var/www/epgrec/video)で、通常はこの設定で利用するのが安全でしょう。/var/www/epgrec/videoに十分な空き容量がない場合、/var/www/epgrec/videoを削除して十分な空き容量があるディレクトリを作成し、そのリンクを/var/www/epgrec/videoとして作成してください。たとえば/home以下に十分な空き容量があるなら次のようにします。
$ sudo mkdir /home/video $ sudo chmod 777 /home/video $ sudo rmdir /var/www/epgrec/video $ sudo ln -s /home/video /var/www/epgrec/video
THUMBS
サムネール画像を保存するディレクトリをINSTALL_PATHからの相対パスで設定します。標準は/thumbsです。
INSTALL_URL
epgrecにブラウザでアクセスするためのURLを設定します。LANおよびサーバー自身のブラウザでアクセスできるURLを設定してください。
FORMER_TIME
epgrecは録画実行にat(UNIXで標準的に利用されている、時間が来たらジョブを実行するコマンド)を用いています。atは分単位の精度しかジョブを開始できませんので、epgrecではやや早めに録画を開始します。FORMER_TIMEには、その早める時間を秒単位で設定してください。設定値はお好み次第ですが、15~30秒程度が適当でしょう。短くしすぎると番組の冒頭がとぎれる恐れがあります。また、180秒以上の時間は設定できません。
EXTRA_TIME (7月13日版~)
デフォルトで録画時間を延長する秒数を設定します。番組の終わりが切れてしまうような場合設定するといいかもしれませんが、EXTRA_TIMEに1以上を設定するとFORCE_CONT_RECはほとんど機能しなくなるので注意してください。FORCE_CONT_RECを用いたいときには、終わりが切れそうな番組に限り手動で録画時間を1分延長したほうがいいでしょう。
BS_TUNERS/GR_TUNERS
サーバーに接続しているBSデジタルチューナー数をBS_TUNERSに、地上デジタルチューナー数をGR_TUNERSに設定します。epgrecはチューナー数分の同時録画を受け付けます。また、たとえばBSチューナーは持っていないという場合はBS_TUNERSを0に設定しておきます。
FORCE_CONT_REC/REC_SWITCH_TIME(Experimental)
epgrecはチューナーが複数あって空いているときを除き、時間が連続している番組の録画予約を受け付けませんが、FORCE_CONT_RECをtrueに設定すると、可能ならば前後に予約されている番組の録画時間を自動的に変更して時間が連続している番組の録画を予約します。具体的には、前の番組の録画終了時間をFORMAER_TIME+REC_SWITCH_TIME秒だけ早く終わらせて次の番組の録画を開始します。
REC_SWITCH_TIMEは、recfriioやrecpt1などの録画コマンドを切り替えるために必要な時間を秒単位で設定します。短くするほど切り替えが早くなりますが、録画コマンドの録画時間には誤差がある可能性がある(あまり検証してない)ので、REC_SWITCH_TIMEを短くしすぎると次の番組の録画に失敗する危険が高まります。REC_SWITCH_TIMEに設定する時間は、実際にテスト録画を行って調節してください。
この機能はテストが不十分でステータスは実験的です。
USE_THUMBS
録画済一覧の表にサムネール画像を入れたいならtrueにします。この機能を使うには、Linuxにffmpegがインストールされ、定数FFMPEGが正しく設定されている必要があります。ffmpegを持っていない人はfalseに設定しておいてください。
DB_HOST/DB_NAME/DB_USER/DB_PASS/TBL_PREFIX
DB_HOSTにデータベースサーバのホスト名(通常はlocalhost)、DB_NAMEには使用するデータベース名、DB_USERにデータベースの接続ユーザー名、DB_PASSにデータベース接続パスワードを設定します。これらの設定が正しくないとデータベースに接続できず、epgrecは利用できません。
TBL_PREFIXはテーブル名に付加する接頭辞を設定します。通常、設定を変える必要はありません。
EPGDUMP/AT/ATRM/SLEEP/FFMPEG
これらは使用するコマンドのパスの設定です。EPGDUMPは、先の例のようにepgdumpをインストールしたなら/usr/local/bin/epgdumpです。その他のコマンドはほとんどのディストリビューションで、初期設定を変える必要はないはずです。万が一、コマンドのパスが異なるときには設定を変えてください。
FILENAME_FORMAT/FILESYSTEM_ENCODING(option/7月15日テスト版~)
epgrecには録画ファイル名をカスタマイズする機能があります。ファイル名をデフォルトから変更したいときには、FILENAME_FORMATをconfig.php内で次のように設定してください。
#define("FILENAME_FORMAT", "format string..." );
FILENAME_FORMATの設定はオプションで、設定は必須ではありません。format string内で使える特殊文字は次の通りです。
特殊文字列 | 置換後の内容 |
%TITLE% | 番組タイトル |
%ST% | 開始日時(ex.200907201830) |
%ET% | 終了日時(同上) |
%TYPE% | GRまたはBS |
%CH% | チャンネル番号 |
%DOW% | 曜日(英3文字Sun-Mon) |
%DOWJ% | 曜日(漢字1字日-土) |
%YEAR% | 開始年 |
%MONTH% | 開始月 |
%DAY% | 開始日 |
%HOUR% | 開始時 |
%MIN% | 開始分 |
%SEC% | 開始秒 |
%DURATION% | 録画時間(秒) |
たとえば、
define( "FILENAME_FORMAT", "%YEAR%年%MONTH%月%DAY%日%HOUR%時%MIN%分%SEC%秒_%TYPE%%CH%_%TITLE%" );
というようなformat stringを設定すると
2009年07月15日12時49分16秒_GR21_番組名.ts
というような録画ファイルが作成されます。format stringは自由に設定されますが、開始日時とチャンネルなどを混ぜて必ず、常に異なるファイル名が生成されるようにしてください。
なお、ファイルシステムがUTF-8以外の文字コードの時には、FILESYSTEM_ENCODINGを設定する必要があります。
define( "FILESYSTEM_ENCODING", "EUC-JP" );
設定するパラメータはphpのmb_convert_encodingの第2パラメータに設定できるエンコード指定文字列です。UTF-8文字コードを使っている方はFILESYSTEM_ENCODINGを設定する必要はありません(というか設定しない方がいいです)。
過去のバージョンの初期設定
7月29日版より古いバージョンでは、手動でデータベーステーブルの作成とEPGの初回受信を行う必要があります。次のようにターミナルでコマンドを実行しましょう。
$ /var/www/epgrec/initdb.php
Complete!と表示されれば初期化成功です。エラーが出るようなら、config.phpのデータベース関連の(DB_で始まる定数の)設定値が誤っているか、MySQLのユーザーアカウントが正しく作成されていません。確かめてください。
続いて、EPGデータの初回受信を行います。ユーザーアカウントで次のようにコマンドを実行してください。
$ /var/www/epgrec/getepg.php
受信に必要な時間は受信できる局数やサーバーの速度によって異なります。地上デジタル放送は1局あたり1分間の受信を行い番組表を取り出してデータベースに格納します。たとえば、9局受信できるのであれば9分以上、おおよそ12~15分程度はかかるでしょう。一方、BSデジタルは3分間の受信を行いますから、地上デジタルと合わせて20分弱程度はかかると考えて良いでしょう(サーバーが遅ければ、もっとかかります)。
なお、受信状態が悪い局がチャンネルマップに含まれていると、その局のEPGの取得でエラーが生じたり取得に失敗します。ある程度、受信できていれば後述のcron実行により徐々に番組表が埋まるはずですが、時間が経っても番組表が埋まらないようなら、その局は$GR_CHANNEL_MAPから外してしまった方がいいでしょう。
また、getepg.php実行時にSegmentation Faultなどのエラーを吐いてしまう場合があります。受信状態が悪い局がチャンネルマップに含まれていると、このエラーが発生して番組表の取得が正常に行えませんので、極端に受信状態が悪い局が無いか調べてください。
とくに受信状態に問題が無いなら、2度3度とgetepg.phpを繰り返し実行するとエラーがなくなるはずです。