tvrecordのインストールと設定

20 Nov 2006 Masaki Shinomiya
  1. tvrecordのインストール
    1. RPMが使える場合
    2. RPMが使えない場合
  2. tvrecordの設定
  3. tvrec.confの設定
    その他の設定ファイル
    インターネット・メールを受けるための設定 (オプション)
  4. テスト
  5. リモートwebインターフェースのインストール(オプション)
    1. RPMが使える場合
    2. RPMは使えないがroot権限がある場合
    3. root権限が無い場合
  6. リモートwebインターフェースを使う場合の設定(オプション)
  7. サポート

1. tvrecordのインストール

RPMが使えるかどうかで次のA,Bどちらかを選んでください。

  1. RPMが使える場合
    1. RPMの作成
    2. tarballのあるディレクトリでコマンドラインから次のコマンドを入力してください。
      $ rpm -tb --define region=tokyo tvrecord-*.tar.gz
      ( RedHat Linux 8など一部のシステムでは $ rpmbuild -tb tvrec-*.tar.gz) tokyoとあるところは使用する地域により、次の中から選んでください。 aomori iwate miyagi akita yamagata fukushima ibaraki tochigi gnma saitama chiba tokyo kanagawa niigata toyama ishikawa fukui yamanashi nagano gifu shizuoka aichi mie shiga kyoto osaka hyogo nara wakayama tottori shimane okayama hiroshima yamaguchi tokushima kagawa ehime kochi fukuoka saga nagasaki kumamoto oita miyazaki kagoshima okinawa 一部のシステムではroot権限でないとRPMが作成できないかもしれません。たくさんメッセージが流れたあと、最後のほうに
      書き込み中: /usr/src/redhat/rpm/RPMS/noarch/tvrecord-0.*.noarch.rpm
      というのを見付けてnosrc.rpmが作られたディレクトリを知ります。
    3. RPMのインストール
    4. さきのnosrc.rpmが作られたディレクトリに入ってroot権限で次のコマンドでインストールします。
      # rpm -Uvh tvrecord-0.*.noarch.rpm

  2. RPMが使えない場合
    1. Tarballの解凍
    2. $ tar xzf tvrecord-*.tar.gz
      $ cd tvrecord-*
    3. 準備
    4. $ make region=tokyo
      tokyoとあるところは使用する地域により、次の中から選んでください。 aomori iwate miyagi akita yamagata fukushima ibaraki tochigi gnma saitama chiba tokyo kanagawa niigata toyama ishikawa fukui yamanashi nagano gifu shizuoka aichi mie shiga kyoto osaka hyogo nara wakayama tottori shimane okayama hiroshima yamaguchi tokushima kagawa ehime kochi fukuoka saga nagasaki kumamoto oita miyazaki kagoshima okinawa
    5. インストール
    6. root権限で
      # make install

