

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

# 设置流输出的片段长度
<a name="setting-the-fragment-length"></a>

对于除 HLS（CMAF、DASH 和 Microsoft Smooth Streaming）之外的所有 ABR 流输出组，您为 **Fragment length (片段长度)** (`FragmentLength`) 指定的值必须与您指定的其他输出设置配合使用。如果错误设置了 **Fragment length (片段长度)**，在查看者观看输出视频时，其播放器可能会发生崩溃。这种情况可能会发生，因为播放器期望在视频结尾有其他片段，并请求不存在的片段。

**片段长度**受**已关闭的 GOP 节奏**（`GopClosedCadence`）、**GOP 大小**（`GopSize`）和**帧率**（`FramerateNumerator`、`FramerateDenominator`）的值约束。有关在控制台和 JSON 作业规范中查找这些设置的信息，请参阅[查找与片段长度相关的设置](#finding-the-settings-related-to-fragment-length)。

**注意**  
在将输出**帧率**设置为**跟随源**时，确保输入视频文件的帧率与您为输出**片段长度**指定的值配合使用。输入视频文件的帧速率与输出帧速率相同。

**Topics**
+ [片段长度的规则](#rule-for-fragment-length)
+ [片段长度示例](#fragment-length-examples)
+ [查找与片段长度相关的设置](#finding-the-settings-related-to-fragment-length)

## 片段长度的规则
<a name="rule-for-fragment-length"></a>

片段长度必须是整数，并且必须是此值的倍数：**GOP 大小** x **已关闭的 GOP 节奏** ÷ **帧率**

## 片段长度示例
<a name="fragment-length-examples"></a>

**示例：正确设置**  
已关闭的 GOP 节奏 = 1

帧率 = 30

GOP 大小 = 60 帧

片段长度 = 2

**示例：错误设置**  
已关闭的 GOP 节奏 = 1

帧率 = 50

GOP 大小 = 90 帧

片段长度 = 2

## 查找与片段长度相关的设置
<a name="finding-the-settings-related-to-fragment-length"></a>

在设置**片段长度**时，请检查**已关闭的 GOP 节奏**、**GOP 大小**和**帧率**的值。

### 片段长度
<a name="fragment-length"></a>

您可以使用控制台或 JSON 作业规范来设置片段长度。**Fragment length (片段长度)** 设置将应用于输出组，并会影响该组中的每个输出。

**查找 **Fragment length (片段长度)** 设置（控制台）**

1. 在 **Create job**（创建任务）页面上，在左侧 **Job**（任务）窗格的 **Output groups**（输出组）下，选择 CMAF、DASH ISO 或 Microsoft 平滑流式处理输出组的名称。

1. 在右侧的组设置部分中，找到 **Fragment length (片段长度)**。

   组设置部分的标题为 **CMAF group settings (CMAF 组设置)**、**DASH ISO group settings (DASH ISO 组设置)** 或 **MS Smooth group settings (MS Smooth 组设置)**。

**查找 **Fragment length (片段长度)** 设置（JSON 作业规范）**
+ 查找作为 `OutputGroupSettings` 的子级的 `FragmentLength`，如以下示例所示：

  ```
  {
    "Settings": {
      ...
      "Inputs": [
        ...
      ],
      "OutputGroups": [
        {
          "Name": "DASH ISO",
          "OutputGroupSettings": {
            "Type": "DASH_ISO_GROUP_SETTINGS",
            "DashIsoGroupSettings": {
              "SegmentLength": 30,
              "FragmentLength": 2,
              "SegmentControl": "SINGLE_FILE",
              "HbbtvCompliance": "NONE"
            }
          },
  		...
  ```

### 已关闭的 GOP 节奏、GOP 大小和帧速率
<a name="closed-gop-cadence-gop-size-and-framerate"></a>

您可以使用控制台或 JSON 作业规范来设置**已关闭的 GOP 节奏**、**GOP 大小**和**帧率**。这些设置分别应用于每个输出。确保为输出组中的每个输出设置的值与您为输出组的 **片段长度** 指定的值配合使用。

**注意**  
您的 ABR 堆栈包含多个输出。确保在每个输出中设置这些值。

**查找输出的编码设置（控制台）**

1. 在 **Create job**（创建任务）页面上，在左侧 **Job**（任务）窗格的 **Output groups**（输出组）下，选择输出的名称，例如 **Output 1**（输出 1）、**Output 2**（输出 2）等。

1. 在 **Encoding settings (编码设置)** 部分中，已自动选择 **Video (视频)** 选项卡。在此选项卡上找到**已关闭的 GOP 节奏**、**GOP 大小**和**帧率**。

**查找输出的编码设置（JSON 作业规范）**
+ 

查找作为编解码器设置的子级的 `GopClosedCadence`、`GopSize`、`FramerateNumerator` 和 `FramerateDenominator`，如以下示例所示。在此示例中，编解码器为 `H_264`，因此，编解码器设置的父设置为 `H264Settings`。

  ```
  {
    "Settings": {
      ...
      "Inputs": [
        ...
      ],
      "OutputGroups": [
        {
          "Name": "DASH ISO",
          ...
          },
          "Outputs": [
            {
              "VideoDescription": {
                ...
                "CodecSettings": {
                  "Codec": "H_264",
                  "H264Settings": {
                    "InterlaceMode": "PROGRESSIVE",
                    "NumberReferenceFrames": 3,
                    "Syntax": "DEFAULT",
                    "Softness": 0,
                    "GopClosedCadence": 1,
                    "GopSize": 60,
  				  ...
                    "FramerateNumerator": 60,
                    "FramerateDenominator": 1
                  }
                },
                ...
              },
  ```