ciaobox
11th March 2007 22:55 UTC
AVS / Flash Player - Theoretically Possible?
Looking at the AVS architecture, it seems theoretically possible to create a custom C++/Actionscript 3 Bridge for AVS; essentially turning the Winamp AVS into a server-side 3D engine for the Flash 9 player. In this scenario, streaming Shoutcast radio through the Flash player would trigger synchronized AVS plugs from the server.
Forgetting for a second obvious major server processor load issues, does anyone who works in this medium know if this is theoretically possible? I am an Actionscript / Flex coder by trade so not extremely familiar with the AVS engine.
Any thoughts would be greatly appreciated.
Nanakiwurkz
13th March 2007 00:10 UTC
hmm
sounds interesting.
but sadly you would have to completely recode avs to get something like that to happen.
servers are my specialty in the hardware area not software.
but maybe you should try to fix avs yourself because its pretty much in the wastelands of winamp. hell i didn't even see it remotely mentioned in the change log for winamp.
hmph. sorry.
MaTTFURY
13th March 2007 01:17 UTC
it might work if everything was post-processed as avs is REAL-TIME rendered according to the music thats playing, and because every song is different its basically impossible to not have lag with avs streaming over a server trying to calculate (with the cpu) and stream (via modem/router).
you would need to analyse a mp3 file first, hash or mark each individual change in the song (most likely by frequency) compile it into a readable file format, or write some ape for avs, then add some crap post-processing feature to avs, which is strictly real-time.
CraigF
13th March 2007 11:59 UTC
you'd basically be looking at real time encoding of avs output to flv. It's plausible I suppose.
Warrior of the Light
13th March 2007 19:33 UTC
considering how often this kind of question is asked (audio bundled with AVS), it made me think..
What ways are there to grab the output from AVS?
(1) I believe that AVSGrabber gets it's info before it's rendered (since you need to put it at the bottom of the list), renders the image and stores it.. then AVS itself also renders the image and shows it on the screen.
(I'm possibly completely wrong here)
(2) Isn't there some way to directly read the buffer where the current frame is stored with either 1) an external application or 2) a plugin (.dll, not .ape)?
Possibly you lose info such as the exact framerate, but it sounds like a cheap process to me since the image has already been rendered.
After that you can mix it with the audio, encode it and send it to the www
PAK-9
18th March 2007 22:08 UTC
Originally posted by Warrior of the Light
(2) Isn't there some way to directly read the buffer where the current frame is stored with either 1) an external application or 2) a plugin (.dll, not .ape)?
Possibly you lose info such as the exact framerate, but it sounds like a cheap process to me since the image has already been rendered.
I had a similar thought when I saw this post. In order to make a flash based version you would basically need to redo the avs config window in flash and then send the produced .avs file to a server to be rendered.
The result would then need to be 'grabbed' on the server side and displayed in flash. Since you have the avs file the easiest approach would probably be an APE (appended to the preset by the server) that would output the framebuffer in some appropriate format to be displayed in flash (essentially what AVSGrabber does for .avi format).
However I am not familiar with flash coding so past that point I can't comment. The bottom line is: yes, it is theoretically possible, but I would require a huge amount of work (recreating the avs config alone is a pretty daunting prospect).