「VRS」によるテレビ録画予約

「VRS」を利用してテレビ録画予約を行います。
なお、「Apache」の設定「GV-MVP/RX」によるテレビ録画 は終了しているものとします。

「MPlayer」のインストール

「VRS」の動作に必要なMPlayer(MEncoder)をインストールします。
なお、「VRS」ではMPlayerでJPEGのサムネイルを作成するので、jpegのUSEフラグを無効にしている場合、有効にします。

Gentoo ~ # vi /etc/portage/package.use <= 設定ファイルの編集(jpegのUSEフラグが無効の場合)
media-video/mplayer jpeg <= 追加

Gentoo ~ # emerge mplayer <= 「MPlayer」のインストール
「atd」のインストール

「atd」のインストール

「VRS」はatコマンドを利用して録画予約を行うので、インストールしていない場合、インストールします。

Gentoo ~ # emerge at

「atd」の起動

Gentoo ~ # /etc/init.d/atd start

「atd」の自動起動

Gentooを起動する際に自動的に「atd」を起動するようにします。

Gentoo ~ # rc-update add atd default
「VRS」のインストール

「VRS」のダウンロード

「Subversion」を利用したダウンロード

基本的に「Subversion」を利用してインストールします。

Gentoo ~ # svn checkout http://svn.woremacx.com/vrs/trunk/vrs-php5

なお、すでにSVNが動作している場合、以下のようにして取得します。

Gentoo ~ # svn update lib/ProgramCache.php lib/AppendIepgReservationContents.php

「wget」を利用したダウンロード

「wget」を利用してダウンロードする場合、大体以下のようなオプションで必要なものがダウンロード出来ます。

Gentoo vrs # wget -r -np -nH --cut-dirs=3 --reject=index.html http://svn.woremacx.com/vrs/trunk/vrs-php5/

「VRS」のインストール

ルートのホームディレクトリの「vrs-php5」というディレクトリ以下にダウンロードしたものとします。

Gentoo ~ # mkdir /var/www/localhost/vrs/ <= 「VRS」用のディレクトリの作成
Gentoo ~ # mv ~/vrs-php5/* /var/www/localhost/vrs/ <= ダウンロードしたファイルの移動
Gentoo ~ # rmdir ~/vrs-php5 <= ダウンロードしたディレクトリの削除
Gentoo ~ # cp ~/.ivtvrc /var/www/localhost/vrs/ <= rootのivtvの設定ファイルのコピー
Gentoo ~ # cp /var/www/localhost/vrs/misc/24fps /usr/local/bin/ <= 24fpsをパスの通った位置にコピー
Gentoo ~ # cp /var/www/localhost/vrs/misc/30fps /usr/local/bin/ <= 30fpsをパスの通った位置にコピー
Gentoo ~ # cd /var/www/localhost/vrs/
Gentoo vrs # ./configure.sh <= 初期設定用のスクリプトの実行
Gentoo vrs # chown -R apache.apache /var/www/localhost/vrs/ <= オーナ・グループをapacheの実行ユーザに変更
「VRS」の設定

チャンネルの設定

ここでは、千葉県のチャンネルを設定します。

Gentoo ~ # vi /var/www/localhost/vrs/config-channelmap.php <= 設定ファイルの編集
以下を追加
$CHIBA=array(
                "1" => "NHK総合",
                "3" => "NHK教育",
                "4" => "日本テレビ",
                "5" => "千葉テレビ",
                "6" => "TBSテレビ",
                "8" => "フジテレビ",
                "10" => "テレビ朝日",
                "12" => "テレビ東京"
                );

「VRS」の設定

以下で設定している地域は http://www.so-net.ne.jp/tv/bangumi/cgi-bin/selectGWPrgm.cgi にアクセスして地域を設定すれば
http://www.so-net.ne.jp/tv/bangumi24/tvprgm/1_12.html
のように表示されるので、最後の数字を指定します。

Gentoo ~ # vi /var/www/localhost/vrs/config.php <= 設定ファイルの編集
define( "HOME", "/home" );
↓
define( "HOME", "/var/www/localhost/vrs" ); <= ホームディレクトリを指定

define( "PREFID", "26" );
↓
define( "PREFID", "12" ); <= 地域の設定

$CHANNEL_TABLE = $KYOTO;
↓
$CHANNEL_TABLE = $CHIBA; <= チャンネルの設定

環境にあわせて、パスを変更します。

Gentoo ~ # vi /var/www/localhost/vrs/do-record.sh <= 設定ファイルの編集
        TUNED=`HOME=/opt/httpd/htdocs/vrs  /usr/local/bin/ivtv-tune -c $CHANNEL -t "japan-bcast" -d $DEVICE`
        ↓
        TUNED=`HOME=/var/www/localhost/vrs  /usr/bin/ivtv-tune -c $CHANNEL -t "japan-bcast" -d $DEVICE`

        /usr/local/bin/v4l2-ctl -c video_bitrate=$[ 1000 * $BITRATE ],video_peak_bitrate=10000000
        ↓
        /usr/bin/v4l2-ctl -c video_bitrate=$[ 1000 * $BITRATE ],video_peak_bitrate=10000000

        HOME=/opt/httpd/htdocs/vrs \
        /usr/local/bin/record-v4l2.pl \
        ↓
        HOME=/var/www/localhost/vrs \
        /usr/bin/record-v4l2.pl \

サムネイルの表示の修正

サムネイル作成時にエラーが表示されるので修正します。

