

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

# 在作业设置中使用变量
<a name="using-variables-in-your-job-settings"></a>

您可以在作业设置中使用变量（也称为*格式标识符*） 。格式标识符是可以放在作业设置中的值，这些值在输出中的解析方式不同，具体取决于输入文件或作业的特征。它们在您打算复制和重复使用的输出预设、作业模板和作业中特别有用。请注意，变量区分大小写。

例如，您可以在**目标**设置中使用日期格式标识符 `$d$`。如果您希望按作业的开始日期和时间组织输出，则可为 **Destination (目标)** 输入 **s3://amzn-s3-demo-bucket1/\$1d\$1/**。对于在 2020 年 6 月 4 日开始的作业，该服务将在 `s3://amzn-s3-demo-bucket1/20200604/` 中创建您的输出。

有关可用格式标识符的列表以及如何使用这些标识符的示例，请参阅 [设置变量与示例列表](#list-of-settings-variables-with-examples)。

有关在流输出中功能不同的格式标识符的信息，请参阅 [将设置变量与流式处理输出结合使用](#using-settings-variables-with-streaming-outputs)。

**Topics**
+ [设置变量与示例列表](#list-of-settings-variables-with-examples)
+ [将设置变量与流式处理输出结合使用](#using-settings-variables-with-streaming-outputs)
+ [指定最小位数](#specifying-a-minimum-number-of-digits)

## 设置变量与示例列表
<a name="list-of-settings-variables-with-examples"></a>

下表提供了有关可在 AWS Elemental MediaConvert 作业中使用的每种格式标识符的信息。有关在流输出中功能不同的格式标识符的信息，请参阅 [将设置变量与流式处理输出结合使用](#using-settings-variables-with-streaming-outputs)。


| 格式标识符 | 要放在作业设置中的值 | 兼容的作业设置 | 说明和示例 | 
| --- |--- |--- |--- |
| 日期和时间 |  `$dt$`  |  目标位置 名称修饰符 段修饰符  |  作业开始时间的 UTC 日期和时间。 格式：YYYYMMDDTHHMMSS 示例：对于在 2020 年 6 月 4 日下午 3:05:28 开始的作业，**\$1dt\$1** 将解析为 `20200604T150528`。  | 
| 日期 |  `$d$`  |  目标位置 名称修饰符 段修饰符  |  作业的开始时间的 UTC 日期。 格式：YYYYMMDD 示例：对于在 2020 年 6 月 4 日开始的作业，**\$1d\$1** 将解析为 `20200604`。  | 
| 时间 |  `$t$`  |  目标位置 名称修饰符 段修饰符  |  作业的 UTC 开始时间。 格式：HHMMSS 示例：对于在下午 3:05:28 开始的作业，**\$1t\$1** 将解析为 `150528`。  | 
| 视频比特率 |  `$rv$`  |  名称修饰符 段修饰符  |  输出的视频比特率（以千位为单位）。对于 QVBR 输出，该服务使用视频最大比特率（以千位为单位）。 示例：如果您将 **Encoding settings (编码设置)**、**Video (视频)**、**Bitrate (bits/s) (比特率(位/秒))** 设置为 **50000000**，则 **\$1rv\$1** 将解析为 `50000`。  | 
| 音频比特率 |  `$ra$`  |  名称修饰符 段修饰符  |  输出中所有音频比特率的总计（以千位为单位）。 示例：如果您有一个带单个音频选项卡的输出，并且您将 **Encoding settings (编码设置) **、**Audio 1 (音频 1) **、**Bitrate (kbit/s) (比特率(千位/秒)) ** 设置为 **256000**，则 **\$1ra\$1** 将解析为 `256000`。  | 
| 容器比特率 |  `$rc$`  |  名称修饰符 段修饰符  |  输出的组合音频和视频比特率（以千位为单位）。 示例：您有一个带 **Video (视频)** 设置选项卡和 **Audio 1 (音频 1)** 设置选项卡的输出。如果您将 **Encoding settings (编码设置)**、**Video (视频)**、**Bitrate (bits/s) (比特率(位/秒))** 设置为 **5000000**，并将 **Encoding settings (编码设置)**、**Audio (音频)**、**Bitrate (bits/s) (比特率(位/秒))** 设置为 **96000**（96 千位），则 **\$1rc\$1** 将解析为 `5096`。  | 
| 视频帧宽度 |  `$w$`  |  名称修饰符 段修饰符  |  帧宽度或水平分辨率（以像素为单位）。 示例：如果您将 **Encoding settings (编码设置)**、**Video (视频)**、**Resolution (w x h) (分辨率(宽 x 高))** 设置为 **1280** x **720** ，则 **\$1w\$1** 将解析为 `1280`。  | 
| 视频帧高度 |  `$h$`  |  名称修饰符 段修饰符  |  帧高度或垂直分辨率（以像素为单位）。 示例：如果您将 **Encoding settings (编码设置)**、**Video (视频)**、**Resolution (w x h) (分辨率(宽 x 高))** 设置为 **1280** x **720** ，则 **\$1h\$1** 将解析为 `720`。  | 
| Framerate |  `$f$`  |  名称修饰符 段修饰符  |  帧速率（以每秒帧数为单位），截断到最接近的整数。 示例：如果您的帧速率为 **59.940**，则 **\$1f\$1** 将解析为 `59`。  | 
| 输入文件名 |  `$fn$`  |  目标位置 名称修饰符 段修饰符  |  输入文件的名称（不带文件扩展名）。对于具有多个输入的作业，这是作业中指定的第一个文件。 示例：如果作业的 **Input 1 (输入 1)** 为 **s3://amzn-s3-demo-bucket/my-video.mov**，则 **\$1fn\$1** 将解析为 `my-video`。  | 
| 输出容器文件扩展名 |  `$ex$`  |  名称修饰符 段修饰符  |  因输出组而异。对于 **File group (文件组)** 输出，这是输出容器文件的扩展名。对于其他输出组，这是清单的扩展名。 文件组示例：如果您为**输出设置**选择 **MPEG2-TS**，则**容器**将**\$1ex\$1**解析为。`m2ts` HLS 组的示例：如果您的输出组是 HLS，则 **\$1ex\$1** 将解析为 `m3u8`。  | 
| \$1 |  `$$`  |  名称修饰符 段修饰符  |  转义的 `$`。 示例： 假设您提供以下值：   输入文件名： **file1.mp4**   目的地：**s3://amzn-s3-demo-bucket/**   名称修饰符：**my-video\$1\$1hi-res-**   您的输出文件名和路径将解析为 `s3://amzn-s3-demo-bucket/my-video$hi-res-file1.mp4`。  | 

## 将设置变量与流式处理输出结合使用
<a name="using-settings-variables-with-streaming-outputs"></a>

作业中的变量（也称作*格式标识符*）对 Apple HLS 和 DASH ISO 输出组中的输出的功能不同。差异如下：

**对于 Apple HLS 输出**  
当您在**分段修饰符**设置中使用日期和时间格式标识符（`$dt$`、`$t$`、`$d$`）时，这些格式标识符会解析为每个分段的完成时间，而不是作业的开始时间。

**注意**  
对于使用加速转码的作业，各个段可能将同时完成。这意味着日期和时间格式标识符并不总是解析为唯一值。

**对于 DASH ISO 输出**  
您可以在 **Name modifier (名称标识符)** 设置中使用两个额外的格式标识符。它们将影响 DASH 清单以及输出文件名。以下是标识符：

\$1Number\$1  
在您的输出文件名中，`$Number$` 将解析为一系列数字（从 1 开始递增）。这将替换段文件名中默认的九位段编号。例如：  
+ 如果为**名称修饰符**指定 **video\$1\$1Number\$1**，则该服务会创建名为 `video_1.mp4`、`video_2.mp4` 等的分段文件。
+ 如果只为**名称修饰符**指定 **video\$1**，则该服务会创建名为 `video_000000001.mp4`、`video_000000002.mp4`等的分段文件。
在你的 DASH 清单中， AWS Elemental MediaConvert 包含元素`startNumber`内部`duration`和`SegmentTemplate`元素，如下所示：`<SegmentTemplate timescale="90000" media="main_video_$Number$.mp4" initialization="main_video_$Number$init.mp4" duration="3375000"/>`  
如果您在一个输出中使用 `$Number$` 格式标识符，则也必须在输出组的所有其他输出中使用该标识符。

\$1Bandwidth\$1   
在您的输出文件名中，`$Bandwidth$` 将解析为输出中 **Video** **Bitrate (视频比特率)** 的值以及 **Audio** **Bitrate (音频比特率)** 的值。无论您是否包含此格式标识符，该服务都会在段文件名中使用九位段编号。  
例如，假设您指定以下值：  
+ **Video (视频)** **Bitrate (bits/s) (比特率(位/秒))**：**50000000**
+  **Audio (音频)** **Bitrate (kbits/s) ( 比特率(千位/秒))**：**96.0**（96000 位/秒）
+ **Name modifier (名称修饰符)**：**video\$1\$1Bandwidth\$1**
\$1Bandwidth\$1 的值解析为 50096000。该服务将创建段文件，这些文件名为 `video_50096000_000000001.mp4`、`video_50096000_000000002.mp4`，以此类推。  
在清单中， AWS Elemental MediaConvert 包含元素`startNumber`内部`duration`和`SegmentTemplate`元素，如下所示：`<SegmentTemplate timescale="90000" media="main_video_$Bandwidth$.mp4" initialization="main_video_$Bandwidth$init.mp4" duration="3375000"/>`。

\$1Time\$1  
在您的输出文件名中，`$Time$` 将解析为段的持续时间（以毫秒为单位）。在包含此格式标识符时，该服务不会在段文件名中使用默认的九位段编号。  
例如，如果您为**名称修饰符**指定 **video180\$1\$1\$1Time\$1**，则该服务会创建名为 `video180__345600.mp4`、`video180__331680.mp4` 等的分段文件。在这些示例中，段持续时间为 345600 毫秒和 331680 毫秒。  
在清单中， AWS Elemental MediaConvert 包含`SegmentTemplate`元素`SegmentTimeline`内部，如下所示：  

```
<Representation id="5" width="320" height="180" bandwidth="200000" codecs="avc1.4d400c">
        <SegmentTemplate media="video180_$Time$.mp4" initialization="videovideo180_init.mp4">
          <SegmentTimeline>
            <S t="0" d="345600" r="2"/>
            <S t="1036800" d="316800"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
```
如果您在一个输出中使用 `$Time$` 格式标识符，则也必须在输出组的所有其他输出中使用该标识符。

\$1陈述ID\$1  
在输出文件名中，`$RepresentationID$`解析为作业设置中输出的数字顺序。  
在清单中，在`SegmentTemplate`元素中 AWS Elemental MediaConvert 使用此标识符来引用每种表示的正确路径。  
当您需要按表示法 ID 整理 DASH 输出时，此格式标识符特别有用。

## 指定最小位数
<a name="specifying-a-minimum-number-of-digits"></a>

对于返回数字的格式标识符，您可以指定格式标识符将解析为的最小位数。执行此操作时，该服务会在任何返回较少位数的值之前添加填充零。

使用以下语法来指定位数：**%0[number of digits]**。将此值放在格式标识符的最后的 `$` 的前面。

例如，假设您的视频帧高度为 720，并且您希望指定至少四位数，以便它在您的文件名中显示为 `0720`。要执行此操作，请使用以下格式标识符：**\$1h%04\$1**。

**注意**  
值太大，无法用指定的位数表示，请使用更多的位数进行解析。