

# 通过 CloudFront 提供点播视频
<a name="on-demand-video"></a>

要使用 CloudFront 进行点播视频 (VOD) 流式传输，请使用以下服务：
+ Amazon S3 以原始格式存储内容并存储转码后的视频。
+ 用于将视频转码为流式传输格式的编码器（如 AWS Elemental MediaConvert）。
+ CloudFront 将转码视频传输给查看器。有关 Microsoft Smooth Streaming，请参阅[为 Microsoft Smooth Streaming 配置点播视频](#on-demand-streaming-smooth)。

**使用 CloudFront 创建 VOD 解决方案**

1. 将您的内容上传到 Amazon S3 存储桶。要了解有关使用 Amazon S3 的更多信息，请参阅《Amazon Simple Storage Service 用户指南》[https://docs.aws.amazon.com/AmazonS3/latest/userguide/](https://docs.aws.amazon.com/AmazonS3/latest/userguide/)。

1. 通过使用 MediaConvert 作业对您的内容进行转码。作业将视频转换为查看器使用的播放器所需的格式。您还可以使用此作业来创建分辨率和比特率不同的资产。这些资产用于自适应比特率 (ABR) 流式传输，这种传输方式根据查看器的可用带宽调整查看质量。MediaConvert 将转码后的视频存储在 S3 存储桶中。

1. 使用 CloudFront 分配传输转换后的内容。查看器可以随时在任何设备上观看内容。

## 为 Microsoft Smooth Streaming 配置点播视频
<a name="on-demand-streaming-smooth"></a>

您可以通过以下选项使用 CloudFront 来分配已转码为 Microsoft Smooth Streaming 格式的点播视频 (VOD) 内容：
+ 指定运行 Microsoft IIS 并支持将 Smooth Streaming 作为分配源的 Web 服务器。
+ 在 CloudFront 分配的缓存行为中启用 Smooth Streaming。由于您可以在分配中使用多个缓存行为，因此您可以将一个分配用于 Smooth Streaming 媒体文件以及其他内容。

**重要**  
如果指定运行 Microsoft IIS 的 Web 服务器作为源，请*不* 要在 CloudFront 分配的缓存行为中启用 Smooth Streaming。如果您为缓存行为启用 Smooth Streaming，则 CloudFront 无法使用 Microsoft IIS 服务器作为源。

如果您在缓存行为中启用 Smooth Streaming（即您不具有运行 Microsoft IIS 的服务器），请注意以下几点：
+ 如果内容与同一缓存行为的**路径模式**值匹配，您仍可以使用该缓存行为分配其他内容。
+ CloudFront 可以将 Amazon S3 存储桶或自定义源用于 Smooth Streaming 媒体文件。如果您为缓存行为启用 Smooth Streaming，则 CloudFront 无法使用 Microsoft IIS 服务器作为源。
+ 您无法使 Smooth Streaming 格式的媒体文件失效。如果要在文件到期前更新它们，则必须将其重命名。有关更多信息，请参阅 [添加、删除或替换 CloudFront 分配的内容](AddRemoveReplaceObjects.md)。

有关 Smooth Streaming 客户端的信息，请参阅 Microsoft 文档网站上的 [Smooth Streaming](https://learn.microsoft.com/en-us/shows/iis-net-site-videos/smooth-streaming)。

**在 Microsoft IIS Web 服务器不是源时使用 CloudFront 分配 Smooth Streaming 文件**

1. 将您的媒体文件转码为 Smooth Streaming 分片的 MP4 格式。

1. 请执行以下操作之一：
   + **如果您使用的是 CloudFront 控制台：**当您创建或更新分配时，请在分配的一个或多个缓存行为中启用 Smooth Streaming。
   + **如果您使用的是 CloudFront API：**针对一个或多个分配的缓存行为，将 `SmoothStreaming` 元素添加到 `DistributionConfig` 复杂类型中。

1. 将 Smooth Streaming 文件上传到您的源。

1. 创建 `clientaccesspolicy.xml` 或 `crossdomainpolicy.xml` 文件，并将其添加到可在您的分配的根目录访问的位置，例如 `https://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 网站上的[让服务跨域边界可用](https://docs.microsoft.com/en-us/previous-versions/windows/silverlight/dotnet-windows-silverlight/cc197955(v=vs.95))。

1. 对于应用程序（例如媒体播放器）中的链接，请以下面的格式指定媒体文件的 URL：

   `https://d111111abcdef8.cloudfront.net/video/presentation.ism/Manifest`