HLS 内容保护 - Amazon Elastic Transcoder

通过以下方式节省成本并获得更多功能 AWS Elemental MediaConvert

MediaConvert 是一项较新的基于文件的视频转码服务,它提供了一套全面的高级转码功能,按需费率起价为每分钟 0.0075 美元。阅读更多

已经在使用 Amazon Elastic Transcoder? 迁移到很简单 MediaConvert。有关更多信息,请参阅本概述,其中包含有关迁移过程的重要信息以及指向其他资源的链接。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

HLS 内容保护

HTTP Live Streaming (HLS) 是一种用于对媒体文件进行分段、从而在流式处理过程中进行优化的协议。HLS 使媒体播放器能够在播放过程中以网络连接支持的最高品质的分辨率播放区段。

您可以使用 Elastic Transcoder 对流媒体文件的区段进行加密,通过 Internet 发送加密的区段,然后在播放时进行解密。此选项可保护您的媒体内容,并确保只有授权用户才可以查看您的媒体文件中的加密区段。

以下内容概括了具有 HLS 内容保护的媒体文件的播放过程:

HLS 播放流程。
  1. 访问您的网络页面的用户通过您的网络服务器进行身份验证,网络服务器会在用户的浏览器中设置会话 Cookie。

  2. 用户从您的网络服务器中加载播放器。

  3. 播放器从您的内容分发网络 (CDN) 中提取主播放列表。主播放列表提供了媒体文件的可用比特率和分辨率。

  4. 播放器会调用您的网络服务器,由网络服务器验证会话 Cookie、检查用户是否有权查看内容,然后返回数据解密密钥。

  5. 播放器会选择变体播放列表并从 CDN 中提取关联的媒体区段。

  6. 播放器使用数据密钥对区段进行解密,然后开始播放媒体。

注意

您可以使用 HLS 内容保护对流文件的区段进行加密,也可以对整个文件进行加密。您不能同时执行这两种操作,因此不要同时选择 HLS 内容保护和单个文件保护。

用于 HLS 内容保护的密钥

要将 HLS 内容保护与 Elastic Transcoder 一起使用,您需要两种类型的密钥:

  • AWS KMS key——与您的 Elastic Transcoder 管道关联的密钥

  • 数据密钥——与您的 Elastic Transcoder 任务关联的密钥

您必须拥有 AWS KMS key 才能使用 HLS 内容保护。KMS 密钥用于在通过 Internet 发送数据密钥之前对其进行加密。我们建议您创建一个 KMS 密钥,用于所有转码任务。有关创建和设置 KMS 密钥的更多信息,请参阅 AWS KMS 与 Elastic Transcoder 搭配使用

数据密钥用于对媒体文件进行加密。对于相同内容的所有变体和区段,使用相同数据密钥进行加密。如果您未指定数据密钥,Elastic Transcoder 将为您生成一个。

流式处理受 HLS 保护的内容

要提供受 HLS 保护的内容,您必须拥有以下项:

  • 用于存储您的加密媒体文件和数据密钥的位置。我们建议您将文件存储在 Amazon S3 中,并在数据库(如 DynamoDB)中保护您的密钥。有关 DynamoDB 的更多信息,请参阅《Amazon DynamoDB 开发者指南》中的什么是 Amazon DynamoDB?

  • (可选) 一个用于文件流式传输的内容分发网络 (CDN)。有关 CDN 的更多信息,请参阅 Amazon CloudFront 开发者指南 CloudFront中的入门指南

  • 能够对您的用户进行身份验证和授权并能安全地提供数据加密密钥的应用程序。您可以使用 Amazon EC2 运行此应用程序。有关更多信息,请参阅亚马逊 EC2 用户指南(适用于 Windows 用户)中的使用亚马逊 EC2 进行设置或亚马逊 EC2 用户指南(适用于 Linux 用户)中的使用亚马逊 EC2 进行设置。

  • 能够对加密的 HLS 文件进行解密的播放器。有关更多信息,请转至 HTTP Live Streaming

创建加密的流式处理内容

要为 HLS 内容保护准备您的文件,您必须将 KMS 密钥与新管道或现有管道相关联。

要使用您指定的 KMS 密钥设置管道,请参阅 AWS KMS 与 Elastic Transcoder 搭配使用

下面的步骤介绍如何使用 Elastic Transcoder 控制台为实现 HLS 内容保护加密您的文件:

将 HLS 内容保护用于您的文件
  1. 通过以下网址打开 Elastic Transcoder 控制台:https://console.aws.amazon.com/elastictranscoder/

  2. 在导航窗格中单击任务,然后创建一个新任务。有关更多信息,请参阅 在 Elastic Transcoder 中创建任务

  3. 预设下拉列表的输出详细信息中,选择 HLS 预设。

  4. 加密参数设置为 None

  5. 播放列表中,单击添加播放列表并选择 HLSv3HLSv4 作为您的播放列表类型。

  6. 内容保护中,请选择 Enter Information

    a. 要管理您自己的密钥,请在密钥存储策略中选择 No Store。在许可证获取网址中,键入将存储您的数据密钥的位置的绝对路径。例如:

    https://www.example.com/datakey

    我们建议您选择 No Store 并将密钥存储在安全的 Amazon S3 存储桶或数据库(如 DynamoDB)中。

    b. 要将密钥存储在公有 Amazon S3 存储桶中,请在密钥存储策略中选择 With Variant Playlists。Elastic Transcoder 将数据密钥写入播放列表文件所在的同一存储桶中。

    重要

    使用 With Variant Playlists 存储的密钥会被写入到公有存储桶中。将 No Store 用于您的实际密钥。

注意

如果您选择 No Store,Elastic Transcoder 会将数据密钥作为任务对象的一部分返回,但不会存储数据密钥。您负责存储数据密钥。