4

我在 Amazon Web Services EC2/S3 上有一个 iOS 应用程序和 Django 后端。当前流程:

  1. iOS 应用程序使用输出 MP4 的 UIImagePickerController 捕获视频。
  2. MP4 被上传到我运行 Django 的 EC2 (Ubuntu) 服务器。
  3. Django 读取文件并上传到 S3 进行存储。
  4. 现在,iOS 应用可以访问 S3 电影,以便稍后观看。这使用渐进式流式传输(即假流式传输,仅在下载时播放)。

目标: 我的目标是在这里使用 HTTP Live Streaming (HLS)。

有人可以就如何更改我当前的工作流程以在 S3 上获取 HLS 文件(.M3U8 和 .TS)以允许流式传输提供建议吗?谢谢。

4

1 回答 1

6

这个问题真的很老,我想你已经继续前进了......

但只是为了完整起见 - 你至少有两个选择:

一种。只需将文件一次转换为具有所有所需比特率的 HLS 格式,将转换后的文件托管在 S3 中。

您可以使用 Encoding.com 或 Zencoder 之类的 3rd 方编码服务来执行此操作,使用 Kaltura 之类的平台部署您自己的堆栈(我无法立即回忆起很多其他平台)或使用 ffmpeg 滚动您自己的转码服务器。


湾。使用可以从您已有的 MP4 转码为动态选择格式的媒体服务器(取决于请求的客户端)。

Wowza Media Server 就是一个很好的例子。Microsoft 的 IIS 媒体服务和 Adob​​e 的 Flash 媒体服务器也被广泛用于向 iOS PLUS 提供其他几个平台。这里实际上有无穷无尽的选择,您所要做的就是为 HLS 正确配置每个服务器。Google 可以轻松找到适合您的样品。


在这两种情况下,您都可以设置 CloudFront,然后从 S3 或您选择的媒体服务器读取文件。后者相对更难,我没有做过,所以很遗憾我没有对你有用的链接。


于 2013-03-31T10:18:00.617 回答