问题
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.
回答1:
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.
回答2:
I recently used Wowza on an EC2 instance, it's super easy to setup and works great for providing real streaming ...
It seems like pseudo-streaming is not straight forward on S3 : (https://developer.amazonwebservices.com/connect/message.jspa?messageID=77737).
回答3:
Yes, the answer is it's possible only through EC2, as described. That sucks because it requires more work, more expense, and more moving parts to manage.
This could be solved if S3 allowed a byte offset url parameter. Of course it would be up to the dev to ensure the MOOV atom is at the front of the file, which ain't hard. After that Flash could handle the rest. This has been requested to the S3 team before but apparently it's not a priority.
See https://forums.aws.amazon.com/thread.jspa?messageID=213571
Bummer. The way to get it is to hop on that forum and voice your desire for this feature. AWS does listen to its customers (I hope even the little ones!).
来源:https://stackoverflow.com/questions/1541211/is-it-possible-to-do-flash-pseudo-streaming-with-s3