2. tvrecordの設定

  1. tvrec.conf
  2. システム設定ファイルは /home/video/tvrec.conf です。デフォルト・ユーザおよび他の設定をしてください。 "="の前後には空白などを入れないでください。 詳細はtvrec.confによる tvrecordの設定

  3. channels.conf (version 0.2.0からファイル名が channels --> channels.conf に変更されました。)
  4. ファイル /home/viideo/channels.conf にあなたの地域のテレビ・チャンネルを設定してください。 channels のサンプルは channel_map ディレクトリーにあります。項目間のセパレーターはスペースではなくTabなので注意してください。

  5. modes.conf
  6. デフォルトでは ffmpeg で MPEG-1 あるいは MPEG-4で録画する設定になっています。 /home/video/modes.confファイルで設定します。 recording_modes/modes.conf.* の見本を参考にしてください。最初の1行のコメント行は変更してはいけません。

  7. .xawtv
  8. インストールすると/home/video/.xawtv が作られます。 デフォルトでは freqtab = japan-bcast となっていますが、ケーブルの場合はfreqtab = japan-cable と変更してください。 ケーブルTVを使っている場合でも freqtab = japan-bcast が適当な場合もあります。

  9. .ivtvrc
  10. インストールすると/home/video/.ivtvrc が作られます。 ivtv(record-v4l2.pl)を使わない場合は関係ありません。 デフォルトでは freqtab = ntsc-bcast-jp となっていますが、状況に応じ freqtab = ntsc-cable-jp などに変更してください。

  11. tvrec_capture
  12. 場合によっては特定のキャプチャー・プログラムを動かすために /home/video/tvrec_capture ファイルを修正しなければならないかもしれません。

  13. limit.conf (オプション)
  14. このファイルは録画されたビデオファイルが作られるディレクトリ(/var/video/aaaa など)に置きます。

    MAXTURN=2

    上記のような内容を limit.conf というファイル名で置いておくと、 毎週録画などの場合そのディレクトリ内で2回分のみ保存され、古いものから自動的に削除されます。 ファイルの新旧はそのファイル名の日付と時刻の部分で判断されます。録画ファイル名は通常次のように付けられます。

    aaaaMMDDHHMMx.exp
    1. aaaa アルファベット小文字の名前
    2. MMDDHHMM 録画開始の日付と時刻
    3. x ファイルが複数となるとき a-z が付加される
    4. .exp .mpgなどの拡張子

    したがって日付時刻部分を除いたファイル名などに変更しておくと自動的に削除されることはありません。

  15. afterwork (オプション)
  16. 録画終了後に実行する bash スクリプト。/home/video/bin ディレクトリに置いておく。 またシステム設定ファイル /home/video/video.conf 内で

    AFTERWORK=afterwork
    と、そのファイル名を指定しておく。 デフォルトではコメントアウトされている。

  17. notice.wav (オプション)
  18. 録画開始時の警告音として適当な音源ファイルを /home/video/notice.wav として置いてください。無くても警告音が出ないだけで録画動作には支障ありません。 またシステム設定ファイル /home/video/video.conf 内で

    NOTICE=/home/video/notice.wav
    としてフルパスで指定する。 デフォルトではコメントアウト。

  19. .forwardによるコマンド起動
  20. インストールすれば /home/video/.forward がセットされます。 Vine Linux の postfix ではこれだけで動きますが、メールサーバーによってはセキュリティ上 .forwardによるコマンド起動を禁止している場合があります。 その場合の対処はここでは触れませんので、調べてください。

  21. mail.allow (オプション)
  22. インターネット上から録画予約できるようにした場合はセキュリティのため使用者のメール・アドレスを録画ホストの /home/video/mail.allowに列挙しておくとよいでしょう。アドレスがここに書かれていないと予約を受付けません。 /home/video/mail.allowが存在しないかアドレスが書かれていないときは制限なく予約を受け付けます。

  23. .netrc (オプション)
  24. 録画ホスト上とリモートホスト上の2つのコントロール・テーブルtvrectabを同期させるために、録画ホスト上でftpクライアントを使用し、リモート・ホストへtvrectabを転送します。ビデオホスト上で/home/video/.netrcファイルの中にリモート・ホストの ftpアカウントおよびパスワードを書いておかねばなりません。次のようなサンプルがdot.netrcにあります。また manページ「man netrc」を参照してください。 /home/video/.netrc のパーミッションは 600 でなければなりません。

    machine webhost
    	login account
    	password xxxxxxxx
  25. メールシステムの設定
  26. システムはコマンドのやり取りの多くをメールを経由して行います。たとえばWebインターフェースから録画を依頼するさい、 CGIからvideo@videohost宛てにメールが送られるので、 CGI(ユーザーapacheなど)からのメール発信が許可されねばなりませんし、メールがvideohostのユーザーvideoに届けられる経路が必要です。また録画依頼の受付確認や録画完了報告などがシステムから依頼者に返されます。 videohostのユーザーvideoからメールが発信できること、また依頼者のメールアドレスがインターネット上の場合、videohostのユーザーvideoからインターネットへメールが発信できるようになっていなければなりません。

  27. Webインターフェースの設定 (video.conf)
  28. Webインターフェースを利用するには apache などの httpサーバーを適切に設定、起動しておかねばなりません。 CGIを許可する設定が必要です。またCGIからメールを発信できなければなりません。 この設定は /etc/http.d/conf.d/video.conf によってなされるはずですが、 httpサーバーのインストール位置が違うなど 問題ある場合は apacheのオンライン・マニュアルなどを参考にして設定してください。

    VIDEODIRを変更した場合は、
    /home/video/public_html/contents.cgi の 第80行目あたりの VIDEODIR=/var/video とあるところ、
    また、 /etc/http.d/conf.d/video.conf 中の次の行を見付け、 /var/video のところを 変更後の VIDEODIR が示すディレクトリに書換え、 httpd をリスタートしてください。

    Alias	/video		/var/video

    (Vine Linux 3.2 では次項はデフォルトで設定済みのはず)
    たとえば Vine Linux の apache では CGI はユーザー名apacheの権限で実行されます。 ここでエラーがあるとapacheへエラー・リターンがあるのですが、 Vine 3.1 のデフォルト状態ではユーザーapacheへのメールの経路が設定されていません /etc/aliases に次のような記述があるか確認し、無ければ追加し、newaliasesを実行しておきましょう。 tako のところは管理者のユーザー名に置き換えて読んでください。 試しに ローカルで apache宛にメールを出して確認するとよいでしょう。

    apache:         root
    # Person who should get root's mail
    root:           tako
  29. インターネット・メールを受けるための設定 (オプション)

