在中使用自动 ABR MediaConvert - MediaConvert
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在中使用自动 ABR MediaConvert

借助自动 ABR,AWS Elemental MediaConvert 可以为您设置自适应比特率 (ABR) 堆栈。 MediaConvert 根据输入的视频选择正确的格式副本数量和分辨率。 MediaConvert 通过消除在不提高视频质量的情况下增加比特率的格式副本,最大限度地减少转码输出的总分钟数。自动化 ABR 还通过采用质量定义的可变比特率 (QVBR) 速率控制模式,最大限度地提高不同比特率下的视频质量。

自动化 ABR 的工作原理

在所有自适应比特率(ABR)流媒体中,终端观看者的播放设备会根据可用带宽调整下载软件包的版本。例如,观看者如果能使用高质量的无线网络,就会自动看到高比特率的副本。而当他们移动到一个带宽有限的地方时,他们的播放设备会自动切换到低比特率副本。自适应流媒体的效果取决于 ABR 堆栈的构造以及该构造与特定视频内容的匹配程度。例如,对于快速移动、视觉复杂的资产,您的 ABR 堆栈可能包括两个不同比特率的 720p 输出。如果您在简单的卡通中使用相同的堆栈设置,那么这两个输出可能看起来是一样的。额外的编码、存储和分发将耗费资金,却不会给终端观看者带来任何好处。

运行自动 ABR 作业时,可根据最终观看者的可用带宽 MediaConvert 最大限度地提高其所看到的视频质量。它通过分析各种可能的副本,并在不提高视频质量的情况下消除任何增加所需带宽的格式来做到这一点。当你运行任务时, MediaConvert 会分析输入视频的内容,然后为你选择格式副本的数量和每个格式副本的特征。

您可以使用 MediaConvert 控制台运行作业,而无需进行任何设置。您可以选择指定三类可选设置:

  • 对自适应比特率 (ABR) 堆栈的限制。

  • 适用于 ABR 堆栈中副本的限制。这些输出级别限制适用于堆栈中的所有副本。

  • 所有其他编码设置。

    对于这些设置,除非您指定了不同的值,否则将 MediaConvert 使用默认值。这与不使用自动化 ABR 的输出相同,唯一的不同是您设置的所有值都将应用于堆栈中的所有副本。例如,如果您将配置文件设置为 High 10-bit,则每个副本都将具有该编解码器配置文件。

适用于 ABR 堆栈的设置

您可以设置与整个 ABR 堆栈相关的以下限制:

  • 最大副本数:这是 ABR 堆栈中副本数量的上限。您堆栈中的副本数量可能少于此数,但不会多于此数。

    您可以指定 3 到 15 之间的数字。如果您未指定此项,则端口默认值将为 15.。

  • 最大 ABR 比特率:堆栈中比特率最高的副本的最大平均比特率。

    这是用最快的网络连接向观看者提供的副本。用于限制向观看者输出的总字节数,这些观看者会收到最高比特率的副本。

    如果您未指定此项,则默认最大值将为 8 mb/s。

    最高质量副本的平均比特率将等于或低于该值,具体取决于内容的质量、复杂性和分辨率。瞬时最大比特率可能高于您指定的值。

  • 最小 ABR 比特率:堆栈中质量最低副本的最低平均比特率。

    这是向互联网连接速度最慢的观看者提供的。

    如果您未指定此项,则默认最小值将为 600 kb/s。

    瞬时最小比特率可能低于您指定的值。

适用于堆栈中副本的设置

您可以设置以下与堆栈中副本属性相关的限制:

  • 最大分辨率:这是最高比特率副本的最大分辨率。设置此值时,请选择您期望终端观看者使用的最高质量设备的分辨率。 MediaConvert 无法创建分辨率大于此分辨率的格式副本。

    如果没有指定,默认的最大值就是输入视频的分辨率。

    如果您指定的值大于输入视频的分辨率,则 MediaConvert 使用您的输入分辨率作为最大分辨率。 MediaConvert 对于任何格式副本,都不会使用大于输入分辨率的分辨率,因为提高输入分辨率可以在不增加视频质量的情况下增加带宽。

  • 最大帧速率: MediaConvert 使用此值作为堆栈中带宽最高的格式副本的帧速率。根据输入情况,这可能是所有副本的帧速率。当您的输入帧速率较高时, MediaConvert 可能会将低带宽再现的帧速率减半。例如,如果您的输入帧速率为 60 fps,则 MediaConvert 可能对某些较低带宽的格式副本使用 30 fps,而对于最低带宽的格式副本,则可能使用 15 fps。

    如果不指定该值,默认的最大值就是输入帧频。

