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

RTMP 分配的工作机制

要使用 CloudFront 流式处理媒体文件,为您的最终用户提供两种类型的文件:

  • 您的媒体文件

  • 媒体播放器,例如,JW Player、Flowplayer 或 Adobe Flash

最终用户使用您提供给他们的媒体播放器查看您的媒体文件;他们不使用已经安装在其计算机或其他设备上的媒体播放器(如果有)。

当最终用户流式处理媒体文件时,媒体播放器在文件仍从 CloudFront 下载的过程中开始播放文件的内容。媒体文件没有存储在最终用户本地系统上。

要使用 CloudFront 提供媒体播放器和媒体文件,您需要两种类型的分配:用于媒体播放器的 Web 分配和用于媒体文件的 RTMP 分配。Web 分配通过 HTTP 提供文件,而 RTMP 分配通过 RTMP (或 RTMP 的变体) 流媒体文件。

以下示例假设您的媒体文件和媒体播放器存储在不同的 Amazon S3 存储桶中,但这不是必需的,您可以将媒体文件和媒体播放器存储在相同的 Amazon S3 存储桶中。—您还可以其他方式将媒体播放器提供给最终用户,例如,使用 CloudFront 和自定义源。但是,媒体文件必须使用 Amazon S3 存储桶作为源。

在下图中,您的站点通过d1234.cloudfront.net域将媒体播放器的缓存副本提供给每个最终用户。然后,媒体播放器通过s5678.cloudfront.net域访问媒体文件的缓存副本。

流式传输设置
  1. 您的媒体播放器存储桶保留媒体播放器,且是常规 HTTP 分配的源服务器。在该示例中,分配的域名是 d1234.cloudfront.net。(d 中的 d1234.cloudfront.net 指示这是 Web 分配。)

  2. 您的流媒体存储桶存放媒体文件,是 RTMP 分配的源服务器。在该示例中,分配的域名是 s5678.cloudfront.net。(s 中的 s5678.cloudfront.net 指示这是 RTMP 分配。)

在配置 CloudFront 以分发媒体文件时,CloudFront 将 Adobe Flash Media Server 作为流服务器,并使用 Adobe 的实时消息协议 (RTMP) 流式传输媒体文件。CloudFront 通过端口 1935 和端口 80 接受 RTMP 请求。

CloudFront 支持 RTMP 协议的以下变体:

  • RTMP – Adobe 的实时消息协议

  • RTMPT – 通过 HTTP 进行的 Adobe 流隧道传输

  • RTMPE – Adobe 加密

  • RTMPTE – 通过 HTTP 进行的 Adobe 加密隧道传输