インターネット上から予約できるためには、メールで送られてくる予約コマンドが録画ホストのtvrecシステムに届くようになっていなければなりません。

video@mydomain.net宛のメールをユーザーvideoが直接受けるなら、余分な設定は不要です。 また myaccount2@provider.jp のような予約コマンド専用のメール・アカウントが用意できるなら、 ここに届くメールを VIDEOHOST のユーザーvideoに転送するように設定するだけです。

常用のインターネット・メール・アカウントが1つしかない場合は procmail により Subject (表題もしくは件名)によって予約コマンドを振り分けることができます。

tako@provider.jp 宛てのメールをユーザーtakoが fetchmailなどで受けて、videoに転送する場合の procmailレシピ
(/home/tako/.procmailrc)

# A sample of procmail recipe for TV recording system
# keyword is 'yoyaku'
#MAILDIR = "$HOME/Mail"
TVR=video@videohost.mydomain

### TV recording system
:0
* ^from:.*(tv.recording.system|$TVR)
inbox/.

:0
* ^(to|subject):[ ]*yoyaku
! $TVR
:0
# JIS encoded
* ^subject:.*=.iso-2022-jp.B.(WU9ZQUtV|eW95YWt1|GyRCI1kjTyNZI0EjSyNVGyhC|GyRCI3kjbyN5I2EjayN1GyhC)
! $TVR


### Default
:0
inbox/.

video@mydomain.net宛のメールをユーザーvideoが直接受ける場合はprocmailは必要ありません。
以下はユーザーvideoが受けたメールのうち録画コマンド以外をユーザーtakoに転送する procmailレシピ
(/home/video/.procmailrc)

# keyword is 'yoyaku'
:0
* ^(to|subject):[ ]*yoyaku
| /home/video/mailcommand >> /home/video/mailcommand.log 2>&1
:0
# JIS encoded
* ^subject:.*=.iso-2022-jp.B.(WU9ZQUtV|eW95YWt1|GyRCI1kjTyNZI0EjSyNVGyhC|GyRCI3kjbyN5I2EjayN1GyhC)
| /home/video/mailcommand >> /home/video/mailcommand.log 2>&1

### Default
:0
! tako

procmailが思うように振り分けできていないと思われるときは、procmail_logや /home/video/mailcommand.logを見てレシピに誤りがないか検討してください。

3. テスト

  1. コマンドラインから
  2. メールでコマンドを送る
  3. ユーザー videoではなく、普段使うユーザー、たとえばtakoに戻ります。 コマンドラインからユーザー video宛てにメールを送ってみます。 次のコマンドは録画サーバー上でコマンドラインからメールを送る例です。 件名(Subject)を「yoyaku -v -q」、本文は空で構いません。
    $ mail -s 'yoyaku -v -q' video < /dev/null
    過去の文書で'>'となっていたところ、'<'が正しい。11 Aug 2005 訂正
    tako宛てに返事のメールが届けばOK。 LAN内の別のホストから送ってみたり、 ユーザー video がインターネットからメールを送受信できるよう設定している場合はインターネット経由もテストしてみてください。 様子がおかしければ /home/video/mailcommand.log の中身を覗いてください。

  4. Webインターフェースを使って
  5. 録画ホストの http://localhost/~video/ にブラウザでアクセスしてください。 あるいは http://localhost/~video/index.html です。 http://localhost/~video/debug.html にアクセスするといろいろな情報が得られます。

