Saturday, September 19, 2009

player.pl差し替え版sqlite3対応版090919

寝る前までの修正。
-090919-
$startHを跨ぐ番組が表示されない問題の修正。(epg.cgiのせいではなく、改造時のエンバグだった。)
本家09/14版から、
streamdisp_mobileでmp4ダウンロードできるようにした。
海の日の修正。
-090918-
検索での時刻指定に関するバグ修正。
ts_proc.plのTSファイル名生成に関するバグ修正。

Thursday, September 17, 2009

player.pl差し替え版sqlite3対応版一応公開

player.pl差し替え版の作者の方が、スクリプトに手を入れることを歓迎ということで、手を入れて無茶苦茶にしてしまったスクリプトをきれいにしてくれる人歓迎ということで、公開してみることにした。こちら。

player.pl sqlite対応版

player.pl 差し替え版に OneSeg24forLinux の epg.cgiの番組表生成部を移植しました。
どうしてうごいているのか分からないほどのスパゲッティになりましたが、
一応、Unix系では普段使うところは動いています。
windows用に書き戻しましたが、作成者はwindowsで使用していません。
windowsで動かすのに必要な事項が抜け落ちている可能性がありますので、
なんとか対応して結果を知らせてください。

Wednesday, September 16, 2009

ニッカンスポーツコムの番組表終了

ニッカンスポーツコムのテレビ番組表が9月末で終了するらしい。
player.pl差し替え版が使えなくなるので、あわててサボっていたepg.cgiに検索、エンコード機能を付加しようと思ったが、player.pl差し替え版をsqlite対応にすることにした。(そのほうが楽そうだったから)
どうして動いているのかわからないほどのスパゲッティ具合だが、普段使うところは完成! と思ったらplayer.pl差し替え版がMSN TVに対応したようで、またMSN TVが使えなくなるまでは放置。
sqlite版の弱点は受信状態が悪いと番組表が阿鼻叫喚の地獄絵図となること。
また、ニッカンのジャンル分けとワンセグ放送付加情報のジャンル分けが少々異なっているので混乱する。ニッカンの「バラエティ」の「バラエティ」って何?
ニッカンでは「趣味・教育」で「旅」と「釣り」が分かれているがワンセグでは「旅・釣り・アウトドア」となっている。「歴史」「科学」はワンセグにはなく「ドキュメンタリー」の方に「宇宙・科学・医学」と「歴史・紀行」がある、ただし「歴史・紀行」はニッカンの「ドキュメンタリー」にも存在する。などややこしい。

# これを機会にデータベースファイルの古い情報を消去するスクリプトも書いた。

#!/usr/bin/perl
use DBI;
$start_date = 28;
@tm = localtime(time-86400*($start_date-1)-3600);
$timestring = sprintf("%04d-%02d-%02d %02d:00:00",$tm[5]+1900,$tm[4]+1,$tm[3],$tm[2]);
my $dsn = 'DBI:SQLite:dbname=/media/disk/oneseg24/epg.db';
my $dbh = DBI->connect($dsn, undef, undef, {RaiseError => 1, AutoCommit => 1});
$dbh->do("delete from da_genre where dv_id IN (select dv_id from da_event where dv_start_time < '$timestring')");
$dbh->do("delete from da_event where dv_start_time < '$timestring'");
$dbh->do("vacuum");
$dbh->disconnect();

Wednesday, September 2, 2009

TSConverter_9_01

テルミンさんのTSConverterがバージョンアップ。0426版のパッチがリジェクトなしで当たったが、重要な変更がコメントアウトしてしまったコード内にあるかもしれないので不安。一応動いたが、不具合に遭遇していないのでなんとも。

Friday, August 28, 2009

ぱぱネット(仮)さんのperlrtmp改造

perlrtmpに複数から使用していて、一方が無線LANで通信が滞りがちになると、他方の接続にも影響する。
なので、perlrtmpをinetd対応に改造しようかと思っていたところ、ぱぱネット(仮)様が、接続ごとに子プロセスに分ける改造をされていたので、いただいた。多謝。
その他にもいろいろ改造されたようだが、とりあえず子プロセスの部分だけ頂くことに。必要なのはperlrtmp.pl のみ。これを少々書き換えてserver.plとして使用すると、一方の接続の停滞に影響されないようになったようだ。いまのところゾンビも発生せずうまくいっている。多分接続数増加への耐性も上がっているだろう。

--- perlrtmp.pl 2009-07-25 09:51:05.000000000 +0900
+++ server.pl 2009-08-28 23:46:31.000000000 +0900
@@ -8,15 +8,14 @@
use POSIX ":sys_wait_h";

my $dir = $ARGV[0];
-my $port = $ARGV[1];
-my $dbn = $ARGV[2];

-if ($dir eq '' || $port eq '') {
- die "Usage: $0 <document> <server> <session>\n";
+if ($dir eq '') {
+ die "Usage: $0 <document>\n";
} else {
$dir =~ s/\/$//;
}

+my $port = '1935';
my $lsn = new IO::Socket::INET(Listen => 1, LocalPort => $port, Reuse => 1) or die;
my $sel = new IO::Select($lsn);

@@ -31,7 +30,7 @@
warn "[socket] connect from ", $new->peerhost, "\n";
$pidtable{$pid} = 1;
} elsif (defined $pid) {
- my $rtmp = RTMP->new($new, $dir, $dbn);
+ my $rtmp = RTMP->new($new, $dir);
my $cosel = new IO::Select($new);

while (1) {

Sunday, August 23, 2009

1.5TB HDD

USB接続している1.5TB-HDDがスピンアップしなくなった。別マシンに直接つなぐとスピンアップしたが、fsckでエラー。調子の悪いハードでいろいろ書き換えるのは怖いので別HDDにddでコピー。デフォルトのbs=512だったこともあり、5日と10時間かかった。恐るべし、テラバイト時代。

Monday, August 10, 2009

perlrtmpバージョンアップとBonDriver対応ワンセグチューナー

  1. perlrtmpがflashplayer10のバージョンアップに伴いバージョンアップしたようです。入れ替えるだけでOK. なんらかの都合でlib/segwrapper.pmを使用している人はコピーしておくことを忘れずに。
  2. BonDriver対応のワンセグチューナーをたまたま持っていたのでWindowsでts.pl,rec.plを使って「ワンセグ野郎形式」ファイルをつくってみた。オリジナルよりサイズがちょっと大きくなるけどperlrtmpで使用できた(BonDriverが何かを加えているらしい)。 Windowsではパイプの処理をCMD.EXEが担当するようで、ts.plからbonDriverを使ってtsを吐くプログラムを動かすとDOS窓がチューナー分開いたままになるのが不細工。CMD.EXE互換で窓を開かないプログラムはないものか。