对于这些设置,会自动 MediaConvert 确定每个格式副本的以下值:

  • 质量调整级别:使用 M ul MediaConvert ti pass HQ 对所有格式副本进行编码。

    此行为在 MediaConvert 控制台中是自动的,但当您以编程方式提交作业时不会自动执行此行为。在不使用 MediaConvert 控制台的情况下设置 JSON 作业规范时,必须明确设置qualityTuningLevelMULTI_PASS_HQ

  • 速率控制模式:使用 QV BR 速率控制模式对所有格式副本进行 MediaConvert 编码。

    此行为在 MediaConvert 控制台中是自动的,但当您以编程方式提交作业时不会自动执行此行为。在不使用 MediaConvert 控制台的情况下设置 JSON 作业规范时,必须明确设置rateControlModeQVBR

  • 这些 QVBR 必需的设置:

    • QVBR 质量级别

    • 最大比特率

    • 最大平均比特率

  • HDR 缓冲区尺寸

  • HDR 缓冲初始填充

创建自动化 ABR 堆栈

当您知道是否要为可选限制指定值时,请跟随以下过程之一在任务中设置自动化 ABR。有关这些可选设置的更多信息,请参阅 自动化 ABR 的工作原理

Console

要使用 MediaConvert 控制台设置自动 ABR 作业,请执行以下操作:

  1. 像往常一样开始设置任务。有关更多信息,请参阅 开始使用 MediaConvert

    请按照以下过程操作,而非按照一般说明设置输出组和输出。

  2. 启动加速转码。此为可选项,但我们强烈推荐。有关更多信息,请参阅 加速转码

  3. 创建任务页面上,在左侧的任务窗格中,在输出组旁边,选择添加

  4. 选择流式输出组类型:Apple HLS、DASH ISO、Microsoft 平滑流式处理或 CMAF。

  5. 群组设置部分下方,启用自动化 ABR

  6. 可选择指定任何 自动化 ABR 规则

  7. 对于自动化 ABR 部分的设置,可以选择指定值。这些设置用于指定与整个 ABR 堆栈相关的限制。如果您选择保留默认值,则应该会得到不错的结果。

    有关更多信息,请参阅 自动化 ABR 的工作原理

  8. 从左侧的 Job 窗格中,在输出组下方,选择自动 ABR 基本输出

  9. 在右侧的自动生成的 ABR 副本的基本编码设置部分,可以选择指定与堆栈中副本属性相关的限制值。如果您选择保留默认值,则应该会得到不错的结果。

    有关更多信息,请参阅 自动化 ABR 的工作原理

  10. 可选择指定与自动化 ABR 无直接关系的编码设置值,如编解码器配置文件和级别。您所指定的值适用于堆栈中的所有副本。如果您选择保留默认值,则应该会得到不错的结果。

    有关每项设置的信息,请选择 MediaConvert 控制台中设置旁边的 “信息” 链接以查看设置说明。

  11. 如果您的工作流程需要在单独的非混音输出中使用视频和音频,请从自动生成的 ABR 副本的基本编码设置中移除音频 1。如果您需要视频和音频处于相同的多路复用输出中,请跳过此步骤。

    1. 选择音频 1选项卡。

    2. 自动生成的 ABR 副本的基本编码设置部分的右上角选择移除音频

  12. 可选择添加音频副本。对于要在 ABR 堆栈中添加的每个音频副本,请按照以下步骤操作。

    1. 从左侧的任务窗格,选择输出组。

    2. 输出部分中,选择添加带字幕或音频的输出以添加新的输出。

      输出 1保存您的自动化 ABR 视频设置,并表示堆栈中的每个视频副本。

    3. 从输出列表中选择新的输出。

    4. 编码设置部分中,按照不使用自动化 ABR 的任务设置您的音频副本。有关更多信息,请参阅 创建音频 ABR 流式处理输出

  13. 可选择添加字幕。像手动指定的 ABR 堆栈一样执行此操作。有关更多信息,请参阅 在 AWS Elemental MediaConvert 作业中设置字幕

  14. 可选择重复此步骤,以创建不同格式的其他 ABR 包。在包含自动化 ABR 输出组的任务中,所有 ABR 输出组都必须使用自动化 ABR。

API, SDK, or CLI

