6

我一直在使用 S3 来存储和提供 FLV 和 MP4 视频。它工作得很好,但内容是逐步下载的。我想知道是否有可能让所谓的“伪流”与 S3 一起工作。

伪流式传输允许观众在完整视频下载之前在视频中搜索,并且仅将必要的位发送到 Flash 播放器。

我知道 Lighttp 的伪流插件,并且我知道我可以使用带有 XMOOV 脚本的关键帧 FLV 文件 - 但我想用 S3 设置它,而不是运行我自己的服务器。

任何帮助表示赞赏。

4

3 回答 3

10

不。

不,您不能使用 S3 进行伪流式传输。这是因为几个原因:

  • S3 不允许您以任何方式管理下载的比特率
  • S3 不允许您在文件前面放置任何逻辑。这表示:
    • 不寻找文件中间
    • 没有 MOOV atom 魔法——如果它不在文件的前面,则在播放之前将下载整个文件。

您可以做的是(我自己为一个项目做了类似的事情):

  • lightty使用&运行 EC2 实例以mod_h264_streaming查找请求。在这种情况下,您甚至可能希望在 EC2 上托管您的应用程序/站点。
  • 拥有实例本地文件的副本
  • 在 S3 上有一份文件副本,以便从字节 0 开始传送(我猜你的大部分请求都是这样。
  • MOOV在文件上传时移动原子。以编程方式做到这一点并不难。

EC2 带宽费用与 S3 相同,但总 EC2 实例带宽是有限的(100-250mpbs?),而 S3 实际上是无限的。

于 2009-11-01T19:00:46.727 回答
0

我最近在 EC2 实例上使用了 Wowza,它非常易于设置,并且非常适合提供真正的流...

似乎伪流在 S3 上并不直接:(https://developer.amazonwebservices.com/connect/message.jspa?messageID=77737)。

于 2009-10-09T01:05:32.487 回答
0

是的,答案是只有通过 EC2 才有可能,如前所述。这很糟糕,因为它需要更多的工作、更多的费用和更多的活动部件来管理。

如果 S3 允许字节偏移 url 参数,则可以解决此问题。当然,要确保 MOOV 原子位于文件的前面,这取决于开发人员,这并不难。在那之后,Flash 可以处理其余的事情。之前已向 S3 团队提出过要求,但显然这不是优先事项。

请参阅