4. リモートwebインターフェースのインストール(オプション)

録画を実行するホストとは別に、たとえばインターネット上に公開されたホスト上でリモートwebインターフェースを使用することができます。 tvrecがインストールされた(録画)ホスト上にはwebインターフェースが既にあるので、 リモートwebインターフェースは不可欠ではありません。 リモートwebインターフェースをインストールしようとする(リモート)ホストの状況によって 以下のA、B)あるいはC)のうちから選んでください。

  1. RPMが使える場合
  2. リモートホストがRedHat系LinuxなどRPMが使え、あなたがそのホストのroot権限を使えるならば、この方法でインストールすることができます。 tarballをリモートホストにコピーし、その上で次のコマンドを入力してください。
     $ rpm -tb --define web:1 --define region=tokyo tvrecord-*.tar.gz
    Written: ............./RPMS/noarch/tvrecord-web-*.noarch.rpm
    とあるメッセージからnosrc.rpmが作られたディレクトリを知ります。そのディレクトリに入ってroot権限で次のコマンドでインストールします。
    # rpm -Uvh tvrecord-web-.*.noarch.rpm

  3. RPMは使えないがroot権限がある場合
  4. tarballをリモートホストにコピーし、その上で次のコマンドを入力してください。
    $ tar xzf tvrecord-*.tar.gz
    $ cd tvrecord-*
    root権限で
    # make install-web

  5. root権限が無い場合
    1. ファイルの準備
    2. 手もとのホストに tarballをダウンロードし、解凍、そのディレクトリ内でmakewebスクリプトを実行します。
      $ tar xzf tvrecord-*.tar.gz
      $ cd tvrecord-*
      $ ./makeweb
      いくつかの問いに答えると ./web/html ディレクトリが、また場合により./web/cgi ディレクトリもできます。
    3. ファイルのアップロード
    4. さきの操作で作られた./web/html ディレクトリ、また./web/cgi ディレクトリ内のすべてのファイルをリモートホストの適切なディレクトリにアップロードします。

5. リモートwebインターフェースの設定(オプション)

  1. tvrec.conf, modes.conf とchannels.conf
  2. リモートwebインターフェースの設定ファイルは .../cgi-bin/video/tvrec.conf と .../cgi-bin/video/modes.conf(オプション) と.../cgi-bin/video/channels.conf です。パスの最初のほうはリモートホストのシステムにより異なります。これらの設定ファイルは録画ホストの /home/video ディレクトリ内のそれと同一内容であることが望ましいので、録画ホストにあるそれら設定ファイルの必要部分を変更したうえで、それをリモートホストにアップロードするのが良いでしょう。
  3. メールの設定
  4. インターネット上から予約できるためには、メールで送られてくる予約コマンドが録画ホストのtvrecシステムに届くようになっていなければなりません。
  5. .netrc
  6. 録画ホスト上とリモートホスト上の2つのコントロール・テーブルtvrectabを同期させるために、 録画ホスト上でftpクライアントを使用し、リモート・ホストへtvrectabを転送します。 録画ホスト上で/home/video/.netrcファイルの中にリモート・ホストの ftpアカウントおよびパスワードを書いておかねばなりません。 次のようなサンプルがdot.netrcにあります。また manページ「man netrc」を参照してください。 /home/video/.netrc のパーミッションは 600 でなければなりません。
    machine webhost
    	login account
    	password xxxxxxxx
  7. mail.allow
  8. インターネット上から録画予約できるようにした場合はセキュリティのため使用者のメール・アドレスを mail.allowに列挙しておくとよいでしょう。アドレスがここに書かれていないと予約を受付けません。 mail.allowが存在しないかアドレスが書かれていないときは制限なく予約を受け付けます。

6. サポート

分からないことがあればtvrecordのページを覗いてください。 質問はLinux BBSに書き込んでおくと誰かが回答してくれるかもしれません(笑)。

以上