要使用 API、SDK 或 Amazon Command Line Interface (CLI) 设置自动 ABR 作业,请执行以下操作:

如果您使用 API、CLI 或 SDK,请在您的 JSON 任务规范中指定相关设置,然后以编程方式将其与您的任务一起提交。有关以编程方式提交作业的更多信息,请参阅 AWS Elemental MediaConvert API 参考中的一个入门主题:

  1. 确定要为自动化 ABR 设置的值。如果保留所有默认值,则应该会得到不错的结果。有关更多信息,请参阅 自动化 ABR 的工作原理

  2. 使用 MediaConvert 控制台生成 JSON 作业规范。我们推荐这种方法,因为控制台可以作为针对 MediaConvert 任务架构的交互式验证器。按照以下步骤使用控制台生成 JSON 任务规范:

    1. 在控制台中按照前面的步骤操作。

    2. 在左侧的 Job (作业) 窗格中的 Job settings (作业设置) 下,选择 Show job JSON (显示作业 JSON)

有关手动编辑 JSON 任务规范的信息

AWS Elemental MediaConvert API 参考中查找更多信息,包括每项设置在任务设置结构中的位置。此列表中的链接指向有关该文档中有关设置的信息:

重要

如果您通过手动编辑 JSON 作业规范来设置自动 ABR,而不是从 MediaConvert 控制台将其导出,则必须明确设置qualityTuningLevelrateControlModeMULTI_PASS_HQQVBR和为。

  • 明确设置这些必要的设置:

    • qualityTuningLevel 设置为 MULTI_PASS_HQ

    • rateControlMode 设置为 QVBR

      启用自动化 ABR 时,不需要为 QVBR 进行通常所需的设置,例如 qvbrSettingsqvbrQualityLevel。而是指定所需的自动化 ABR 设置。

  • 将加速转码模式设置为 PREFERREDENABLED。此为可选项,但我们强烈推荐。

  • 或者,指定与整个 ABR 堆栈相关的以下限制:

  • 可选择指定这些与堆栈中副本属性相关的限制:

    注意

    与这些 MediaConvert 控制台设置相对应的 API 属性的功能会有所不同,具体取决于它们是否位于自动 ABR 堆栈的输出中。

    • 最大分辨率widthheight

      • 在自动化 ABR 中:将这些设置结合使用来表示 ABR 堆栈中可能的最大分辨率。

      • 在其他输出中: 同时使用这些设置来表示输出分辨率。

    • 最大帧速率frameratecontrolnumerator、和 denominator

      有关这些属性的工作原理以及《API 参考》中指向这些属性的链接,请参阅 转换视频帧速率

      • 在自动化 ABR 中:使用这些设置来指定堆栈中带宽最高的副本的帧速率。如果您未指定这些设置,则 MediaConvert 使用输入视频的帧速率。

      • 在其他输出中:使用这些设置来指定输出帧率。

自动化 ABR 规则

使用自动 ABR 规则为在自动 ABR 堆栈中 MediaConvert 创建的格式副本大小指定限制。如果您的 ABR 工作流程有特定的格式副本大小要求,但您仍想针对视频质量和整体文件大小 MediaConvert 进行优化,我们建议您使用这些规则。

您可以定义以下规则:

  • 最小顶部副本尺寸

  • 最小底部副本尺寸

  • 强制包含副本

  • 允许的副本

最小顶部副本尺寸

为 ABR 堆栈中最高视频分辨率指定最小尺寸。最高分辨率大于或等于您输入的值。

例如:如果您指定 1920x1080,则 ABR 堆栈中的最高分辨率将大于或等于 1920x1080。

最小底部副本尺寸

为 ABR 堆栈中最低视频分辨率指定最小尺寸。ABR 堆栈中的最低分辨率大于或等于您输入的值。

例如:如果您指定 512x288,则 ABR 堆栈中的最低分辨率将大于或等于 512x288。

强制包含副本

指定要包含在 ABR 堆栈中的一个或多个视频分辨率。为了优化自动化 ABR,我们建议您指定尽可能少的分辨率。

ABR 堆栈可能包括您未在此处指定的其他分辨率,具体取决于 “最大格式副本” 设置。例如:如果您在强制包含副本下指定 2 个分辨率,并指定 7 个最大副本,则会自动确定 5 个分辨率。

