Hey skol, sorry for the loong delay but I've been at work on the new FlashyWrappers release, because I still believed this ANE had potential.
So the new iOS release is finished! Not only does it uses AVFoundation, which means full mp4 support, as well as HW accelerated encoding...but it also captures the videos from AIR in a way which makes it *order of magnitudes* faster than any "record videos from AIR apps / games" ANE out there (including the ANE linked by skol)
So here's why:
Take a look at this link if you're interested to find out what the greatest bottleneck is, when trying to record video from Stage3D:
It's capturing frame from Stage3D or MovieClip based stage in AIR. This is a total performace killer, even Adobe warns that capturing Stage3D *will* be slow. This is followed by other stuff like needed color conversions from ARGB in the ANE, which they don't even mention(also depends if you use NEON conversions, pixel buffer pools etc. in the ANE).
I had the same issues with FlashyWrappers 2.0 on iOS.
So here's the solution to the bottleneck in 2.2:
FlashyWrappers ANE hijacks AIR's internal OpenGL ES layer. Inside the ANE, it forces AIR to render into a custom framebuffer and through other techniques this flows automatically (ie. all optimized iOS native methods) into the video pixelbuffer. At no point am I reading any buffers both in AIR or inside the ANE(NO glReadPixels:) AIR *pretty much* renders its content straight to the video frames.
This pretty much means going many times faster than any AIR framegrab dependant solutions.
Fun side effect is, that because of that rendering redirection, the ANE must take over AIR's rendering while recording video - literally it needs to blit a textured quad to screen with AIR's frame content, as AIR "forgets" to render when redirected. Works just fine though:) The result is - nothing unusual happens when recording, even internally the ANE is rendering to screen instead of AIR.
Other interesting facts:
- Records fullscreen by default (1024x768) (and its still fast, no need to compromise resolution)
- Captures all layers (MovieClip, Stage3D), so all of your MovieClip UI if used
- Supports capturing from high res AIR apps(Retina) , records into 1024x768 video
- Supports all possible iOS native AVFoundation optimizations (texture cache, pixel buffer pools etc., see "Brad Larson" on Stack Overflow:) - in other words, this ANE can't be much faster, even never say never...
- There's a free project on my site now called "FWSoundMixer" which makes it possible to capture *live audio* from the game as well and combine that with video (not just background soundtrack). So far it's pretty simple mixer, but works (even with microphone for live "commentary", singing or whatever :). This is still in development, tested on desktop so far, ANE for iOS coming soon.
The package includes also other platforms, PC, Mac, Flash Players, Android now as well but that is not HW accelerated - pretty much like the iOS v1.0 was, but thats next - the goal is to make it the fastest Android recording solution for AIR available of course