Amazon CloudFront
开发人员指南 (API 版本 2016-09-29)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 CloudFront 传输按需视频

要传输按需视频流,您可以使用 Amazon S3 以原始格式存储内容,使用转码器(如 AWS Elemental MediaConvert)将视频转码为流媒体格式,将转码的视频存储在 S3 存储桶中,然后使用 CloudFront 将视频传输给查看者。如果要使用 Microsoft 平滑流,请参阅配置按需 Microsoft 平滑流

按照以下步骤创建解决方案:

  • 步骤 1:将您的内容上传到 Amazon S3 存储桶。要了解使用 S3 的更多信息,请参阅 Amazon Simple Storage Service 开发人员指南

  • 步骤 2:使用 MediaConvert 将您的视频转换为查看器使用的播放器所需的格式。您还可以为自适应比特率流创建具有不同分辨率和比特率的资产,这会根据查看器的可用带宽调整查看质量。MediaConvert 将转码的视频输出到 S3 存储桶。

  • 步骤 3:使用 CloudFront 分配传输转换的内容,以便查看器可以随时在任何设备上查看该内容。

提示

要了解有关使用 AWS 云服务实施按需视频工作流的最佳实践的更多信息,请参阅 AWS 上的视频点播

您还可以了解如何使用 AWS CloudFormation 模板部署视频点播 AWS 解决方案及其所有关联组件。要查看使用模板的步骤,请参阅视频点播自动部署

配置按需 Microsoft 平滑流

您可以将 CloudFront 用于通过已转码为 Microsoft 平滑流格式的文件提供视频点播。要分配按需平滑流内容,您可以选择两种方法:

  • 将运行 Microsoft IIS 并且可以流式处理已转码为 Microsoft 平滑流格式的文件的 Web 服务器指定为分配的源。

  • 在 CloudFront 分配中启用平滑流。平滑流是缓存行为的一个属性,它意味着您可以使用一个分配来分配平滑流媒体文件以及其他内容。

重要

如果源是运行 Microsoft IIS 的 Web 服务器,请不要在创建 CloudFront 分配时启用平滑流。如果启用平滑流,CloudFront 无法将 Microsoft IIS 服务器作为源。

如果您为源服务器启用平滑流(即您没有运行 Microsoft IIS 的服务器),请注意以下几点:

  • 如果内容与同一缓存行为的路径模式值匹配,您仍可以使用该缓存行为分配其他内容。

  • CloudFront 可以将 Amazon S3 存储桶或自定义源用于平滑流媒体文件。但是,如果将 Microsoft IIS 服务器配置为用于平滑流,则 CloudFront 无法将该服务器用作源。

  • 您无法使平滑流格式的媒体文件失效。如果要在文件到期前更新它们,则必须将其重命名。有关更多信息,请参阅添加、删除或替换 CloudFront 分配的内容

有关平滑流客户端的信息,请参阅 Microsoft 网站上的平滑流初探

要使用 CloudFront 来流式传输已采用 Microsoft 平滑流格式编码的媒体文件,而不使用可流式传输平滑流格式的文件的 Microsoft IIS Web 服务器,请执行以下操作:

  1. 将您的媒体文件转码为平滑流分片 MP4 格式。

  2. 执行以下操作之一:

    • 如果您使用 CloudFront 控制台:在创建 Web 分配时,请在默认缓存行为中启用平滑流。或者,您可以在现有 CloudFront Web 分配中的默认缓存行为和/或一个或多个自定义缓存行为中启用平滑流。

    • 如果您使用 CloudFront API:SmoothStreaming 元素添加到 DistributionConfig 复杂类型以实现默认缓存行为和/或一个或多个自定义缓存行为。

  3. 将您的平滑流演示文稿中的文件上传到源。

  4. 创建 clientaccesspolicy.xmlcrossdomainpolicy.xml 文件,并将其添加到可在您的分配的根目录访问的位置,例如 http://d111111abcdef8.cloudfront.net/clientaccesspolicy.xml。下面是一个示例策略:

    <?xml version="1.0" encoding="utf-8"?> <access-policy> <cross-domain-access> <policy> <allow-from http-request-headers="*"> <domain uri="*"/> </allow-from> <grant-to> <resource path="/" include-subpaths="true"/> </grant-to> </policy> </cross-domain-access> </access-policy>

    有关更多信息,请参阅 Microsoft Developer Network 网站上的让服务跨域边界可用

  5. 对于您的应用程序中的链接,请指定以下格式的客户端清单:

    http://d111111abcdef8.cloudfront.net/video/presentation.ism/Manifest