2004-09-23

_ GV-MVP/RX のコントロールについて


さて、どうすれば Linux で このカードが使用できるようになるかは [ ここ ]を参照していただくとして
問題となるのは、いかにして PHP から制御するかという点です。
たとえば mencoder を制御する場合には、PHP で
exec("mencoder .........");
とするだけで録画できたわけですが、record-v4l2.pl の場合には作動しません。
そこで、rec.sh という、超簡単な shellscript で検証してみます。
#! /bin/sh
 
# $1 channel
# $2 record second
# $3 filename
 
/usr/local/bin/record-v4l2.pl -c $1 -t $2 -i 6 -f ntsc-bcast-jp --output-settings 0 --directory-form
at "" -o $3
$ chmod 755 で実行権を与え、
$ ./rec.sh 9 60 test.mpg
としてみます。9チャンネルを 60秒間録画し、test.mpg が作成されることが確認できます。
これが PHP で、
exec("/hogehoge/rec.sh $channel $rec_sec $filename");
となると動かないわけです。
;; /etc/php.ini で register_globals = On で変数の内容を保持していますが (^^;

_ tadachiさんからのアドバイス


Linux で録画に興味を持つ者の間では、「ぱ研」の Komoriya氏と並ぶ 有名な方です。
ITVC16-STVLP 用のドライバを書かれた方、という認識でよろしいのでしょうか。
Linuxで最強のテレビ録画サーバを目指す【2】-ハードウエアMPEG2キャプチャ-
Asus Terminator 活用メモ
を公開されてます。
さて、「もしかしたら"~/.ivtvrc"が無いからかも」とご指摘をいただいたのですが、存在してました。
[defaults]
MSPSleep=2
GOPClosure=1
OutputSettings=1
DNRSpatial=0
VideoStandard=NTSC
AudioBitmask=233
BFrames=3
InputName=Tuner 0
:
以下略
という記述がみられます。 さて、次の
また,CGI等で動かす際には$HOMEを環境変数で持ってないと...
ということですが、 環境変数とは、なんぞや?と調べてみましたが、
$ printenv
:
HOME=/home/video
:
作業をしているユーザ video についての $HOME は定義されてるようですし、何か他に見落としがあるのかしら ?

_ PHP で record-v4l2.pl を動作させる


tadachiさんのアドバイスは、的確でした。
一度だまされたと思って,"/"に作業用ユーザの所にある
".ivtvrc"をコピーして試してみてくださいまし.
これで動くようになったら,やはり$HOMEの問題です.
との通り、
# cd /
# cp /home/video/.ivtvrc . 
とすると、あっさり録画できてしまいました。
$filename = trim(`date +%y%m%d_%H:%M.mpg`);
exec("sudo cp /home/video/.ivtvrc /");
exec("/hogehoge/rec.sh $channel $rec_sec $filename");
という、実に凶悪な方法ですけど。(いずれ修正していきます)。
まだ録画が完了しないと、form 先の画面に移遷しないとか不思議な現象は見られますが...
これも、少しづつ修正していきます。
exec("/usr/local/bin/record-v4l2.pl -c $channel -t $rec_sec -i 6 -f ntsc-bcast-jp --output-settings 0 --directory-format \"\" -o $filename");
とすると、録画されない模様。

_ お昼


ちびどもを連れて、めずらしく[ こんなのやら ][ こんなのを ] 頬ばってみたり。
カロリーオーバー杉。やっぱ、[ これ ] が一番好きだなぁ... と感じる 今日この頃。

_ [DVD] スター・ウォーズ トリロジー DVD-BOX 到着


EPISODE IV エンディングの「王座の間とエンドタイトル」懐かしく聴けました。
26年ぶりです。つい昨日のことのようです。

_ 電車男の生ログ購読方法

電車男を生ログで読むために、どの過去ログをどのスレをどの順番で読めばいいのか書いてあったので、コピペします
 
よりいっそう臨場感を味わえます
2ちゃんならではの、煽り罵倒も含まれています
中の人編集のように優しい人ばかりではありません(これが一番重要かも)
これが本当に2ちゃんらしいといえましょうか(笑)
 
では、どうぞ
「1が外出先から帰ったら大変なことになってるスレ」731から開始。
step1 : http://sunrise-sunset.seesaa.net/article/619004.html
step2 : http://sunrise-sunset.seesaa.net/article/634635.html

「アパーム、弾持って来い」は、プライベートライアンの台詞だったのか。

...
dat落ちして読めなくなる前に、ローカルに保存して固めておきました。
;; それでもスレ一つが消失していました。
http://www.grn.janis.or.jp/~ysuzuki/tdiary/densha.lzh( 2.65MB )
を取得してください。読む順番は、README1 及び README2 をご覧ください。
生ログですので、29スレ x 1,000 = 29,000 程あります。
編集されていないだけリアルではあります。
;; あぁ、暇人か > 自分

本日のツッコミ(全4件) [ツッコミを入れる]
# tadachi (2004-09-23 20:38)

確信を深めました(^^;
一度だまされたと思って,"/"に作業用ユーザの所にある".ivtvrc"をコピーして試してみてくださいまし.これで動くようになったら,やはり$HOMEの問題です.解決策としては,スクリプトに"export HOME=どこそこ"みたいな感じで".ivtvrc"が置かれているディレクトリを指定し,その後でrecord-v4l2を動かすようにすれば良いかと思います.(PHPベースで動かすとしたら,スクリプトはapacheの権限で動くと思うので,たとえば/home/httpdとかかな)

PHPはあまり詳しくないのですが,
<?php
phpinfo();
?>
をブラウザで見てみて,"Environment"の"HOME"を見てみてくださいまし.PHP側でこの環境変数を変更すれば,実際にスクリプトに渡される値も変わるのかもしれません.

#ドライバソースを tadachi でgrepすると,私の悪戦苦闘の様が垣間見られるかも(^;

# Yuyang (2004-09-23 20:57)

生ログは読んだことがなかったので嬉しいです。
会社でコッソリ読んでみます。

# すずき (2004-09-23 22:53)

# cd /
# cp /home/video/.ivtvrc .
で PHP から録画できました。
tadachiさん、ありがとうございます。最初の一歩が踏み出せました。

# すずき (2004-09-23 23:35)

生ログは、分量 凄杉です。ちと辛かったです。あはは。

[]