Psudo-Streaming with the flash player

Well today I was doing a bit of R & D into video Pseudo-Streaming. The term Pseudo meaning Fake or having an appearance of. Which is what it exactly is when applied to video streaming. In a roundabout way it allows the user to play the video anywhere on the timeline before the video has been fully downloaded.

I came across this great article here over on flash guru with a fully functional demo using a php backend. I’ve also seen an example using a Coldfusion service to handle the stream. Basically it’s a wrapper for some neat little java byte and filestream manipulation. Steve Savage’s post can be found here

This works a treat however we did stumble across and issue when trying to play a handful of converted .flv files. For some reason these files would not Pseudo-Stream. At first I thought it may have been a code issue but then had a look inside the .as code at the metadata listener.


ns['onMetaData'] = function (obj)
{
duration = (duration != undefined) ? duration : obj.duration;
times = obj.keyframes.times;
positions = obj.keyframes.filepositions;
};

the times variables was being set to null and using the FLV Meta Data viewer on the trouble makers I was able to confirm that these files did not have any keyframes.

Not exactly sure why these files didn’t contain any keyframes. I know that you can set keyframes from the CS3 Video conversion utility so it was possbible their conversion software that wasn’t creating the keyframes.