开发者

Programmatically extracting a frame from a video in Flash

I need to write a small Flash app that will need to extract a video frame from a playing video. It will not need to be saved to the HDD of the user. I just need to get the image data and display it in th开发者_如何学Pythone Flash movie. The frame to extract will be chosen by the user, which is why I'd like to do this purely on the client side (though I know I could do it from the server side).

I've tried searching for solutions but I'm not getting any useful results. Being a Flash newbie I haven't got any code yet seeing as I wouldn't know where to start.

So Flash gurus, is there a way to do this?


If you take a 'screen grab' of a DisplayObject in flash using BitmapData's draw() method.

If you have something for displaying flv somewhere a bit to the right, or down, try something like:

var cloneData:BitmapData = new BitmapData(video.width,video.height,false,0x000000);
cloneData.draw(video);
//test
addChild(new Bitmap(cloneData));

Goodluck!


After reading Georges answer, this is what I came up with as proof of concept. Posting here so it doesn't pollute original question.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="video.load()">
 <mx:VideoDisplay id="video" x="0" y="0" source="/content/content.flv" />
 <mx:Button x="10" y="10" label="Grab" click="grabClick()"/>
 <mx:Button x="71" y="10" label="Play" click="video.play()"/>
 <mx:Button x="130" y="10" label="Pause" click="video.pause()"/>
 <mx:Script>
  <![CDATA[
   import mx.controls.*;
   import flash.display.BitmapData;

   private function grabClick():void {
    var bitdata:BitmapData = new BitmapData(video.width, video.height, false, 0x0);
    bitdata.draw(video);
    var grabResult:Image = new Image();
    grabResult.x = 0;
    grabResult.y = video.height;
    grabResult.source = new Bitmap(bitdata);
    addChild(grabResult);
   }
  ]]>
 </mx:Script> 
</mx:Application>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