我一直在使用 S3 来存储和提供 FLV 和 MP4 视频。效果很好,但内容是逐步下载的。我想知道是否有可能让所谓的“伪流”与 S3 一起工作。
伪流式传输允许观看者在完整视频下载之前在视频中向前搜索,并仅将必要的比特发送到 Flash 播放器。
我知道 Lighttp 的伪流式插件,我知道我可以使用带 XMOOV 脚本的关键帧 FLV 文件 - 但我想用 S3 设置它,而不是运行我自己的服务器。
感谢任何帮助。
最佳答案
没有。
不,您不能使用 S3 进行伪流式处理。这是因为几个原因:
- S3 不允许您以任何方式管理下载的比特率
- S3 不允许您在文件前面放置任何逻辑。这意味着:
- 不在文件中间寻找
- 没有 MOOV 原子魔法——如果它不在文件的前面,那么整个文件将在播放前下载。
你可以做的是这样的(我自己也为一个项目做了类似的事情):
- 使用
lightty
和mod_h264_streaming
运行一个 EC2 实例来寻找请求。在这种情况下,您甚至可能希望在 EC2 上托管您的应用程序/网站。 - 拥有您实例本地文件的副本
- 在 S3 上有一份文件的副本,以便从字节 0 开始传送(我猜你的大部分请求都是这样。
- 在文件上传时移动
MOOV
原子。以编程方式执行此操作并不难。
EC2 带宽费用与 S3 相同,但 EC2 实例总带宽是有限的(100-250mpbs?),而 S3 实际上是无限的。
关于flash - 是否可以使用 S3 进行 Flash 伪流式传输?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1541211/