タグ: 映像
非常に分かりにくいタイトルですが、ちとバグらしきものを発見したのでメモ。
flvをstreamingする要素を内部にもったMovieClipをキャプチャしてbitmapデータにdrawする場合に、netconnection(もしくはnetstream?)が接続完了、もしくはbuffer fullになっていない場合bitmapデータがdrawできないっぽい。これlocalだと再現しなかったりして非常に分かりにくいのだけど、ストリーミングサーバの反応が悪い、もしくはplay前にnetconnectionやnetstreamだけを確立した状態でホールドしている場合にこの現象がおきます。今のところ完全な回避策は見出せてないのだけど、できるだけその隙間の時間を少なくするような構造にして対応するような感じかなあと思います。
今後この辺ビデオコンテンツが多くなって、インターフェイスを絡み始めたりすると、bitmapデータで負荷軽減とかやることが多くなりそうなので結構引っかかる部分になるかもしれませぬ。
ということでメモ。なんか具体的な回避案とか知ってる人がいたら教えてくださいませ。
キャプチャ映像の自動的な初期化にはまり中。
何かが映っているとして、それが背景なのか移動物なのかの判断ができない(;´Д`)時系列におけるそのポイントの色情報を丸めて背景色として取得するようにしているけど、なんか微妙にうまくいかない(色がマイナスになったりする)16進数演算って普通にできないんだっけ?
この辺の仕組みとして多分楽なのはマニュアルで何も映っていない初期化の状態で映像をキャプチャ。そのビットマップデータをベースにしてリアルの映像との差分を取得。閾値設定して抽出範囲を設定ってカタチ。ただマニュアルでイニシャライズってのが鬼門。他にも映っているものの時系列における関係性とか取得できるのか?(密なグリッドで各点の色変異から全体としての領域の移動とかは算出できると思うけど、すげえ重そう。他にうまいロジックあるような気がする。)
しかしキャプチャした映像って思った以上に地味な色。現実世界にはPCの中の要素のような彩度の高いものって存在しないなぁ。(あったとしてもくすむのか?)