Is it possible to do Flash pseudo streaming with S3?

amazon-s3, flash, flv, video, video-streaming

Solution

No.

No, you can't do pseudo-streaming with S3. This is because of a couple of reasons:

- S3 does not allow you to managed the bit rate of the download in any way

- S3 does not allow you to place any logic in front of the file. This means:

- no seeking into the middle of the file

- no MOOV atom magic--if it is not at the front of the file, then the entire file will be downloaded before playback.

What you can do is this (and I have done something similar myself for a project):

- Run an EC2 instance with `lightty` & `mod_h264_streaming` for seeking requests. You may even want to host your application/site on EC2 in this case.

- have a copy of the file local to your instance

- have a copy of the file on S3 for delivery from byte 0 (as I'd guess the majority of your requests would be.

- Move the `MOOV` atom on file upload. This is not so difficult to do programatically.

EC2 bandwidth charges are the same as S3, but the total EC2 instance bandwidth is limited (100-250mpbs?), while S3 is effectively unlimited.

Problem

I've been using S3 to store and serve FLV and MP4 videos. It works great, but the content is progressively downloaded. I was wondering if it is possible to get so-called "pseudo streaming" to work with S3. Pseudo streaming allows viewers to seek ahead in a video before the full video has downloaded as well as send only the bits necessary to the Flash player. I'm aware of Lighttp's pseudo streaming plugin, and I know I can use keyframed FLV files with an XMOOV script - but I'd like to setup this up with S3, as opposed to running my own server. Any help is appreciated.

Original source