Gentoo ~ # vi /var/www/localhost/vrs/lib/ReservationController.php
                        " -vop scale=150:100".
                        ↓
                        " -vf scale=150:100". <= 変更

デバイスの所有グループの変更

「Apache」の実行ユーザの権限でビデオデバイスにアクセス出来るように変更します。
ivtv-tuneコマンドを「Apache」の実行ユーザで実行できるようにし、 Gentoo起動時にビデオデバイスを「Apache」の実行グループでアクセス出来るようにします。

Gentoo ~ # chmod 4755 /usr/bin/ivtv-tune <= ivtv-tuneコマンドの実行権限を変更

Gentoo ~ # vi /etc/udev/rules.d/10-local.rules <= 設定ファイルの作成
KERNEL=="video[0-9]*",  NAME="v4l/video%n", SYMLINK+="video%n", GROUP="apache" <= 追加

Gentoo ~ # udevstart <= デバイス設定の変更の反映
「Apache」の設定

「VRS」インストールディレクトリに「Apache」からアクセス出来るようにします。

Gentoo ~ # vi /etc/apache2/httpd.conf <= 設定ファイルの編集
以下を追加
Alias /vrs /var/www/localhost/vrs
<Directory /var/www/localhost/vrs>
    DirectoryIndex  record.php
    AllowOverride All
    Options Includes ExecCGI FollowSymLinks
    AddHandler php5-script .php
    AddHandler image/gif .gif
    AddHandler image/jpeg .jpeg .jpg
    AddHandler image/png .png
    AddHandler text/css .css
    AddHandler text/html .html .htm
</Directory>

「Apache」を再起動して設定を反映させます。

Gentoo ~ # /etc/init.d/apache2 restart <= 「Apache」の再起動

http://サーバのIPアドレス/vrs/ でアクセス出来れば問題ありません。

「Postfix」の設定

ブラウザから録画予約した場合、apache権限でatコマンドが実行される為apache宛にメールが届きますので、rootに転送します。

Gentoo ~ # vi /etc/mail/aliases <= 設定ファイルの編集
apache:             root <= 追加(rootに転送)


Gentoo ~ # newaliases <= aliasesの読み込み
番組表の定期取得

番組表をすぐに取得出来なかったり、キャッシュが古い為に正しく番組表が表示されないことがあります。
そこで、録画を行わない時間帯に定期的にキャッシュを削除し、新たに番組表を取得するようにします。

番組表取得スクリプトの作成

wgetを利用して実行するようにします。
なお、実行にはroot権限は必要ありませんので、一般ユーザで作成します。

Gentoo ~ $ vi getschedule.sh <= 番組表取得スクリプトの作成
#!/bin/sh

WGET='/usr/bin/wget'

DEL_HEADURL='http://www.crimson-snow.net/vrs/record.php?action=deleteProgramCache&url=http://www.so-net.ne.jp/tv/bangumi24/tvprgm/'
DEL_TAILURL='_12.html&oldMode=4'
GET_HEADURL='http://www.crimson-snow.net/vrs/record.php?MODE=4&URL=http://www.so-net.ne.jp/tv/bangumi24/tvprgm/'
GET_TAILURL='_12.html'

i=1
while [ "$i" -le 8 ]
do
  "$WGET" -O - --quiet "$DEL_HEADURL""$i""$DEL_TAILURL" > /dev/null 2>&1
  i=`expr "$i" + 1`
done

i=1
while [ "$i" -le 8 ]
do
  "$WGET" -O - --quiet "$GET_HEADURL""$i""$GET_TAILURL" > /dev/null 2>&1
  i=`expr "$i" + 1`
done


Gentoo ~ $ chmod 755 getschedule.sh <= スクリプトファイルに実行権限付加

cronにより定期的に実行します。

Gentoo ~ $ crontab -e
00 05 * * * /home/kaz/getschedule.sh <= 毎日5時に実行
「Tripwire」の設定

録画したファイルが大きすぎて「Tripwire」がエラーメッセージを出力する場合、録画ファイルを対象外にします。

Gentoo ~ # twadmin --print-polfile > /etc/tripwire/twpol.txt
 <= 暗号化されたファイルからポリシーファイル(テキスト版)を作成
Gentoo ~ # vi /etc/tripwire/twpol.txt <= 設定ファイルの編集
# Commonly accessed directories that should remain static with regards to owner and group
(
  rulename = "Invariant Directories",
  severity = $(SIG_MED)
)
{
  /                                    -> $(SEC_INVARIANT) (recurse = 0) ;
  /home                                -> $(SEC_INVARIANT) (recurse = 0) ;
  /etc                                 -> $(SEC_INVARIANT) (recurse = 0) ;
  !/var/www/localhost/vrs/spool; <= 追加
}


Gentoo ~ # twadmin --create-polfile -S /etc/tripwire/site.key /etc/tripwire/twpol.txt
 <= 暗号化したポリシーファイルの作成(テキスト版=>暗号署名版)
Please enter your site passphrase: <= サイトパスフレーズ入力
Wrote policy file: /etc/tripwire/tw.pol

Gentoo ~ # rm -f /etc/tripwire/twpol.txt <= ポリシーファイル(テキスト版)を削除

データベースの作成

ポリシーファイルよりデータベースを作成します。

Gentoo ~ # tripwire --init <= データベースの作成
Please enter your local passphrase: <= ローカルパスフレーズ入力
Parsing policy file: /etc/tripwire/tw.pol
Generating the database...
*** Processing Unix File System ***
Wrote database file: /var/lib/tripwire/Gentoo.twd
The database was successfully generated.
▲ページのトップへ