Re: More Ming fun.... :)
David Marceau <[email protected]> Mon, 12 Jan 2004 04:56:52 -0500
| Newsgroups | gmane.comp.web.ming.general |
|---|---|
| Message-ID | <[email protected]> |
Justin Clift wrote: > Agreed, there's a lot of good toolsets handy for many approaches. The > CLIC approach (and the Beowulf) ones are pretty much for dedicated > machines, whereas I was musing about something similar to say... > Folding@Home (http://folding.stanford.edu), SETI@Home (don't remember > the URL offhand), or similar. > > The musing I was making here was that we already have millions of > computers, across many architectures (x86, SPARC, PowerPC, etc), hooked > up to the net and with a browser+flash installed. Interesting platform > concept to work from, as we don't need to install anything extra on the > PC's, they've already got the main engine installed. Ok. If you keep your requirements to the lowest common denominator you will be more successful. i.e. Don't ask for tons of memory or hard drive space on the client machine. Don't do much on the client machine. Let the client do it. Step one: send client a message like go to some URL on another machine and not the requester. The URL holds for example all or part of a flash. How it's broken up, for now I don't know. Step two: the client machine gets the data into memory in an actionscript variable. In this case it is a flash frame data I guess somehow. Step three: your actionscript does stuff to the memory. I guess in your case it would take every pixel from the device context representing the flash frame somehow and placing it into a results variable. Step four: the results in memory are then sent back via whatever comm link xmlSocket, blah blah to a resulter machine holding all the frames as jpg/png data ready for avi/ram stream assembly. i.e. not the requestor machine. The pre steps are planning who gets what to do, what they need to do it, and to start it. The post steps are the requester to get the resulter's status, and processed data once completed. So that's one kind of distributed job. Then there's the compression job for the video stream itself because if I remember correctly you want to make an avi from your flash. From what I understand it starts with the first frame being complete as a jpg. Then the real compression starts as a comparison from the previous jpg frame to the next jpg frame. I don't know if you're following me but sometimes I wonder if I follow myself ;) I suggesting a second batch job here that you could pass to every client being you pass to the client two frame jpgs and your client computes the compressed stream difference for the next frame. Does this make sense? I think it is much more complicated than that but that's a gist about what the smoke and mirrors have to do. IMHO in an undistributed way, you will find the sources dvdrip/openflashplayer/jpeglib/mp4ip have what you need to make what you want. It's just to reorder the sequence: 1)by taking a few code tidbits from openflashplayer when it displays a flash frame and shoving into a jpg. 2)do 1) for every frame in the flash 3)extracting code from dvdrip/transcode to transcode an avi/mpeg for you from your jpg's. 4)use mp4ip to convert the end result into a internet realplayer stream. I am not sure but Darwin Streaming Server serves up mp4ip produced streams. Darwin Streaming Server is an open-source project by the way that runs on linux and MAC OS X. I'm no expert I am just repeating what I've read somewhere. Cheers, David Marceau