

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

# 指定输入文件和输入片段
<a name="specifying-inputs"></a>

可用于*装配 MediaConvert 工作流程*。装配工作流程是一项无需单独编辑软件即可执行基本输入剪辑和拼接以汇编来自不同来源的输出资产 MediaConvert 的工作。例如，组装工作流程可能会放置一个缓冲片，后跟与广告交错的特征内容。特征内容可能在每个特征段的开始处具有徽标图形叠加。

使用这些类型的作业，你可以使用*输入拼接从多个输入汇编输出，或者使用输入**剪辑来汇编部分输*入。 MediaConvert 从该程序集创建作业的所有输出。如果希望输出具有不同的输入文件剪辑或具有不同的输入排列，则必须为每个组装创建单独的任务。

**Topics**
+ [如何 MediaConvert 使用时间表来整理作业](#how-mediaconvert-uses-timelines-to-assemble-jobs)
+ [设置组装工作流程任务](#setting-up-an-assembly-workflow-job)
+ [设置音频轨道和音频选择器](more-about-audio-tracks-selectors.md)
+ [设置输入字幕](including-captions.md)

## 如何 MediaConvert 使用时间表来整理作业
<a name="how-mediaconvert-uses-timelines-to-assemble-jobs"></a>

MediaConvert 根据输入时间轴和*输出**时间轴组装输入*和输入片段。该服务根据您的设置构造这些时间轴，然后根据这些时间轴将您的输入组装到输出中。下图显示三个独立的输入时间轴和一个输出时间轴。

![\[三个独立的输入文件用三个矩形表示。每个矩形都由一个表示输入时间轴的数字行标记。一个时间轴从零开始。一个时间轴显示嵌入式时间码。一个时间轴反映从 1 小时开始的指定开始设置。其中两个矩形在内部有剪辑，只用矩形的部分颜色填充表示。其中一个矩形完全填充，表示输出中使用了整个输入文件。输入矩形下方是一个较宽的矩形，表示组装在一起的所有剪辑和输入。该矩形标有一个数字行，此行表示输出时间轴，该时间轴从 00:00:00:00 开始。\]](http://docs.amazonaws.cn/mediaconvert/latest/ug/images/assembly.png)


### 输入时间轴
<a name="input-timelines"></a>

每个输入都有自己的*输入时间轴*。输入时间轴是 MediaConvert 生成的一系列时间码，用于表示输入文件的每一帧。

默认情况下，输入时间轴与输入视频中嵌入的任何时间码相同。您可以在输入设置**时间码源**中指定不同的起始时间码。如果您使用 API 或 SDK，则可以在任务的 JSON 文件中找到此设置。设置名称为 `TimecodeSource`，位于`Settings`、`Inputs`中。有关更多信息，请参阅 [使用输入时间码源调整输入时间轴](timecode-input.md)。

MediaConvert 使用输入时间轴执行以下操作：
+ 确定输入图形叠加（插入的图像）何时出现在视频中。有关输入和输出叠加之间差异的更多信息，请参阅[在输入和输出叠加之间选择](choosing-between-input-overlay-and-output-overlay.md)。
+ 确定动态图形叠加（插入的图像）何时出现在视频中。有关不同类型的图形叠加的更多信息，请参阅[图像插入器](graphic-overlay.md)。
+ 将视频与基于时间码格式的*附加字幕* 同步。附加字幕是您作为独立于视频的输入文件提供的字幕。
+ 解释在指定输入剪辑时提供的时间码。

### 输出时间轴
<a name="output-timeline"></a>

*输出时间轴*是 MediaConvert 生成并嵌入到输出中的一系列时间码。 MediaConvert 还使用输出时间轴的时间码来实现适用于作业中每个输出的功能。

默认情况下，输出时间轴与嵌入在第一个输入文件的视频中的任何时间码相同。您可以在 **Job settings**（任务设置）下的任务范围的**时间码配置**设置中指定不同的起始时间码。如果您使用 API 或 SDK，则可以在任务的 JSON 文件中找到这些设置。这些设置位于 `Settings`、`TimecodeConfig` 下。有关更多信息，请参阅 [使用作业范围的时间码配置调整输出时间轴](timecode-jobconfig.md)。

MediaConvert 使用输出时间轴执行以下操作：
+ 当您在输出时间码设置中启用 **Timecode insertion (时间码插入)** 时，确定要嵌入到输出视频中的时间码。
+ 确定输出叠加（插入的图像）何时出现在视频中。有关不同类型的图形叠加的更多信息，请参阅[图像插入器](graphic-overlay.md)。
+ 确定 HLS 变体播放列表显示时间的方式。
+ 解释为 **Anchor timecode (锚点时间码)** 指定值时提供的时间码。

## 设置组装工作流程任务
<a name="setting-up-an-assembly-workflow-job"></a>

按照以下步骤设置组合组装工作流程特征（如输入剪辑、输入拼接、图形叠加和附加字幕同步）的任务。按此顺序执行这些任务可以使设置过程变得更容易。特别是，我们建议您最后指定输入剪辑。这是因为每个输入时间轴计算整个输入中的帧，而不是每个单独剪辑中的帧。

这个过程依赖于输入和输出时间轴的概念。有关更多信息，请参阅 [如何 MediaConvert 使用时间表来整理作业](#how-mediaconvert-uses-timelines-to-assemble-jobs)。

**设置组装工作流程任务（控制台）**

1. **指定您的视频输入文件。**

   一个作业中最多可以有 150 个输入。 MediaConvert 按照添加的顺序将输入拼接在一起。要使用同一输入文件中的多个剪辑，并且希望它们按时间顺序排列，而它们之间不需要其他输入，请仅指定一次输入文件。

   有关完整说明，请参阅[步骤 1：指定输入文件](setting-up-a-job.md#specify-input-settings)。

1. **设置您的音频选择器。**

   在每个输入中，您都会创建音频选择器以将输入音频映射到输出。有关说明，请参阅[步骤 2：为视频、音频和字幕创建输入选择器](setting-up-a-job.md#create-selectors)。

   使用 sidecar 音频文件，无需考虑时间码即可 MediaConvert 同步音频和视频。 MediaConvert 将音频文件的开头与视频文件的开头对齐。

   无论您的音频是在附加文件中还是嵌入到视频中，您都可以使用输入音频选择器中的 **偏移** 设置来调整其同步。对 **Offset (偏移)** 使用正数可在输入时间轴中将音频移向更晚的时间；使用负数可将其移向更早的时间。

1. **同步任何附加字幕。**

   如何设置附加字幕同步取决于输入字幕格式：
   + 如果输入字幕格式是基于时间码的（例如，SCC 或 STL），则服务将字幕文件中的时间码与输入时间轴同步。
   + 如果输入字幕格式是基于时间戳的（例如，SRT、SMI 或 TTML），则服务将字幕与视频同步，而不考虑时间码。

**相关信息**
   + [关于输入时间码源和字幕对齐](about-input-timecode-source-and-captions-alignment.md)
   + [使用输入时间码源调整输入时间轴](timecode-input.md)
   + [字幕和字幕选择器](including-captions.md) 

1. **当您希望显示任何图形叠加或动态图形叠加时进行设置。**

   如何指定叠加显示的时间取决于您指定的叠加类型：
   + 对于输入静止图形叠加，请在输入中您希望显示叠加的位置指定叠加。使用与该输入的时间轴匹配的时间码指定开始时间和结束时间。
   + 对于输出静止图形叠加，请根据输出时间轴指定显示叠加的时间。
   + 对于动态图形叠加，请根据输入的时间轴指定显示叠加的时间。

**相关信息**
   + [使用输入时间码源调整输入时间轴](timecode-input.md)
   + [使用作业范围的时间码配置调整输出时间轴](timecode-jobconfig.md)
   + [图像插入器](graphic-overlay.md)

1. **指定输入剪辑。**

   除非 MediaConvert 要包括输入的完整时长，否则请为每个输入指定输入片段。使用与该输入的时间轴匹配的时间码指定开始时间和结束时间。

   设置输入剪辑，如下所示：

   1. 在 **创建任务**页面上，在左侧的 **任务**窗格中，选择一个输入。

   1. 在 **Input clips** (输入剪辑) 部分中，选择 **Add input clip** (添加输入剪辑)。

   1. 输入您想包含的第一个剪辑的开始和结束时间码。使用以下 24 小时格式和帧号：HH: MM: SS: FF。

      为纯音频输入指定输入片段时，您所输入的时间码中的最后一个数字对应于百分之一秒。例如，00:00:30:75 等于 30.75 秒。

      请确保提供与您的输入时间轴一致的时间码。默认情况下，输入剪辑以嵌入在输入视频中的时间码为 MediaConvert 基础。对齐时间码的方式取决于您的输入视频是否嵌入了时间码：
      + 如果您的输入没有嵌入的时间码，则您必须将**时间码源**设置为**开始于 0** 或**指定的开头**。
      + **如果您的输入*确实*嵌入了时间码并且您 MediaConvert 想使用它们，那么对于**时间码源**，请保留默认值 “嵌入式”。**适当地指定剪辑的开始和结束时间。

        例如，如果您输入 **时间码源**设置为**嵌入**，并且您的视频具有从 01:00:00:00 开始的嵌入时间码，则将 30 秒剪辑的开始时间码定义为 01:00:30:00，而不是 00:00:30:00。默认情况下，输入时间线与视频中所嵌入的时间码相同。您可以通过调整输入的**时间码源**设置，更改确定输入时间线的内容。
      + 指定长度小于 12 小时的输入片段。

      有关更多信息，请参阅 [使用输入时间码源调整输入时间轴](timecode-input.md)。

   1. 指定任何其他剪辑。多个剪辑必须按时间顺序排列，不能重叠；每个 **Start timecode (开始时间码)** 必须晚于上一个剪辑的 **End timecode (结束时间码)**。

      如果您指定多个输入剪辑，则所有剪辑都会按您指定的顺序逐一出现在输出中。

# 设置音频轨道和音频选择器
<a name="more-about-audio-tracks-selectors"></a>

您可使用音频选择器将输入与输出音频关联。您可以设置一个音频选择器来代表输入中的一个或多个轨道。在此之后，在输出中创建音频轨道，并将单个音频选择器与每个输出轨道关联。

输入音频轨道、音频选择器和输出音频轨道之间的关联遵守以下规则：
+  每个输入轨道都可以与一个或多个音频选择器关联 
+  每个音频选择器有一个或多个输入轨道 
+  每个输出轨道都有一个音频选择器 

下图显示了这些关系。在此图中，输入文件包含三个音频轨道。音频选择器 1 选择输入轨道 1。音频选择器 1 与输出音频轨道 1 关联，因此输出的轨道 1 与输入的轨道 1 内容相同。没有音频选择器选择第二个输入音频轨道，因此在输出中未使用该轨道。音频选择器 2 选择输入轨道 1 和 3。音频选择器 2 与输出音频轨道 2 关联，因此输出轨道 2 包含输入轨道 1 和 3 的通道。

![\[使用音频选择器将输入轨道与输出轨道关联。\]](http://docs.amazonaws.cn/mediaconvert/latest/ug/images/audio-selectors-shared-vsd.png)


对于需要通道级别控制的工作流程，请使用音频通道混音功能，该功能支持以下工作流程：
+ 更改音频轨道中的通道顺序
+ 将音频通道从一个或多个输入轨道移动到不同的输出轨道
+ 将多个通道的音频合并到单个通道
+ 将单通道的音频分割到多个通道
+ 调整音频通道的音量级别

# 设置输入字幕
<a name="including-captions"></a>

要在任务中包含字幕，请按所列顺序执行以下步骤：

1. 如果输入字幕是基于时间码的附加字幕格式（如 SCC 或 STL），[请设置时间码源设置](#set-the-timecode-source-settings)。

1. [收集所需字幕信息。](#gather-required-captions-information)

1. [创建输入字幕选择器。](#create-input-caption-selectors)

1. [设置输出中的字幕。](set-up-captions-in-outputs.md)

有关支持的输入和输出字幕的完整列表，请参阅 [字幕参考表](captions-support-tables.md)。

有关为您的输出设置字幕的更多信息，请参阅 [设置输出中的字幕](set-up-captions-in-outputs.md)。

**提示**  
您可以 Amazon Transcribe 与一起使用 MediaConvert 来生成字幕并将其包含在输出中。*有关更多信息，请参阅示例中的[使用 Amazon Transcribe 进行Amazon VOD 字幕](https://github.com/aws-samples/aws-transcribe-captioning-tools)。Amazon * GitHub

## 指定时间码源
<a name="set-the-timecode-source-settings"></a>

要使字幕与视频正确同步，必须将输入时间轴设置为与字幕文件中嵌入的时间码相匹配。 MediaConvert 根据您为输入 **Timecode 源设置选择的值来建立输入时间**轴。有关更多信息，请参阅 [输入时间码源和字幕对齐](about-input-timecode-source-and-captions-alignment.md)。

有关调整 **Timecode source (时间码源)** 设置的说明，请参阅[使用输入时间码源调整输入时间轴](timecode-input.md)。

## 收集所需字幕信息
<a name="gather-required-captions-information"></a>

在任务中设置字幕之前，请记录以下信息：
+ *输入字幕格式*。您必须提前获得这些信息； MediaConvert 不要从您的输入文件中读取这些信息。
+ 输入字幕包含的将用于任一输出的 *tracks (轨道)*。
+ 要通过任务创建的*输出程序包和文件*。有关指定输出程序包或文件类型的信息，请参阅[创建输出](output-settings.md)。
+ 要在每个输出中使用的*输出字幕格式*。

  有关基于您的输入容器、输入字幕格式以及输出容器的受支持输出字幕的信息，请参阅[视频容器中支持的输入字幕](captions-support-tables-by-container-type.md)。
+ 要为每个输出包含的 *output captions tracks (输出字幕轨道)*。如果您通过 teletext-to-teletext，则输入中的所有轨道都可以在输出中使用。否则，包含在输出中的轨道可能只是输入中的部分可用轨道。

## 创建输入字幕选择器
<a name="create-input-caption-selectors"></a>

设置字幕时，请首先创建字幕选择器。字幕选择器确定输入的特殊字幕资产，并将一个标签与之关联。字幕资产为单个轨道或输入文件中包含的所有轨道的集合，具体取决于输入字幕格式。例如，您可以添加 **Captions selector 1** (字幕选择器 1)，并将法语字幕与之关联。当您[设置输出以包含字幕](set-up-captions-in-outputs.md)时，可通过指定字幕选择器执行此操作。

**创建输入字幕选择器**

1. 在 **创建任务**页面上，在左侧的 **任务**窗格中，选择一个输入。
**注意**  
在具有多个输入的任务中，每个输入都必须包含相同数目的字幕选择器。对于没有字幕的输入，请创建空字幕选择器。对于这些选择器，在 **Source**（源）中选择 **Null source**（空源）。如果没有输入有字幕，请移除所有字幕选择器。

1. 在页面底部附近的 **Captions selectors** (字幕选择器) 部分中，选择 **Add captions selector** (添加字幕选择器)。

1. 在 **Source** (源) 下，选择输入字幕格式。

1. 对于大多数格式，会显示更多字段。根据输入字幕格式相关主题的描述为这些字段指定值。从该过程后面的列表中选择相应的主题。

1. 根据需要创建更多字幕选择器。您需要的字幕选择器的数量取决于输入字幕格式。从该过程后面的列表中选择相应的主题。

# QuickTime MXF VANC 数据中的字幕曲目或字幕（辅助）输入字幕
<a name="ancillary"></a>

如果您的输入字幕为以下任一格式，则服务会将其作为“辅助”数据进行处理：
+ QuickTime 字幕曲目（格式 QTCC）
+ MXF VANC 数据

MediaConvert 不会创建这些格式的输出字幕，但您可以将其转换为[支持的输出格式](captions-support-tables-by-container-type.md)。

**对于辅助字幕**
+ 为将用于输出的每个轨道创建一个字幕选择器。
+ 在每个字幕选择器中，对于 **Source** (源)，选择 **Ancillary** (辅助)。
+ 在每个字幕选择器中，对于 **CC channel (CC 通道)**，选择与选择器关联的轨道的通道编号。

  例如，输入字幕在 CC 通道 1 中使用英语，在 CC 通道 2 中使用西班牙语。要使用这些字幕，请创建字幕选择器 1，然后在 **CC channel** (CC 通道) 下拉列表中选择 1。接下来，创建字幕选择器 2，然后在 **CC channel** (CC 通道) 下拉列表中选择 2。

# 嵌入式 (CEA/EIA-608, CEA/EIA-708)、嵌入式 \$1scte-20 和 scte-20\$1 嵌入式输入字幕
<a name="embedded"></a>

如果您的输入字幕为以下任意格式，则服务会将其作为“嵌入式”数据进行处理：
+ CEA-608
+ EIA-608
+ CEA-708
+ EIA-708

如果您的输入字幕同时具有嵌入式字幕和 SCTE-20 字幕，并且您希望输出中具有这两种类型，请为 SCTE-20 和嵌入式字幕轨道设置单独的输入字幕选择器。通过与设置嵌入式选择器相同的方式来设置 SCTE-20 字幕选择器。

**注意**  
对于 MXF 输入，您的字幕很可能位于辅助轨道上。某些第三方媒体分析工具错误地将这些字幕报告为 608/708 嵌入式字幕。有关设置辅助字幕的信息，请参阅 [QuickTime MXF VANC 数据中的字幕曲目或字幕（辅助）输入字幕](ancillary.md)。

## 嵌入式字幕的字幕选择器的数量
<a name="embedded-how-many-caption-selectors"></a>
+ 如果所有输出字幕也采用嵌入式格式，则只创建一个字幕选择器，即使您希望在输出中包含多个轨道也是如此。利用此设置， MediaConvert 将自动提取所有轨道并将其包含在输出中。
+ 如果所有输出都采用非嵌入式格式，则为要包含在输出中的每个轨道创建一个字幕选择器。
+ 如果您的一些输出具有嵌入式格式的字幕，而一些输出具有其他格式的字幕，则为具有嵌入式字幕的输出创建一个字幕选择器。还可为带其他未嵌入标题的输出创建单独的选择器，每个标题均对应于输出中所需的一个轨道。

## 嵌入式字幕的字幕选择器字段
<a name="embedded-caption-selector-fields"></a>

**Source** (源)：选择 **Embedded** (嵌入式)

**CC channel number (CC 通道编号)**：此字段指定要提取的轨道。完成步骤如下：
+ **如果您正在制作 embedded-to-embedded字幕（也就是说，您只为输入的嵌入式字幕创建一个字幕选择器），则 MediaConvert 会忽略此字段，因此请保留 CC 频道号的默认值。**
+ 如果要将嵌入式字幕转换为另一种格式（即创建多个字幕选择器，每个选择器对应一个轨道），请指定包含所需轨道的输入中的字幕通道编号。要进行该操作，请从下拉列表中选择通道编号。例如，选择 **1** 进行选择 CC1。

**注意**  
MediaConvert 不会自动检测每个频道中使用哪种语言。您可以在设置输出字幕时指定这一点，以便将字幕通道的语言代码元数据 MediaConvert 传递到输出中以供下游使用。



# DVB-Sub 输入字幕
<a name="dvb-sub-or-scte-27"></a>

MediaConvert 仅在 TS 输入中支持 DVB-Sub。

在大多数情况下，为每个轨道创建一个字幕选择器。在每个选择器中，通过提供 PID 或语言代码来指定所需的轨道。

**注意**  
请勿在 **PID** 字段和 **Language** (语言) 下拉列表中指定字幕。请只指定其中一项。

如果您正在使用 DVB-sub-to-DVB-sub，并且想要将所有字幕轨道从输入传递到输出，请为所有轨道创建一个字幕选择器。在这种情况下，请将 **PID** 字段留空，然后不要从 **Language (语言)** 下拉列表中选择任何语言。

# 图文输出字幕
<a name="teletext"></a>

如何设置图文电视输入字幕选择器取决于您计划如何在输出中使用字幕。您可以通过下面的一种方式来使用图文字幕：
+ [图文电视转图文电视直通](#input-teletext-to-output-teletext-passthrough)

  使用图文电视直通， MediaConvert 可以将输入字幕从输入到输出保持不变。字幕样式、图文电视页码和非字幕的图文电视数据在输出中的显示与在输入中的显示完全相同。

  图文电视直通是在输出中包含非字幕的图文电视数据的唯一方法。
+ [图文电视到图文电视，页面重新映射](#input-teletext-to-output-teletext-with-page-remapping)

  如果您希望输出的图文电视页码与输入的页码不同，则可以重新映射内容。当您这样做时，您的输出字幕的样式很简单，您会丢失所有不是字幕的图文电视数据。
+ [将图文电视转换为其他字幕格式](#input-teletext-to-other-format-output-captions)

  您可以使用图文电视输入字幕生成其他格式的输出字幕。要查看可以从图文电视输入中生成哪些字幕，请参阅 [字幕参考表](captions-support-tables.md)。

有关为每个工作流设置字幕的信息，请参阅以下主题。

## 图文电视转图文电视直通
<a name="input-teletext-to-output-teletext-passthrough"></a>

在进行图文电视转图文电视直通时，为整组输入字幕创建一个输入字幕选择器。请不要指定的**页码**值。

有关设置此字幕工作流输出的信息，请参阅 [图文电视转图文电视直通](teletext-output-captions.md#teletext-to-teletext-passthrough)。

## 图文电视到图文电视，页面重新映射
<a name="input-teletext-to-output-teletext-with-page-remapping"></a>

当输入和输出字幕的字幕格式均为图文电视时，并且您希望输出图文电视页码与输入页码不同时，请为输入的每个图文电视页面创建一个单独的输入字幕选择器。为页码指定输入图文电视**页码**。

有关设置此字幕工作流输出的信息，请参阅 [图文电视到图文电视，页面重新映射](teletext-output-captions.md#teletext-to-teletext-page-remapping)。

## 将图文电视转换为其他字幕格式
<a name="input-teletext-to-other-format-output-captions"></a>

如果您的输入字幕是图文电视，而输出字幕是另一种格式时，请为每个输入图文电视页面设置一个输入字幕选择器。为页码指定输入图文电视**页码**。

有关设置此字幕工作流程输出的信息，请参阅 [设置输出中的字幕](set-up-captions-in-outputs.md) 中有关输出格式的部分。

# IMSC、SCC、SMPTE-TT、SRT、STL、TTML (sidecar) 输入字幕
<a name="sidecar-input"></a>

IMSC、SCC、SMPTE-TT、SRT、STL 和 TTML 是附加字幕格式。借助这些格式，您输入字幕需要以单独的文件提供。根据您的输出字幕设置，服务会以相同的格式将字幕传递到输出中，或将它们转换为另一种附加格式。

**附加字幕**  
在任何情况下，您都可以为每个输入字幕文件创建一个字幕选择器。

在**源文件**中，输入存储在 Amazon S3 或 HTTP (S) 服务器上的字幕输入文件的 URI。对于 Amazon S3 输入，您可以直接指定 URI，也可以选择**浏览**以从 Amazon S3 存储桶中选择。对于 HTTP 输入，提供指向您的输入视频文件的 URL。有关更多信息，请参阅 [HTTP 输入要求](http-input-requirements.md)。

**IMSC 字幕**  
MediaConvert 支持 IMSC 作为输入字幕格式，可以作为边车文件或作为 IMF 来源的一部分。如果您的输入 IMSC 字幕是 IMF 包的一部分，请参阅 [IMSC 输入字幕（作为 IMF 来源的一部分）](IMSC-in-MXF.md)。有关 IMSC 支持的限制，请参阅 [IMSC 要求](imsc-captions-support.md)。

**SMPTE-TT 字幕**  
您可以使用纯文本 SMPTE-TT 输入字幕，这些字幕文件中包含的字幕图像采用 base64 编码 (`smpte:image encoding="Base64"`)，以及使用字幕图像的外部引用 (`smpte:backgroundImage`)。

当您的字幕使用图像的外部引用时，这些图像必须与字幕文件位于相同的 Amazon S3 存储桶和文件夹中。例如，假设这是您的 SMPTE\$1TT 文件的 Amazon S3 路径：`amzn-s3-demo-bucket/mediaconvert-input/captions/my-captions-spanish.ttml`。然后，您必须将字幕文件引用的图像文件存储在此处：`s3://amzn-s3-demo-bucket/mediaconvert-input/captions/`。

**SRT 字幕**  
MediaConvert 支持采用 UTF-8 字符编码的 SRT 输入字幕。

**同步附加字幕和视频**  
为确保字幕与视频正确同步，请检查 **Video selector** (视频选择器) 部分中的 **Timecode source** (时间码源) 的值与字幕文件中的时间码是否匹配。例如，如果视频的嵌入式时间码从 01:00:00:00 开始，但是字幕文件的时间码从零开始，请将 **时间码源** 的默认值从 **嵌入式** 更改为 **Start at 0** (以 0 开始)。如果您的任务的其他方面阻止了这种情况，请使用 **Time delta**（时间增量）设置来调整字幕，如 [时间增量的使用案例](time-delta-use-cases.md) 中所述。

**注意**  
MediaConvert 根据字幕格式是基于时间码还是基于时间戳，以不同的方式处理字幕与视频的对齐方式。有关更多信息，请参阅 [输入时间码源和字幕对齐](about-input-timecode-source-and-captions-alignment.md)。

在**时间增量**输入正数或负数来修改字幕文件中的时间。默认情况下，时间增量以秒为单位。例如，输入 **15**以将字幕文件中的所有时间增加 15 秒。或者输入 **-5**，将字幕文件中的所有时间减去 5 秒。要改为以毫秒为单位进行指定，请将 **时间增量单位 **设置为 **毫秒**。

如果您为 **时间增量**输入的值会在视频之前或之后生成字幕，则这些字幕将不会出现在输出中。

**注意**  
从 SCC 转换为 SRT 时， MediaConvert 首先将您为**时间增量**设置的值四舍五入到最接近的输入帧。 MediaConvert 在计算输出 SRT 时序时使用此四舍五入的值。

**Topics**
+ [输入时间码源和字幕对齐](about-input-timecode-source-and-captions-alignment.md)
+ [时间增量的使用案例](time-delta-use-cases.md)
+ [将双 SCC 输入文件转换为嵌入式字幕](converting-dual-scc-input-files-to-embedded-captions.md)
+ [TTML 样式格方式](ttml-style-formatting.md)

# 输入时间码源和字幕对齐
<a name="about-input-timecode-source-and-captions-alignment"></a>

当您通过将输入 **Timecode source (时间码源)** 设置为 **Start at 0 (以 0 开始)** 或 **Specified start (指定的开始值)** 以调整输入时间轴时， MediaConvert 的行为就像您的输入已经嵌入了您指定的开始时间码。但是 MediaConvert 不会更改 sidecar 字幕文件中的时间码或时间戳。因此，对齐字幕的方式取决于您的字幕格式。

**基于时间码的附加格式（SCC、STL）**  
包括 SCC 和 STL 在内的某些字幕格式会通过时间码来定义字幕置于视频中的位置。使用这些格式，根据输入时间轴中每帧的时间码，将每个标题 MediaConvert 放在字幕文件中指定的帧上。要将您的字幕调整为在另一个不同时间开始，请使用 **Time delta**（时间增量）设置。有关更多信息，请参阅 [时间增量的使用案例](time-delta-use-cases.md)。

MediaConvert 根据您为输入 **Timecode 源设置选择的值来建立输入时间**轴。

例如，如果您的 SCC 文件指定第一个字幕应出现在 00:05:23:00 处，并且您将 **Timecode source (时间码源)** 设置为 **Specified start (指定的开始值)**，将 **Start timecode (开始时间码)** 设置为 00:04:00:00，则第一个字幕将显示在视频输出一分二十三秒处。如果将 **Timecode source (时间码源)** 设置为 **Specified start (指定的开始时间)**，并且将 **Start timecode (开始时间码)** 设置为 01:00:00:00，您将不会看到预期的字幕，因为根据输入的时间轴，00:05:23:00 发生在视频开始之前。

**基于时间戳的附加格式（SRT、SMI、TTML）**  
包括 SRT、SMI 和 TTML 在内的某些字幕格式允许通过时间戳定义字幕置于视频中的位置。使用这些字幕，根据距离视频开头的距离、时间来 MediaConvert 测量字幕的位置。无论字幕文件通过时间码还是时间戳指定放置都是如此。

因此，您的字幕会出现在字幕文件中指定的时间，而不会考虑视频时间码。例如，如果您的 SRT 文件指定了第一个字幕应出现在 00:05:23:00 或 00:05:23,000 处，并且您将 **Timecode source (时间码源)** 设置为 **Specified start (指定的开始值)**，将 **Start timecode (开始时间码)** 设置为 00:04:00:00，则第一个字幕仍然显示在视频输出五分二十三秒处。

要将您的字幕调整为在另一个不同时间开始，请使用 **Time delta**（时间增量）设置。有关更多信息，请参阅 [时间增量的使用案例](time-delta-use-cases.md)。

**在视频流中嵌入字幕的格式 (CEA/EIA-608, CEA/EIA-708)**  
有些字幕格式直接将字幕嵌入在视频帧或视频帧元数据中。使用这些字幕，无论时间码设置如何，都将字幕与其嵌入的帧一起 MediaConvert 保存。

# 时间增量的使用案例
<a name="time-delta-use-cases"></a>

如何使用 **Time delta (TimeDelta)** 取决于你要解决的问题和你正在使用的字幕格式。

 默认情况下，您可以以秒为单位指定时间增量。如果要改为以毫秒为单位进行指定，请将**时间增量单位 (TimeDeltaUnits) 设置为毫秒 (**MILLIS** ECONDS)**。

## 调整视频和字幕文件之间的不同时间码
<a name="adjusting-for-different-timecodes-between-video-and-captions-files"></a>

使用基于时间码的字幕格式（如 SCC 和 STL），字幕中的时间码可能相对于开始时间码（该时间码与视频中嵌入的开始时间码不同）。您可以使用 **Time delta**（时间增量）来调整差异。

**问题示例：**您的视频文件可能嵌入了从 00:05:00:00 开始的时间码。第一个需要字幕的对话实例可能是视频中一分钟的位置，时间码为 00:06:00:00。您的字幕文件可能会根据以下假设编写：您的视频时间码从 00:00:00:00 开始，第一个字幕从 00:01:00:00 开始。如果您不使用 **Time delta (时间增量)**， MediaConvert 不会包含此第一个字幕，因为它出现在视频开始之前。

**解决方案：**在字幕中增加五分钟时间。输入**300** **时间增量**。

## 同步视频和音频后调整字幕
<a name="adjusting-captions-after-sychronizing-video-and-audio"></a>

您基于时间码（SCC 或 STL）的字幕可能会与您的视频中嵌入的时间码对齐，但您可能需要使用输入 **Timecode source (时间码源)** 设置来对齐音频。此设置会创建视频和字幕之间的差值，您需要对它进行调整。对于基于时间戳的字幕格式（如 SRT、SMI 和 TTML），您不需要进行此调整。

有关使用输入 **Timecode source (时间码源) ** 时对齐字幕的更多信息，请参阅 [输入时间码源和字幕对齐](about-input-timecode-source-and-captions-alignment.md)。

**示例问题**：您的视频文件可能嵌入了从 00:05:00:00 开始的时间码，并且需要字幕的第一个对话实例可能是视频的一分钟，时间码为 00:06:00:00。您的字幕文件已正确编写以实现同步，第一个字幕从 00:06:00:00 开始。但是，您需要在输入中更改嵌入式字幕，以便与音频文件正确同步。因此，您将 **Timecode source (时间码源)** 设置为 **Start at Zero (从零开始)**。如果你不使用 T **ime delta**，则 MediaConvert 会在视频播放六分钟后在输出中添加第一个字幕。

**解决方案：**从字幕中减去五分钟时间。输入**-300** **时间增量**。

## 更正字幕同步中的轻微错误
<a name="correcting-slight-errors-in-captions-sync"></a>

对于任何类型的附加字幕格式，输入字幕文件中可能会出现某个小错误，导致字幕始终延迟或提前。

**示例问题**：您的视频包含从零开始的嵌入式字幕。需要字幕的第一个对话实例是 00:06:15:00，但字幕在屏幕上显示时有 3 秒的延迟，即 00:06:18:00。

**解决方案：**从字幕减去三秒时间。输入**-3** **时间增量**。

# 将双 SCC 输入文件转换为嵌入式字幕
<a name="converting-dual-scc-input-files-to-embedded-captions"></a>

如果要将两个 SCC 文件用作字幕输入，并将字幕作为两个输出字幕通道嵌入到输出视频流中，请根据此过程设置字幕。

**将双 SCC 转换为嵌入式字幕**

1. 设置两个输入字幕选择器。按照[创建输入字幕选择器](including-captions.md#create-input-caption-selectors)中的程序操作。按以下所示指定值：
   + 在每个字幕选择器中，对于 **源**，选择**辅助**。
   + 对于 **Source file (源文件)**，请在每个选择器中选择其中一个输入 SCC 文件。
   + 如果您要在输出中同时嵌入 608 和 708 字幕，请在两个字幕选择器中选择 **Upconvert**（向上转换），**进行强制 608 到 708 的向上转换**。

1. 设置您的输出中的字幕。按照[设置输出中的字幕](set-up-captions-in-outputs.md)中的程序操作。按照以下特定选项操作：
   + 在与要嵌入字幕的视频相同的输出中指定字幕。
   + 选择 **Add captions**（添加字幕）两次，在 **Encoding settings**（编码设置）部分中创建 **Captions 1**（字幕 1）和 **Captions 2**（字幕 2）选项卡。
   + 对于 **Captions source (字幕源)**，在每个字幕选项卡中，选择您在此过程的上一步中创建的字幕选择器之一。
   + 对于 **CC channel number (CC 通道编号)**，为不共享字段的每个字幕选项卡选择一个数字。例如，在 **Captions 1**（字幕 1）中，选择 **1** 作为 **CC channel number**（CC 频道号），在 **Captions 2**（字幕 2）中，选择 **3** 作为 **CC channel number**（CC 频道号）。

     请勿选择组合 1 和 2 或 3 和 4，因为这些通道对共享相同的字段。
   + 如果在此过程的上一步中选择了 **Upconvert (向上转换)**，则可以选择为 **708 service number (708 服务编号)** 指定服务编号。在输出中，每个字幕选项卡必须指定不同的服务编号。

     如果您执行向上转换，但没有为 **708 service number (708 服务编号)** 指定值，则服务将使用您为 **CC channel number (CC 通道编号)** 指定的值作为 708 服务编号。

# TTML 样式格方式
<a name="ttml-style-formatting"></a>

AWS Elemental MediaConvert 作业运行时读取输入字幕的样式格式。如果您发现输出的样式格式存在问题，我们建议您检查输入字幕的格式或将 **Style passthrough**（样式直通）设置为“启用”。以下主题提供了在 TTML 输入字幕中使用字体、可继承和不可继承的属性以及以及从右向左语言提供了指导。

**指定字体** 

MediaConvert 支持 [TTML2 W3C 推荐](https://www.w3.org/TR/ttml2/#style-value-generic-family-name)中列出的以下通用字体系列：
+ 默认
+ 等宽
+ 无衬线
+ 衬线
+ monospaceSansSerif
+ 等宽衬线
+ proportionalSansSerif
+ 比例衬线

为获得最佳效果，请在 TTML 输入标题中指定通用字体系列。如果您改为指定单个字体，则 MediaConvert 会将该字体映射到上面列出的通用字体系列之一。

**可继承和不可继承的属性** 

样式属性要么是可继承的，要么是不可继承的。[TTML2 W3C 建议](https://www.w3.org/TR/ttml2/#styling-attribute-vocabulary)列出了每个样式属性的*继承*值。

将不可继承的样式属性包含在您希望其适用的每个元素中。

例如，`tts:backgroundColor` 是一个不可继承的样式属性。如下所示，*hello* 的背景色为红色，而 *world* 没有背景色：

`<span tts:backgroundColor="red">hello<br/>world</span>` 

您可以通过使用单独的跨距来修正上述格式（每个跨度都有自己的样式属性），使 *hello world* 都具有红色背景色，如下例所示：

`<span><span tts:backgroundColor="red">hello</span> <br/> <span tts:backgroundColor="red">world</span></span>` 

**从右到左的语言** 

MediaConvert 在 TTML 中支持从左到右和从右到左的文本方向。

如果不指定文本方向，则 MediaConvert 使用从左到右。

要指定从右到左，请添加一个 `tts:direction="rtl"` 属性。如果您的文本混合了双向字符，则还应按照 [TTML2 W3C](https://www.w3.org/TR/ttml2/#style-attribute-direction) 建议中的说明添加一个`tts:unicodeBidi="embed"`属性。请注意，`tts:unicodeBidi` 是一个不可继承的属性。

# IMSC 输入字幕（作为 IMF 来源的一部分）
<a name="IMSC-in-MXF"></a>

AWS Elemental MediaConvert 支持 IMSC 作为输入字幕格式，可以作为边车文件或作为 IMF 来源的一部分。如果您的输入 IMSC 字幕在附加文件中，请参阅 [IMSC、SCC、SMPTE-TT、SRT、STL、TTML (sidecar) 输入字幕](sidecar-input.md)。

如果您的输入 IMSC 字幕是 IMF 源的一部分，则不必指定 IMSC 字幕的源文件。该信息位于您为任务输入指定的 CPL 文件中。有关 IMSC 支持的限制，请参阅 [IMSC 要求](imsc-captions-support.md)。

**IMSC 的字幕选择器的数量**  
为每个轨道创建一个字幕选择器。

**轨道编号**  
通过提供轨道编号指定所需的字幕。轨道编号对应于轨道在 CPL 文件中的显示顺序。例如，如果 CPL 文件首先列出法语字幕，请将 **Track number (轨道编号)** 设置为 **1** 以指定法语字幕。

**在 JSON 任务规范中**  
如果您使用 API 或 SDK，则可以在任务的 JSON 文件中找到这些设置。上述设置位于下方`Inputs`，如下例所示：

```
"Inputs": [

 
      {
        ...
        		
        "CaptionSelectors": {
          "Captions Selector 1": {
            "SourceSettings": {
              "SourceType": "IMSC",
              "TrackSourceSettings": {
                "TrackNumber": 1
              }
            }
          },

          "Captions Selector 2": {
            "SourceSettings": {
              "SourceType": "IMSC",
              "TrackSourceSettings": {
                "TrackNumber": 4
              }
            }
          },
          ...
```

# WebVTT 输入字幕（作为 HLS 来源的一部分）
<a name="WebVTT-in-HLS"></a>

AWS Elemental MediaConvert 支持 WebVTT 作为输入字幕格式，可以作为边车文件或作为 HLS 源的一部分。如果您的输入 WebVTT 字幕在附加文件中，请参阅 [IMSC、SCC、SMPTE-TT、SRT、STL、TTML (sidecar) 输入字幕](sidecar-input.md)。

如果您的输入 WebVTT 字幕是 IMF 源的一部分，则不必指定 WebVTT 字幕的源文件。该信息位于您为任务输入指定的 HLS 文件中。您需要启用 **Use HLS Rendition Group**（使用 HLS 副本组）并使用以下设置。

**WebVTT 的字幕选择器的数量**  
为每个 WebVTT 来源创建一个字幕选择器。

**副本组 Id**  
通过提供分组 ID 指定所需字幕组。群组 ID 对应于 HL EXT-X-MEDIA S 清单中的 GROUP-ID 标签。例如，如果您的 HLS 清单文件在特定组“订阅”中列出了您的法语字幕，请将 **Rendition Group ID**（副本组 ID）设置为 **subs**（订阅）以指定法语字幕组 ID。

**条件名称**  
通过提供副本名称指定您想要的字幕组。格式副本名称对 EXT-X-MEDIA应于 HLS 清单中的 NAME 标签。例如，如果您的 HLS 清单文件以名为“法语”的副本名称列出了您的法语字幕，请将 **Rendition Name**（副本名称）设置为 **French**（法语）以指定法语字幕副本名称。

**副本语言代码**  
通过提供 ISO 639-3 语言代码来指定您想要的字幕组。该语言对 EXT-X-MEDIA应于 HLS 清单中的 LANGUAGE 标签。例如，如果您的 HLS 清单文件以“FRA”的语言代码列出了您的法语字幕，请将 **Rendition Language Code**（副本语言代码）设置为 **FRA** 以指定法语字幕的副本语言代码。

**在 JSON 任务规范中**  
如果您使用 API 或 SDK，则可以在任务的 JSON 文件中找到这些设置。上述设置位于下方`Inputs`，如下例所示：

```
"Inputs": [

 
      {
        ...
        		
"CaptionSelectors": {
  "Caption Selector 1": {
    "SourceSettings": {
      "SourceType": "WebVTT",
      "WebvttHlsSourceSettings": {
        "RenditionGroupId": "subs",
        "RenditionName": "French",
        "RenditionLanguageCode": "FRA"
      }
    }
  }
}
          ...
```