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は、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/