2009-08-29 14 views
4

ウェブページに埋め込み可能なオープンソースのフラッシュユーティリティはありますか?これを使用して、ユーザーのウェブカメラの画像や短時間のクリップをキャプチャし、サーバのサーブレットに「POST」しますか?私はストリーミングビデオを探していないので、私はred5またはフラッシュサーバーは必要ありません。みんなあなたは精巧にできますか?フラッシュキャプチャウェブカメラ画像を使用しますか?

答えて

3

これはThibault Imbert's AS3 GIF Animation Encoding Classの良い候補のようです。 私は約2年前に大学でプロジェクトに使用しました。あなたはそれを確認することができますhere。 私の意見では、3つのステップがあります:

//1.Create a Camera object 

//this code comes from the LiveDocs 
var camera:Camera = Camera.getCamera(); 
var video:Video;    
if (camera != null) { 
    video = new Video(camera.width * 2, camera.height * 2); 
    video.attachCamera(camera); 
    addChild(video); 
} else { 
    trace("You need a camera."); 
} 

//2. Take one or more 'screenshots' using BitmapData 

    var screenshot:BitmapData = new BitmapData(video.width,video.height,false,0x009900); 
    screenshot.draw(video); 
    //you would probably save more of these in an array called screenshots maybe 

//3. Create a GIFEncoder and send it to the server: 



//assuming screenshots is an array of BitmapData objects previously saved 
var animationEncoder:GIFEncoder = new GIFEncoder(); 
animationEncoder.setRepeat(0); 
animationEncoder.setDelay (150); 
animationEncoder.start(); 
for(var i:int = 1 ; i < screenshots.length ; i++){ 
    animationEncoder.addFrame(screenshots[i]); 
} 
animationEncoder.finish(); 
//save it on the server 
var header:URLRequestHeader = new URLRequestHeader ("Content-type", "application/octet-stream");//binary header 
var gifRequest:URLRequest = new URLRequest ('http://yourServer/writeGIF.php?name=myFile.gif&method=download'); 
gifRequest.requestHeaders.push (header); 
gifRequest.method = URLRequestMethod.POST; 
gifRequest.data = animationEncoder.stream; 
sendToURL(gifRequest); 



//Obviously you would have listeners to check if everything was ok, and when the operation //is complete. 

//The PHP code would be something simple as this 

    <?php 

    $method = $_GET['method']; 
    $name = $_GET['name']; 

    if (isset ($GLOBALS["HTTP_RAW_POST_DATA"])) { 

     // get bytearray 
     $gif = $GLOBALS["HTTP_RAW_POST_DATA"]; 

     // add headers for download dialog-box 
     header('Content-Type: image/gif'); 
     header('Content-Length: '.strlen($gif)); 
     header('Content-disposition:'.$method.'; filename="'.$name.'".gif'); 

     echo $gif ; 

    } else echo 'An error occured.'; 

    ?> 

それはそうです。

あなたがThibault Imbert's AS3 GIF Animation Encoding Classをチェックアウトしていることを確認して、このWeb-Cam-Stop-Motion楽しいアプリ:) Lee Felarca's SimpleFlvWriterがニーズに応じて、同様に見て価値があります。

+0

flvをGIFに変換してPOSTメソッドで送信するのは良い考えだと思いますか?私はそれが時間とリソースを消費していると思う。ではない?私は答えがこの質問のために完全であることを知っています。しかし、私はそれが良い解決策であるかどうかを知りたいですか? –

+0

@Morteza M.私はflvをGIFに変換してPOStで送信するのは良い考えです。それは私の答えが述べていることではありません。私が言うことは、これは、「短時間のクリップで、POSTを「サーバーサーブレットに」すると、アニメーションGIFで動かすことができます...いいえ、FLVです。それ以外の場合、サウンドがなく、非常に短い持続時間がニーズに適していない場合は、SimpleFLVWriterなどを試して、「red5またはFlashサーバーは必要ありません」をバイパスしてみてください。 Red5は一般的にはより強固で柔軟なソリューションになるでしょう。 GIFオプションは、まあ...オプションです。 –

関連する問題