Wednesday, June 23, 2010

player.pl 派生版 100623

インクリメンタルサーチ版、やはり問題があって「時間を指定して番組抽出」と「番組表から検索して抽出」の'Day'のオプションが空になってしまっていたため、修正した。
  1. onLoad まわりを変更。(上の問題の解決のため)
  2. define.pl 内で $isearch を設定することで、インクリメンタルサーチをON/OFF するようにした。
  3. インクリメンタルサーチ用の大きなデータをhtmlの最後の方で読み込んで、番組表の表示を先にして、読み込みが遅いのをわかりにくくした。
  4. 「■番組検索 」と「インクリメンタル検索」ボタンを同じ行にした。
同梱の isearch.pl を player.pl と同じフォルダに置くこと。
define.pl の311氏関連のあたりに $isearch が加わっていることに注意。

Monday, June 21, 2010

player.pl 派生版 100620 および 331氏インクリメンタルサーチ統合

player.pl 派生版
  1. css を分離して css/player.css からロードするようにした。
    試してみる人は、同梱のcss/player.css を設置するのを忘れないように。
  2. $ShotE が設定されていない場合は autostart を指定して即再生スタートするようにした。
  3. 画面ショットは thm.pl で作成するので、player.pl内の画面ショット作成を削除した。
さらに331氏のインクリメンタルサーチをマージした player-is.pl を作ってみた。
面白いけど、データベース中のすべての番組情報を投げてくるので、読み込みが遅い。
また、ただただ放り込んだだけなので、何かまずいことになるかも。
ドキュメントを付けていないので、以下に設置法の説明を。
  1. 331氏のインクリメンタルサーチ単体を動くようにする。
  2. player-is.pl を player.pl と同じところに置くか、player.pl と入れ替える。
  3. $OpenNewWindow=1; にしている人は js/suggest.js を 同梱の suggest.txt にしたがって変更する。(suggest.js のライセンスがわからなかったので)
  4. 試用ではなくまじめに使う人は一時間に一度 create_inc.pl を実行する。
検索窓の開閉は手動でボタンを押してください。

# suggest.data.item.js をダイナミックに生成する方法も試したけど、やたら時間がかかるのでやめた。 番組表で表示している時間だけを検索対称にするとちょっと速くなるかもしれない。

Friday, June 18, 2010

player.pl 派生版 100619

player.pl 差し替え版、SQLite対応版が本家に吸収されたので、ここでの改造は派生版。
  1. データベースに持っている情報なので、定数 @iepg_chan を使わないようにした。
  2. サブルーチン内サブルーチンになっていたdummy_program を外に出した。
  3. mp4ファイルがある場合、番組表にその旨アイコン表示することにした。クリックでダウンロード。
  4. 「時間を指定して番組抽出」でも再生ウインドウで番組名等を表示するようにした。(首都圏以外ユーザがlivegraph_new.htmで再生する場合、番組名で、全国放送かどうか判断するため)
  • img/mp4.gif, img/ipod.gif が必要。アイコン例をダウンロードして使用するか、自分で用意すること。
shrinkdb.pl 修正
  1. da_ganre に番組から参照されないゴミが入る場合があるので削除するようにした。
  2. 未来のゴミ番組が登録されてしまう場合があるので削除するようにした。
しっかり受信できている方には関係ないです。試す場合はデータベースファイルのバックアップをとってからにしてください。失敗して再構築するのは1日仕事ですからね。(やっちまった)

例によってwindows用だがWindowsでの使用は自信なし。プログラム使用による被害は補償しかねる。
こちらから

playre.pl SQLite対応版はoneseg24forLinuxのepg.cgiplyer.pl差し替え版のマージです。

Thursday, June 10, 2010

player.pl 差し替え版の高速化

