I'm playing around with video warping and I think I've found
a fundamental limitation of
I am using the Flex SDK to compile an
AS 3.0 file into
This swf access an FLV by progressive download, draws it to a
bitmap and then does a BitmapFill
to a shape that is on screen. The FLV file is 50 seconds long
(ends with rocket ships zooming away
from the camera) and I've found that the
rendering/decompressing always faults somewhere in
the middle of the playback. This fault does not generate an
exception, it just stops updating the bitmap
with new frames. It is as if the flv decompressor stalled and
the render event keeps running. It has
the same behavior on PC and Mac.
This stalling isn't dependent on the amount of the video
buffered. When the fault occurs the buffering
activity on the network stops which is inconsistent of
running out of buffer.
It does scale with frames rendered. That is, if you half the
framerate to 6 fps, the playback gets
twice as far into the video and if you double the framerate
you get half as far into the video. Could it
be that one is only allowed to fire the draw method on a
Video stream a limited number of times?
Another note, it is not dependent on the
hack. If I setup a crossdomain.xml file and drop the detach
stream, the behavior is the same.
I get a runtime error when the swf loads (see below). But it
seems to play
ok after I click the "continue" or "dismiss all" button.
Error #2044: Unhandled AsyncErrorEvent:. text=Error #2095:
flash.net.NetStream was unable to invoke callback onMetaData.
error=ReferenceError: Error #1069: Property onMetaData not
flash.net.NetStream and there is no default value.
I've seen that exception, but I usually just click past it.
After that, on both of the PCs and Mac's I've tested,
the video plays for 3 to 20 seconds but not the full 54
second length of the clip. Do you see the end of the clip?
(rockets on the ceiling then fade to black)