强制包含副本与其他自动化 ABR 规则或设置有以下限制:

  • 至少有一种分辨率必须大于或等于最小顶部副本尺寸

  • 所有分辨率必须大于或等于最小底部副本尺寸

  • 必须指定允许的副本

  • 分辨率数必须小于或等于最大副本数

  • 重复的分辨率将被忽略。

允许的副本

在 ABR 堆栈中指定可能的视频分辨率列表。 MediaConvert仅从您指定的分辨率列表中创建 ABR 堆栈。

允许的格式副本” 列表中的某些分辨率可能不包括在内。但是,您可以通过将必需设置为启用来强制包含分辨率。

允许的副本与其他自动化 ABR 规则有以下限制:

  • 至少有一种分辨率必须大于或等于最小顶部副本尺寸

  • 至少有一种分辨率必须大于或等于最小底部副本尺寸

  • 必须指定强制包含副本

  • 分辨率数必须小于或等于最大副本数

  • 重复的分辨率将被忽略。

自动化 ABR 常见问题解答

我怎样才能看到 AWS Elemental MediaConvert 为我制作了哪些格式副本?

您可以在以下位置查看 ABR 堆栈中输出的属性:

我的自动化 ABR 任务需要很长时间才能运行吗?

我们建议您始终使用自动化 ABR 加速转码。如果这样做,您的任务所需时间应该只比手动指定 ABR 堆栈的加速转码任务稍长,输出结果也类似。您无需为启用加速转码支付更多费用,因为自动化 ABR 已经按照 2 Pass(质量优化)专业等级费率计费。

当您在没有加速转码的情况下运行自动化 ABR 任务时,运行时间要比具有手动指定 ABR 堆栈且输出相似的任务长得多。

为什么我的某些输出副本具有相同的分辨率?

当显示设备流式传输 ABR 资源时,它们会根据副本的比特率而不是根据副本的分辨率来请求分段。因此,一个 ABR 堆栈可以有不同带宽但分辨率相同的副本。在相同分辨率下,带宽越高的副本质量越好。

当您进入堆栈的下一个副本时,提高分辨率能否提高视频质量取决于视频的复杂性。该功能可以根据每个任务自动调整这些选择,是让您事半功倍的方法之一。

我能提前知道我的文件堆里会有多少副本吗?

不是。 MediaConvert 决定在转码过程中要使用哪些格式副本。由于编码决定取决于输入视频的质量,因此在运行任务前无法知道编码决定是什么。

您可以使用可选的限制设置,确保副本数量和副本大小不会超出您的要求。

自动化 ABR 堆栈将如何计费?

MediaConvert 仅向您收取它写入您的输出位置的格式副本的费用。例如,您可以将 “最大格式副本” 设置为 12,但 MediaConvert 可能会确定创建八个以上的格式副本没有好处。在这种情况下,只 MediaConvert 会向您收取八次演绎的费用。

自动化 ABR 是一项专业级功能,还需要 2 Pass 编码。每次副本均按 2 Pass(质量优化)费率以每分钟计费。例如,假设您的自动化 ABR 堆栈最后有 10 个副本,每个副本长达 60 分钟。您总共会被收取 600 分钟的费用。有关具体费率,请参阅 Amazon 云产品网站中的AWS Elemental MediaConvert 定价

那音频呢?

自动化 ABR 仅为您的视频副本进行设置。您可以将音频副本作为纯音频输出添加到自动化 ABR 输出组中。有关说明,请参阅创建自动化 ABR 堆栈

那字幕呢?

您可以将字幕作为仅限字幕的输出添加到您的自动化 ABR 包中。有关说明,请参阅创建自动化 ABR 堆栈

自动化 ABR 功能限制

包含自动化 ABR 输出组的任务会受到以下限制:

  • 您必须使用按需队列。您不能使用预留队列。

  • 您只能在任务和任务模板中启用自动化 ABR。您不能在输出预设中使用自动化 ABR。

  • 在包含自动化 ABR 输出组的任务中,所有 ABR 输出组都必须使用自动化 ABR。

  • 您的输出视频编解码器必须是 AVC (H.264) 或 H E VC (H.265)

  • 您的输出视频缩放行为必须是 “默认”、“拉伸到输出”、“适合” 或 “填充”。如果不升级,就无法使用 Fit。

  • 手动创建 JSON 任务规范时,必须指定这些必需的设置。当您启用自动 ABR 时, MediaConvert 控制台会为您设置它们。

    • qualityTuningLevel 设置为 MULTI_PASS_HQ

    • rateControlMode 设置为 QVBR