SQLite 対応版がメインストリームに吸収されてから、動作が遅いということがばれて、どうしたものかと思っている間もなくP差し替え中の人が速くしてくれました。perl の switch はやたら遅いらしい。
それでもまだATOM330で3~4秒かかるということで、チャンネルごとに取得していた番組情報を一度に取得するようにしてみました。チャンネル数+1回のクエリが2回になった分速くなるようです。ただし、すでに1秒ぐらいで動作する環境をお持ちの御大尽には効果ありません。
player.pl windows用だけですが、こちらから。

# MSNクイックハック版を使っていたので、遅いとか気がつかなかった。
追記:メインストリームにマージされましたので、削除しました。

Thursday, June 3, 2010

thm.pl SQLite対応版

油断している間にmsnがiEPGサービス終了し、player.pl差し替え版が使えなくなったようです。
で、あれよあれよ言う間にSQLite版がメインストリームに組み込まれたようで、サムネイルやら勢いグラフやらがマージされたようです。
それではthm.plのSQLite対応版が要りますね、とおもって書いてみたのですが、すでにできているようで二番煎じになりました。
でも、せっかく書いたのでこちらで
使い方
define.plの場所とsegwrapper.pmの場所を指定する必要があります。
サムネイルのサイズは$thm_sizeで指定。
$all_in_db を0以外にするとデータベース内にある番組全てのサムネイルを作ろうとします。
define.pl内の$ShotSは5秒単位で指定するのがよいでしょう。

改変、再配布自由、自己責任で使用ください。windowsで動くかは不明。
追記、使用する ffmpegによっては動くかもしれないけど、基本WINDOWSでは動かないそうです。

データベース開けっ放しをやめた。6/3版
broken pipe の処理を変更した。(速くなった)6/3_2版
binmodeが要るらしかったので付けた。6/4版

Thursday, March 4, 2010

TSConverter patch の bug

以前 TSConverter のUNIX系パッチは linux(debian/lenny) ではセグメンテーション違反で落ちるというコメントがあった。
最近、coLinux で lenny を動かしてみたので、コメントにあったように _file を _fileno に変更し、コンパイルして試してみると確かに落ちる。コマンドラインオプションの処理がいい加減だったため、ファイル名を指定しないと strncpy に NULL ポインタが渡され落ちるようだ。
もしやと思い FreeBSD でもファイル名を指定しないで動かしてみると、落ちた。なぜ気づかない!!!かなり荒っぽく移植したものの、はずかし。
ご使用中の皆さんは、気になるようなら argv[optid] が NULL なら文句言って終了するようにしておいてください。

strncpy(mp4boxpath,pt,PATH_MAX);
+ if(argv[optind]==NULL){
+ fprintf(stderr,"no input file\n");
+ exit(-1);
+ }
strncpy(lpFile,argv[optind],PATH_MAX);
- if(strlen(lpFile)==0){
- fprintf(stderr,"no input file\n");
- exit(-1);
- }

そのうちパッチファイルを9/1版にするときにこっそり修正しておきます。

ファイル名さえ指定すれば lenny でも動いたんですけど、どこか他にも問題あるんでしょうかね?

Tuesday, March 2, 2010

rec.pl フルセグストリーム対応(多分)

recBone.exe をフルセグチューナーで使ってみた人がいたらしい。
フルセグストリームでも perlrtmp は pid 0x1FC8 の PMT からストリームの PID を探してきてビデオとオーディオを送信してくれそうなものだが、多分 IDX ファイルのポインタの方が long 型を超えてしまうので、正しく動作しないようだ。
そんな人のために OneSeg24forLinux 付属の rec.pl を改造してフルセグストリームからワンセグ関連のみ抽出して IDX ファイルと共に保存するパッチを作ってみた。
ついでに、来るべきフルセグ野郎時代のために、フルセグ野郎 IDX 形式勝手に暫定版対応を行った。
IDX ファイルはポインタのビット数を増やすか、TS ファイルを1時間より短くして、IDX はそのままなど、やりかたはいろいろ考えられるが、勝手に暫定版ではファイルポインタではなく、パケット数を記録して、ビット数を増やさず、 TS も1時間のまま。188倍すればオリジナル IDX と同様に使用可能とした。
使用方法は rec.pl と同様。デフォルトでワンセグ野郎形式で保存 -f オプションでフルセグ野郎形式も同時に記録するという改造を行った。当然ながらフルセグ野郎形式対応ソフトは存在しない。
recFS.patch
ただ残念ながら、現在フルセグストリームを取り出す環境がないので...
recBoneFS.exe はまたの機会に。ってどっちも需要ないか。

