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

「VRS」を利用してテレビ録画予約を行う。
ただし、「VRS」はrecord-v4l2.plコマンドを使用するが、自分の環境では

Error: getFrequency() failed!

というエラーメッセージが出力され、正常に動作しなかったので、代わりのスクリプトを作成し、対処した。
スクリプトはこちらの「CS ivtvrec」になるので、 当ページの方法で使用する場合、ダウンロードして下さい。
「CS ivtvrec」はcatコマンドで録画する為のスクリプトです。
なお、このスクリプトは単純にcatコマンドで録画しているので、画質や画面のサイズを指定しても無視されるので注意。
また、基本的な「Apache」の設定は終了しており、 「GV-MVP/RX」によるテレビ録画も終了しているものとする。

「VRS」のインストール

「VRS」のダウンロード

「Subversion」を利用してダウンロードする。

[kaz@Ubuntu ~]$ svn checkout http://svn.woremacx.com/vrs/trunk/vrs-php5

「VRS」のインストール

[kaz@Ubuntu ~]$ sudo mv vrs-php5 /var/www/vrs <= ダウンロードしたファイルの移動
[kaz@Ubuntu ~]$ sudo cp /var/www/vrs/misc/24fps /usr/local/bin/ <= 24fpsをパスの通った位置にコピー
[kaz@Ubuntu ~]$ sudo cp /var/www/vrs/misc/30fps /usr/local/bin/ <= 30fpsをパスの通った位置にコピー
[kaz@Ubuntu ~]$ cd /var/www/vrs/
[kaz@Ubuntu vrs]$ sudo ./configure.sh <= 初期設定用のスクリプトの実行
[kaz@Ubuntu vrs]$ sudo chown -R www-data:www-data /var/www/vrs <= オーナ・グループをapacheの実行ユーザに変更
「CS ivtvrec」のインストール

「CS ivtvrec」のダウンロード

[kaz@Ubuntu ~]$ wget http://www.crimson-snow.net/tools/cs_ivtvrec/cs_ivtvrec.zip <= 「CS ivtvrec」のダウンロード

「CS ivtvrec」のインストール

[kaz@Ubuntu ~]$ unzip cs_ivtvrec.zip <= ダウンロードしたファイルの展開
[kaz@Ubuntu ~]$ sudo mv cs_ivtvrec/video_record.sh /var/www/vrs/ <= ダウンロードしたファイルの移動
[kaz@Ubuntu ~]$ sudo mv cs_ivtvrec/cs_ivtvrec.conf /var/www/vrs/ <= ダウンロードしたファイルの移動
[kaz@Ubuntu ~]$ sudo chown www-data:www-data /var/www/vrs/video_record.sh <= オーナ・グループをapacheの実行ユーザに変更
[kaz@Ubuntu ~]$ sudo chown www-data:www-data /var/www/vrs/cs_ivtvrec.conf <= オーナ・グループをapacheの実行ユーザに変更
「VRS」の設定

チャンネルの設定

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

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

「VRS」の設定

以下で設定している地域は http://tv.so-net.ne.jp にアクセスして地域を設定すれば
http://tv.so-net.ne.jp/chart/XX.action?head=...
のように表示され、XXの部分が地域の値になる。

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

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

define( "IEPG_URL_2ND", "http://tv.so-net.ne.jp/chart/" . PREFID_2ND . ".action\?span=24\&head=" );
↓
//define( "IEPG_URL_2ND", "http://tv.so-net.ne.jp/chart/" . PREFID_2ND . ".action\?span=24\&head=" );
 <= コメントアウト(2ページ目を利用しない場合)

define( "IEPG_URL_3RD", "http://tv.so-net.ne.jp/chart/" . PREFID_3RD . ".action\?span=24\&head=" );
↓
//define( "IEPG_URL_3RD", "http://tv.so-net.ne.jp/chart/" . PREFID_3RD . ".action\?span=24\&head=" );
 <= コメントアウト(3ページ目を利用しない場合)

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

do-record.shの設定

環境にあわせて、パスを変更する。
また、record-v4l2.plコマンドではなく、当サイトでのスクリプトのvideo_record.shを使用する。

[kaz@Ubuntu ~]$ sudo vi /var/www/vrs/do-record.sh
#!/bin/sh
↓
#!/bin/bash <= 変更

if [ $DEVICE == "/dev/video0" ] ; then # キャプチャカード0の場合の録画コマンド
↓
#if [ $DEVICE == "/dev/video0" ] ; then # キャプチャカード0の場合の録画コマンド <= コメントアウト

TUNED=`HOME=/opt/httpd/htdocs/vrs  /usr/local/bin/ivtv-tune -c $CHANNEL -t "japan-bcast" -d $DEVICE`
↓
TUNED=`HOME=/var/www/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 <= 変更

record-v4l2.plコマンドからvideo_record.shコマンドへ変更
/usr/local/bin/record-v4l2.pl \
    --duration $DURATION \
    --input $DEVICE \
    --frequency $FREQ \
    --directory-format . \
    --bitrate $[ 1000 * $BITRATE ] \
    --peakbitrate 10000000 \
    --width $WIDTH \
    --height $HEIGHT \
    --output-settings 0 \
    --output $OUTPUT.mpg
↓
/var/www/vrs/video_record.sh \
    -c $CHANNEL \
    -D $DEVICE \
    -t japan-bcast \
    -d /var/www/vrs \
    -s $DURATION \
    -o $OUTPUT.mpg
ここまで

else # キャプチャカード1の場合の録画コマンド
    mencoder # TBD mencoder
fi
↓
#else # キャプチャカード1の場合の録画コマンド <= コメントアウト
#	mencoder # TBD mencoder <= コメントアウト
#fi <= コメントアウト
「CS ivtvrec」の設定

「CS ivtvrec」の設定

設定ファイルの場所を指定する。

[kaz@Ubuntu ~]$ sudo vi /var/www/vrs/video_record.sh <= ファイルの編集
CONFIG_FILE=${HOME}/etc/cs_ivtvrec.conf
↓
CONFIG_FILE=${HOME}/vrs/cs_ivtvrec.conf <= 変更
OS関係の設定

「Apache」実行ユーザのグループの変更

ivtv-tuneコマンドを「Apache」の実行ユーザで実行できるようにし、ビデオデバイスに「Apache」の実行ユーザでアクセス出来るようにする。

[kaz@Ubuntu ~]$ sudo chmod 4755 /usr/bin/ivtv-tune <= ivtv-tuneコマンドの実行権限を変更
[kaz@Ubuntu ~]$ sudo usermod -G www-data,video www-data <= 「Apache」の実行ユーザをvideoグループに追加する

atコマンドの許可

「Apache」の実行ユーザにatコマンドの実行許可を与える。

[kaz@Ubuntu ~]$ sudo vi /etc/at.deny <= 設定ファイルの編集
以下の「Apache」実行ユーザの行を削除する
www-data
「Apache」の設定

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

[kaz@Ubuntu ~]$ sudo vi /etc/apache2/conf.d/vrs.conf <= 設定ファイルの編集
以下を追加
Alias /vrs /var/www/vrs
<Directory /var/www/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」を再起動して設定を反映させる。

[kaz@Ubuntu ~]$ sudo /etc/init.d/apache2 restart <= 「Apache」の再起動

http://サーバのIPアドレス/vrs/ でアクセス出来れば問題ない。

▲ページのトップへ