Friday, October 9, 2009

エナクルの前照灯、球切れ。


理想の「シティーコミューター」、サンヨーエナクルのヘッドライトが球切れした。これで2度目。
最初に切れたとき、調べてみたところ24V5WのE10は、エナクル純正以外ではなかなか手に入らないらしい。
仕方なく、応急でパイロットライト用電球をマルツで買った。E10の口金のパイロットライトで24V用は0.11Aでヘッドライト用には、さすがに暗いと思い、18V,0.11Aを試した、2個で150円程。
純正品より少し明るくなったので、すぐ切れるだろうと思っていたが、球が当たりだったのか、結局そのまま一年以上。今回はその残りの1個と交換。今回も一年以上使えるだろうか。

Wednesday, September 30, 2009

アクセシビリティ、または24時間ワンセグ野郎字幕対応

jw flv player のページを見ていて、プラグインで字幕を表示できることを知った。
字幕 xml ファイルを用意して試してみると、UTF-8 を用いれば日本語も問題ないようだ。
正攻法では、ぱぱネット(仮)様製作によるdumpeitを改造して、標準入力からTSファイルを流し込むと字幕XMLを吐くプログラムをつくり、segwrapper.pmで切り出したTSファイルを流し込むというところだろうが、根性と技術の問題で断念。

dumpeitをそのまま使い、TSファイルから前もってSUBファイルを作成しておく。
一時間に一度TSファイルを処理するようにしておくとよいでしょう。EITファイルは不要。
caption.plにファイル名を渡してキャプションを受け取るようにplaye.pl差し替え版を改造。
改造箇所は、
print "s1.addParam('flashvars','file=$request.flv&streamer=rtmp://$ENV{'SERVER_NAME'}/vod&fullscreen=true&plugins=captions-1&captions.file=caption.pl?file=$request.xml');\n"
みたいなところ、何箇所かある、いつも使っている部分だけでもOK、どこを使っているかわからない人は全部書き加える。

caption.pl はここ。 caption.090930.pl を caption.pl と改名して、player.plと同じディレクトリにおく。
caption.pl の最初のほうの設定を環境に合わせて変更する。
  • $TSFOLDER : SUBファイルの置き場所
  • $Tadj : 字幕表示開始時刻の調整
  • windowsの人はパス名の/を\にするなどの工夫が必要。($TSFOLDERと$subfileのところ)

時間跨ぎ、日付跨ぎなどは、未確認。
字幕表示時間は有無を言わせず5秒。
同一時刻の字幕は行を増やして表示。
# 日付跨ぎ字幕番組を発見してちょっと試してみたらだめだった。
# 多分サブルーチンで手抜きをしたのが原因。
# 軽く修正 090930a版
# mod_perlを使っていない人はCGI.pmがやたら重いらしいのでCGI.pmを省いた。
# さらに修正、および特殊文字の辞書ファイルを用いるように改変091001版
# SUBファイルの途中から番組が開始する場合、頭のほうを読み飛ばせない問題を修正.091001a版
# さらに修正091002版

Saturday, September 26, 2009

Thursday, September 24, 2009

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

もうそろそろ安定でしょうか。
ジャンル検索の複数条件をORで結んでいるがANDにするか思案中。
-090924-
streamdisp() からのファイルダウンロード時に、ファイル名にアイコン名などが入る問題を修正。
地味にジャンル検索を変更。
ActivePerl 5.10.0 build 1004 以前ではうまく動かない可能性があるようです。
DBD-Sqlite を1.25に上げてみて、それでもだめなら ActivePerl 5.10.0 build 1005 以上を使ってみてください。


090924a 版

# 番組内容のアイコンが表示されない問題をこっそり直した。
# アイコン名をこっそり変更した。
# define.plのアイコン辞書もこっそり一文字変更した。

090924b版
# 検索結果の番組詳細でアイコンが出なかった問題を修正
## 上記は修正されていなかった。

segwrapper.pm の脱 inverse_julian_day 化

player.pl 差し替え版から呼び出される segwrapper.pm はTime-modules の inverse_julian_day を使うため、ActivePerlで使う場合にややこしい手続きが必要らしい。
OneSeg24ForLinux の rec.pl の一部を移植して脱 inverse_julian_day できるはず。

*** segwrapper.pm.orig Wed Sep 23 00:00:00 2009
--- segwrapper.pm Wed Sep 23 00:00:01 2009
***************
*** 4,10 ****

use strict;
use Time::Local;
! use Time::JulianDay;
use Fcntl;


--- 4,10 ----

use strict;
use Time::Local;
! #use Time::JulianDay;
use Fcntl;


***************
*** 37,43 ****
my $totcode = shift;
my($mjd,$y,$m,$d,$h,$n,$s,$ch,$cn,$cs);
($mjd,$ch,$cn,$cs) = unpack("nCCC",$totcode);
! ($y,$m,$d) = inverse_julian_day($mjd+2400000.5+1); # @@@ +1?
$h = (($ch >> 4) & 0x0F) * 10 + ($ch & 0x0F);
$n = (($cn >> 4) & 0x0F) * 10 + ($cn & 0x0F);
$s = (($cs >> 4) & 0x0F) * 10 + ($cs & 0x0F);
--- 37,54 ----
my $totcode = shift;
my($mjd,$y,$m,$d,$h,$n,$s,$ch,$cn,$cs);
($mjd,$ch,$cn,$cs) = unpack("nCCC",$totcode);
! # ($y,$m,$d) = inverse_julian_day($mjd+2400000.5+1); # @@@ +1?
!
! $y = int(($mjd - 15078.2) / 365.25);
! $m = int(($mjd - 14956.1 - int($y * 365.25)) / 30.6001);
! $d = int($mjd - 14956 - int($y * 365.25) - int($m * 30.6001));
! if (13 < $m) {
! $y = $y + 1;
! $m = $m - 12;
! }
! $y = $y + 1900;
! $m = $m - 1;
!
$h = (($ch >> 4) & 0x0F) * 10 + ($ch & 0x0F);
$n = (($cn >> 4) & 0x0F) * 10 + ($cn & 0x0F);
$s = (($cs >> 4) & 0x0F) * 10 + ($cs & 0x0F);

Wednesday, September 23, 2009

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

寝る前までの修正 こちら
-090923-
<player.pl>
【ほげ】をすべてアイコンに変換する野望は捨てた。
system()が残っていたので、Win32::Process::Create()に戻した.
放送局名をgoogleのI'm Feeling Lucky機能にリンクした。
番組表をキャッシュするようにした.
- 当日はキャッシュしない.
- Cacheファイルは放送日のタイムスタンプが付くので, define.pl の $ExpireCache を ($start_date-2)*24 にすると、丁度,最初の日以前をexpireする。
表の最後を揃えて放送局名を入れた。
<defin.pl>
「絵」アイコン追加。icon_e_b.gif
「SS」アイコン追加。icon_ss_b.gif
「シリーズ構成」アイコン追加。icon_kousei_b.gif
「終」アイコン追加。icon_end_b.gif
「声の出演」を「声」アイコンに関連付け。
「リポーター」アイコンを変更。
キャッシュ化に伴い$ExpireCache = ($start_date-2)*24;に。
<omake/ts_epg.pl>
ts_proc.pl はパイプを使うのでepg.plを改造して
直接ファイルを読んで処理するようにした。
キャッシュ化したので、設定を変更した場合はcache\の内容を削除することを忘れずに。
ジャンル検索でSQLのエラーが出ることがあるようですが、いまのところ原因不明。

Sunday, September 20, 2009

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

-090920-
$startHを跨ぐ番組を表頭にも表示するようにした。