Monday, February 22, 2010

nanHDR



HDR:ハイダイナミックレンジの光と影経由で知ったHDR_nonbeさんのnanHDRのまねをして
1) jpeg画像をHLS変換して、L画像をグレイスケールjpegとして取り出すプログラム。
2) jpeg画像をHLS変換して、グレイスケールjpeg画像の値をLとして用いたカラー画像を作成するプログラム。
を作ってみた。1で作ったグレイスケール画像をなんとかしてメリハリをつけて2に入れればHDR風の画像になるはず。なかなかいい感じにメリハリをつけられなかったので。
3) 画像中の100x100の窓内をヒストグラム平坦化により値を変換し、この窓を画像全体に1ドットづつ動かして、すべての窓で出された値を平均する。というプログラムをつくってみた。この絵で3分ほどかかる。
これでできたグレイスケールjpeg画像を2に入れてみると、なにかHDRっぽい画像が出てきた。
海や空がひどいことになっている、まだまだ調整が必要か。

Friday, February 19, 2010

delipodcastのmodify

前に書いたdelipodcastでも見えないpodcastがあったので、delipodcast.plの104行目を
my $iPod_main_pl = $iPod->PlayLists->Item($iPod->PlayLists->Count());

に変更した。
iTunesのSDKをよく読んでないのでよくわからないが、一応見えるようになって、うまく削除できた。

Thursday, February 4, 2010

iTunesのバグ

現在のWindows版iTunesでは、iPodに手動でPodcastを追加すると、取り外して再生後、再びiPodを接続しても、iTunesから見えなくなり、削除できなくなるというバグがあるようだ。(私の環境だけか?)
iPod上では大量のPodcastがたまっているのに、iTunesからは何も無いように見える。
検索してみると
http://forums.ilounge.com/showthread.php?t=176755
を発見。iric氏のdelipodcastを使えば、iTunesからみえなくなったファイルとエントリを削除できた。
Windowsコマンドラインツールだが日本語表示もOK.
# iric氏が2006年Appleに通報済みだが、昨日公開のWindows版 iTunes-9.0.3.15 でも未解決っぽい。
# あるいは、再発か? 環境によるのか? そういえば前の iPod nano 3rd のときはこんなこと無かったような気が...

Sunday, January 17, 2010

ワンセグチューナー用BonDriverで24時間ワンセグ野郎

recBone
# OneSeg24 for Linux の rec.pl の移植 BonDriver oneseg版使用。

player.pl sqlite対応版のオマケとして添付していたBonTsDumpが使いにくいということで、誰かがGUIの使いやすいプログラムを公開してくれるまでのつなぎとして、rec.plとBonTsDumpをくっつけたプログラムを作りました。 (Windowsに疎いのでCUIです)

24時間ワンセグ野郎形式のTSファイルとIDXファイルを1チャンネル分だけ作成します。
複数チャンネルで使用する場合は複数起動してください。
VGA_TV1Sタイプのチューナーしか持っていませんので、他のもので動くかどうかは知りません。
MonstarTV 1DR とか DT-007V でも使えるようでしたらお知らせください。

録画するだけですから、古いファイルを消していく機能はありません。放っておくと、ハードディスクが満タンになります。タイムスタンプを見てファイルを削除するようなプログラムを併用してください。
さっきちょっと検索してみたら fdel とかありましたが、サブディレクトリも削除してくれるのでしょうか。