.setMode メソッド( flash webcamの入力解像度をActionScriptで操作する。)
flashを使ってwebcamで映像を入力するといつも汚くなって困ってしまっていた。
いろいろしらべていたら Camera オブジェクトの .setMode()メソッドで入力解像度を操作できることを知った。
メソッドの使い方は
public setMode([width:Number], [height:Number], [fps:Number], [favorArea:Boolean]) : Voidパラメータ
width:Number (オプション) - 必要なキャプチャの幅 (ピクセル単位)。デフォルト値は 160 です。
height:Number (オプション) - 必要なキャプチャの高さ (ピクセル単位)。デフォルト値は 120 です。
fps:Number (オプション) - 必要なデータキャプチャレート (1 秒あたりのフレーム数)。デフォルト値は 15 です。
favorArea:Boolean (オプション) - 指定要件に合うネイティブモードがカメラにない場合に、幅、高さ、フレームレートをどのように操作するかを指定するブール値。デフォルト値は true で、キャプチャサイズを維持することを示します。このパラメータを使用すると、width 値と height 値に最も近いモードが選択されます。ただし、これによりフレームレートが低下し、パフォーマンスに悪影響を及ぼすことがあります。カメラの高さと幅よりも最大フレームレートを優先するには、favorArea パラメータに false を指定します。
とあったので、.setMode()メソッドを使った簡単なサンプルをつくって、早速実験してみた。
.setMode()メソッド検証用SWF -- flashplayer8以上,webcam必須
※使用しているWEBCAMによっては最大解像度がそれぞれ違うので、640 x 480 以上は表示できない場合あり。
.setMode()メソッドをつかって、それぞれ 160 x 120 、1280 x 960 の解像度でキャプチャーしてみた。画面の出力は640 x 480 で固定。
![]()
flashのデフォルト入力値である160 x 120の解像度のキャプチャー画像。かなり画像が荒い。
![]()
1280 x 960の解像度のキャプチャー画像 画像はきれいになっているがfpsが8まで落ちている。
いろいろ実験してみると、帯域の問題が結構顕著に表れた。
1280 x 960 ではfpsが8までおちてしまいすこしかくかくした感じになってしまう。
960 x 720だと 15fpsくらいで再生できるのでローカルでwebcamの入力を使うときはこのくらいの解像度がベストという気がした。
詳しいメソッドのつかいかたやサンプルソースなどはMacromediaのサイトへ
トラックバック(2)
このブログ記事を参照しているブログ一覧: .setMode メソッド( flash webcamの入力解像度をActionScriptで操作する。)
このブログ記事に対するトラックバックURL: http://www.hatayan.org/mt/mt-tb.cgi/411
hatayanlog ver0.3 flashを使ってwebcamで映像を入力す... 続きを読む
webcamでliveで映像を撮ってすぐに映像の再生を行いたかったので、 fla... 続きを読む

映像とかを入力しなかった?