Well, you could copy the bitmap image pixel by pixel and use something
like GD through a PHP script to send the color information for each pixel,
and then recreate the thing and save it on the server as a JPEG.  But like
you said, that's a pain and requires uploading a lot of tedious detail to
the server.  I've tried this approach already, that's why I reduced the
image to 25% so that there is less of it to send.  But it's cumbersome.

But I don't understand why I can't create this object, capture it, see the
captured image on my screen, and then be able to store that whole object
somewhere in a way that it can be loaded back up again in its original
state.

It's something that has baffled me, but I think it should be possible.

Nate


On Thu, 29 Jun 2006, Roberto Saccon wrote:

> Yout bitmap data image first would require some compression, on Tinic
> Uro's blog there is a example for that.  But how to bring it to the
> server ? Would encapsulate it into AMF and send it over RTMP work ? I
> think that is not possible, but I hope I am wrong. And using binary
> sockets you need to wait a year until 80 % of the people out there can
> use it (flashplayer 9)
> 
> On 6/29/06, Nathan P. Johansen <[EMAIL PROTECTED]> wrote:
> > I think this request approaches the problem in reverse.  Unless you know
> > exactly where the playhead of the FLV should be, then how do you request
> > a bitmap image of it?  Moreover, this is easier to capture on the client
> > side than to generate on the server side - however capturing it on the
> > client side doesn't seem to have any novel way of then storing that back
> > on the server for future reference.
> >
> > For example, drag an instance of the FLV Playback component to the stage,
> > and name it "myPlayBack".  In the ActionScript on frame 1, import these
> > methods, and create a listener object:
> >
> >
> >         import mx.video.*;
> >         import flash.display.BitmapData;
> >         import flash.geom.Matrix;
> >
> >         var listenerObject:Object = new Object();
> >
> >
> > Create a container for the "captured" frame of the FLV, and place it
> > somewhere on the stage, and reduce it to a thumbnail by scaling it to 25%,
> > like this:
> >
> >
> >         this.createEmptyMovieClip("holder_mc", this.getNextHighestDepth());
> >
> >         holder_mc._xscale = 25;
> >         holder_mc._yscale = 25;
> >         holder_mc._x = 200;
> >         holder_mc._y = 200;
> >
> >
> > When metadata on the FLV is received, use a listener object to setup the
> > initial "captured" frame for the "holder_mc" image by setting its width
> > and height to match that of the FLV metadata:
> >
> >
> > listenerObject.metadataReceived = function(eventObject:Object):Void {
> >         myBitmap = new BitmapData(myPlayBack.preferredWidth,
> >                         myPlayBack.preferredHeight, true, 0x00FFFFFF);
> >         holder_mc.attachBitmap(myBitmap, 1);
> > };
> > myPlayBack.addEventListener("metadataReceived", listenerObject);
> >
> >
> > Next, by using another listener object to sense when the state of the FLV
> > playback changes - like seeking to a different playheadTime or pausing the
> > playback - then we can "capture" that frame of the FLV and draw it to
> > "myBitmap" which will reflect in the "holder_mc" instance:
> >
> >
> > listenerObject.stateChange = function(eventObject:Object):Void {
> >         myBitmap.draw(myPlayBack);
> > };
> > myPlayBack.addEventListener("stateChange", listenerObject);
> >
> >
> > Finally, load in the clip to "myPlayBack" by giving it a content path to
> > the FLV:
> >
> >
> >         myPlayBack.contentPath = "/mysite/myvideo.flv";
> >
> >
> > Now then, wouldn't it be interesting to be able to take the contents of
> > "holder_mc" - on demand - and save that entire object on the server as a
> > marker that includes which FLV and the playheadTime it was captured from?
> >
> > Then it would be useful as a method for allowing people to see marker
> > points in otherwise long FLV files so that they can more quickly jump to
> > that point in the playback - using the captured "thumbnail" as a visual
> > reference.  These markers could be created by someone familiar with the
> > content - like a teacher who has produced a lecture that has several
> > important segments - or it could be used for a student to bookmark points
> > of interest or to mark their progress so they can return to it later.
> >
> > When the student returns to the site later, their saved markers can be
> > loaded and displayed.  Or they can work from the standard ones that mark
> > important segments of the FLV.  Even allowing collaboration for groups to
> > share their marked points, along with notes or commentary attached to
> > them, would allow for some interesting possibilities.
> >
> > Just some thoughts.  I don't know how to go about saving the "holder_mc"
> > object anywhere so that it is persistent and can be used again.  If anyone
> > does know how, it would be helpful to know.  I imagine it would involve
> > shared objects.  =)
> >
> >
> > Nathan
> >
> >
> >
> > On Thu, 29 Jun 2006, Ronnie Brito wrote:
> >
> > > "And another feature-request: Is it possible to request a jpg or another
> > > screenshot of the flv from the server? and force the browser to download
> > > the screenshot?"
> > >
> > > this would be a very usefull function
> > > could be used on whiteboard applications too
> >
> >
> > _______________________________________________
> > Red5 mailing list
> > [email protected]
> > http://osflash.org/mailman/listinfo/red5_osflash.org
> >
> 
> 
> -- 
> Roberto Saccon
> 
> _______________________________________________
> Red5 mailing list
> [email protected]
> http://osflash.org/mailman/listinfo/red5_osflash.org
> 


_______________________________________________
Red5 mailing list
[email protected]
http://osflash.org/mailman/listinfo/red5_osflash.org

Reply via email to