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版

No comments: