Menat Video Server

menatはLinuxでビデオサーバを構築するためのシェルスクリプトユーティリティ集です。

MPlayerでテレビが視聴可能ならば、/var/menat/public_html以下にhttpdのcgi使用権限を付与する ことで、web上から予約録画、録画ファイルの圧縮、録画ファイルのダウンロード等が可能になります。 インストール後、http://localhost/~menat/index.htmlにアクセスしてみてください。

menat-0.5.10-6pe3.i386.rpm (2009-07-01 Wed  02:10)
menat-0.5.10-6pe3.src.rpm

概要
必須環境
初期設定

menat video server 録画予約について
各設定ファイル
screen shot of menat

概要

menatは、cgiにより録画予約ファイルが作られるとそれをatdに登録します。録画予約ファイル は、/var/menat/hostname/menatに置かれ、終了する と/var/menat/hostname/menat/tmpに移されます。atdから 予約録画が実行されると、キャプチャされたファイル、圧縮後のファイルは、/var/menat/ hostname/vfilesに保存されます。おもにmenat-web.cgiが 予約録画の管理を受け持ち、menat-vs.cgiが録画ファイルを管理しています。

iEPGへの対応は、各地域用のsample fileが用意されていますので、それを適切なディレクトリにコピーすることで可能です。チャンネルの設定 mozilla iEPGプラグインの設定

なお、ここでの設定、説明は、常時稼働のビデオサーバを前提にしています。もし、ビデオサーバの 起動を管理し、その上で予約録画を行いたい場合は、OSより下位の問題に大きく依存するため別な 次元の話になります。

必須環境

MPlayer、xawtv、bash-2.05b以降が必要です。予約録画の登録は、httpdのcgi経由で行われ、atdが 管理するので、それぞれ適当に稼働するよう設定して下さい。

chkconfig menatd on

検証は、Vine Linux 3.1 フルインストールにMPlayer等、少々マルチメディア関係をインストールした環境で行われています。 また、menatはシェルスクリプトオンリーのユーティリティですので、環境差が出ることはあまりない と思われますが、その分、その他の環境に依存しています。MPlayerには、menatのためにしなければ ならない設定などはありませんが、個別の設定が重要なのは当然です。

初期設定

1. ハードウェアの設定
ハードウェアは、xawtvで視聴可能なもの、bt8x8、sa71xxなどを想定しています。/dev/video0(0~3まで4枚の同時使用可)経 由で、xawtv、mplayerによるテレビ視聴が可能な環境を整えてください。また、ハードウェアキャプチャは録画時のオプションを指定することで利 用可能ですが、別途、record-v4l2.pl(ivtv-utils)をインストルールしておく必要があります。

2. menatdの設定
まず、予約登録を監視するmenatdを起動時に動作するよう設定します。httpdやatd同様にntsysvなど で登録してください。

予約登録情報の管理は予約登録の変更時に 行えば事足り、常駐管理するのは冗長に思われますが、これはmenatがcgi経由での予約登録のみを 想定しているわけではないからです。menatのポリシーとして予約登録は、対象ディレクトリに適切な ファイルをコピーするだけで完了します。ファイルが削除されれば、その予約登録も削除されます。

3. cgiの設定
また、ユーザmenatにはcgiの使用権限が必要です。menatのホームディレクトリは/var/menatで、html、cgiは、 /var/menat/public_htmlにありますので、そのディレクトリ以下でのcgiを許可してください。

apacheの場合、/etc/httpd/conf/httpd.confに

<Directory /var/menat/public_html>
     AllowOverride All
     Options +ExecCGI +Includes FollwSymLinks
</Directory>

のような設定を加え、

#AddHandler cgi-script .cgi

の#を取り除きます。

AddHandler cgi-script .cgi

httpdは、menatと同様の権限で動作します。セキュリティを 気にする場合は、menat以外にcgiの権限を与えないことをお薦めします。

4. PAMの設定
多くの場合、/dev/video*等のデバイスファイルのオーナーはコンソールユーザになります。つまり、ログインせずにatdから自動で予約録画を実行しようとすると実行者(menat)が コンソールユーザではないため、パーミッションではじかれます。また、コンソールからloginしたユーザがいる場合、デバイスファイルのオーナーはそのユーザになるので、やはり、パーミッションではじかれます。

menatが各デバイスファイルに正常にアクセスできるよう、/etc/security/console.perms(または、 /etc/security/console.perms.d/50-default.perms)の<sound>、< v4l>の行を以下のようにしてください。

<console>  0666 <sound>      0660 root.menat
<console>  0666 <v4l>        0660 root.menat

5. sudoの設定
予約登録は、デフォルトで10分毎に更新されますが、web上から任意に予約登録の更新を実行したい場合には、httpd(apache)に適切な権限が必要です。/etc/sudoersに下記の一行を 加えてください。

%menat ALL=NOPASSWD: /bin/su - menat -c /var/menat/bin/menat-sad.sh menat*

menatにシャットダウンさせたい場合は、その権限も必要です。

%menat ALL= NOPASSWD: /sbin/shutdown -h now

6. グループエントリ・ディレクトリパーミッション

rpmでインストールした場合、グループエントリ、ディレクトリのパーミッション等はすでに設定されている と思いますが、挙動がおかしなときは以下を確かめて下さい。

/etc/passwdにmenatを加え

menat:x:1003:1003::/var/menat:/bin/bash (1003は任意)

/etc/groupで、apacheをmenatグループに加えます。

menat:x:1003:apache (1003は任意)

/var/menat/public_html、/var/menat/{video server名、デフォルトはlocalhost}以下のディレクトリ をuser.group menat.menat(root.menat)で775に設定します。



不具合、ご質問、ご意見等は、こちらまで。
yoshino@rita.karing.jp
http://www.karing.jp/~yoshino/menat/
http://www.karing.jp/~yoshino/


menat-0.5.10 2007-03-20