

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 自訂 HLS 資訊清單內的路徑
<a name="hls-manifest-paths"></a>

當您在標準 MediaLive 頻道中建立 HLS 輸出群組時，您可以設定自訂資訊清單。

請注意，您無法在 MediaPackage 輸出群組中設定自訂資訊清單，如果下游系統是 MediaPackage，則無法在 HLS 輸出群組中設定自訂資訊清單。MediaPackage 僅適用於預設路徑。

您可以透過變更子資訊清單的路徑來自訂主要資訊清單。您也可以透過變更媒體檔案的路徑來自訂每個子資訊清單。通常，如果下游系統具有特殊路徑需求，則只需要變更語法。Akamai CDN 通常需要您變更語法。

**注意**  
本節中有關 HLS 資訊清單的資訊，假設您已熟悉建立頻道的一般步驟，如[從零開始建立頻道](creating-channel-scratch.md)中所述。  
主控台中與此功能相關的重要欄位是在 **Create channel (建立頻道)** 頁面上 **HLS output group (HLS 輸出群組)** 區段的 **Location (位置)** 群組中。若要檢閱完成這些欄位的步驟，請參閱[程序](creating-hls-output-group.md#hls-create-procedure)。

**Topics**
+ [設定自訂路徑的程序](hls-custom-manifests-procedure.md)
+ [資訊清單的運作方式](hls-manifests-how-work.md)
+ [自訂路徑的規則](hls-custom-paths-rules.md)
+ [設定自訂路徑的指導方針](hls-custom-paths-guidance.md)
+ [自訂路徑的範例](hls-custom-paths-examples.md)

# 設定自訂路徑的程序
<a name="hls-custom-manifests-procedure"></a>

自訂資訊清單路徑涉及使用下列欄位：
+ **HLS output group – Location (HLS 輸出群組 – 位置)** – **Base URL manifest (基本 URL 資訊清單)** 欄位
+ **HLS output group – Location (HLS 輸出群組 – 位置)** – **Base URL content (基本 URL 內容)** 欄位

**在資訊清單中設定自訂路徑**

1. 與下游系統交談，了解是否需要自訂路徑。主要資訊清單可能需要子資訊清單的自訂路徑、子資訊清單可能需要媒體檔案的自訂路徑，或主要資訊清單和子資訊清單可能都需要自訂路徑。請參閱 [資訊清單的運作方式](hls-manifests-how-work.md)。

1. 設計路徑，注意[語法和建構路徑的規則](hls-destinations-design-step.md#hls-syntax-http)。

   請參閱[不同下游系統的指導方針](hls-custom-paths-guidance.md)。

   請參閱[這些範例](hls-custom-paths-examples.md)。

1. 在 HLS 輸出群組頁面的 **Location (位置)** 區段中，完成下列其中一個或兩個欄位：
   + **基本 URL 資訊清單 A **和**基本 URL 資訊清單 B**。 對於單一管道管道管道，僅填寫欄位 A。對於標準管道，請填寫欄位 A 和欄位 B。
   + **基本 URL 內容 A **和**基本 URL 內容 B**。 對於單一管道管道管道，僅填寫欄位 A。對於標準管道，請填寫欄位 A 和欄位 B。

# 資訊清單的運作方式
<a name="hls-manifests-how-work"></a>

下列各節說明 MediaLive 如何處理資訊清單路徑。

## 資訊清單路徑的預設運作方式
<a name="hls-default-manifest-paths"></a>

MediaLive 建立的資訊清單包含其他檔案路徑的相關資訊，特別是：
+ 主要資訊清單內的內容包含每個子資訊清單的路徑。

  根據預設，此路徑的語法如下：

  ```
  baseFilename nameModifier extension
  ```

  例如：

  ```
  curling-high.m3u8
  ```

  路徑相對於主要資訊清單的位置。
+ 每個子資訊清單內的內容都包含其媒體檔案的路徑。

  根據預設，此路徑的語法如下：

  ```
  baseFilename nameModifier optionalSegmentModifier counter extension
  ```

  例如：

  ```
  curling-high-000001.ts
  ```

  路徑相對於子資訊清單的位置。

## 自訂路徑的運作方式
<a name="hls-custom-manifest-paths"></a>

如果資訊清單內的預設路徑不適合下游系統處理三組檔案的方式，您可以完成「基本 URL」**欄位：
+ 完成**基本 URL 資訊清單**欄位，以便 MediaLive 建構子資訊清單的自訂路徑。
+ 完成**基本 URL 內容**欄位，以便 MediaLive 建構媒體檔案的自訂路徑。

當您自訂路徑時，語法會變更。
+ 當您完成 **Base URL manifest (基本 URL 資訊清單)** 欄位時，子資訊清單路徑 (在主要資訊清單內) 的語法如下：

  ```
  baseURLManifest baseFilename nameModifier extension
  ```

  例如：

  ```
  http://viewing/sports/curling-high.m3u8
  ```
+ 當您完成 **Base URL content (基本 URL 內容)** 欄位時，媒體檔案路徑 (在子資訊清單內) 的語法如下：

  ```
  baseURLContent baseFilename nameModifier optionalSegmentModifier counter
          extension
  ```

  例如：

  ```
  http://viewing/media/sports/curling-high-000001.ts
  ```

## MediaLive 如何建構這些路徑
<a name="hls-how-construct-custom-paths"></a>

子資訊清單的自訂路徑建構如下：
+ 您完成 **Base URL manifest (基本 URL 資訊清單)** 欄位或 **Base URL content (基本 URL 內容)** 欄位，或兩者。

  例如：

  ```
  http://198.51.100/sports/viewing/
  ```

  請注意值結尾處的斜線。
+ MediaLive 會將該值附加到[預設路徑](#hls-default-manifest-paths)。例如：

  ```
  http://198.51.100/sports/viewing/curling-high.m3u8
  ```

# 自訂路徑的規則
<a name="hls-custom-paths-rules"></a>

在您設定 來自訂 MediaLive HLS 輸出群組中的資訊清單之後，您應該與下游系統的聯絡人共用下列規則。

一般規則是下游系統負責確保自訂路徑在其環境中運作。MediaLive 不會以任何方式驗證值。因此：
+ 如果已指定通訊協定 (它是選用的)，它必須與您在 **Destination URL (目的地 URL)** 欄位中指定的通訊協定相同。
+ 相同管道的 **Base URL manifest (基本 URL 資訊清單)** 和 **Base URL content (基本 URL 內容)** 欄位可以具有相同的值或不同的值。它們在任何部分 (網域、路徑) 中可以是相同的或不同的。
+ 這些值可能會產生相對路徑或絕對路徑。
+ 子資訊清單的相對路徑永遠相對於主要資訊清單的位置。
+ 媒體檔案的相對路徑永遠相對於子資訊清單的位置。
+ 路徑必須以斜線結束。

# 設定自訂路徑的指導方針
<a name="hls-custom-paths-guidance"></a>

HLS 輸出中自訂路徑中的內容必須適用於 MediaLive 下游的系統。以下是針對不同下游系統使用「基本 URL」**欄位的一些指導方針。

**如果您控制下游系統，則設定自訂路徑**

您可以控制下游系統。例如，下游系統可能是將內容傳送至 Amazon CloudFront 的 Amazon S3 或 MediaStore。 Amazon CloudFront 處理 HLS 檔案時可能需要移動一組或多組檔案。在此情況下，您可以完成這些「基本 URL」**欄位，以符合檔案最終位置的路徑。

**如果下游封裝器是 MediaPackage，則設定自訂路徑**

如果下游套件是 MediaPackage，請將**基本 URL** 欄位保留空白。MediaPackage 不會使用此資訊。

**如果您使用第三方下游系統，則設定自訂路徑**

如果您使用第三方下游系統，下游系統必須告訴您是否要完成這些 **Base URL (基本 URL)** 欄位。

# 自訂路徑的範例
<a name="hls-custom-paths-examples"></a>

以下是您可以在 MediaLive HLS 輸出群組中自訂資訊清單的不同方式範例。在所有這些範例中，假設如下：
+ 在主要資訊清單中，子資訊清單的預設路徑是這個相對路徑：

  ```
  curling-high.m3u8
  ```
+ 在子資訊清單中，媒體檔案的預設路徑是這個相對路徑：

  ```
  curling-high-000001.ts
  ```

**Example 1**  
下游系統將從 MediaLive 推送檔案的位置移動檔案。下游系統會移動檔案，使得子資訊清單仍位於與父資訊清單相同的相對位置，而媒體檔案仍位於與子資訊清單相同的相對位置。  
因此，您不需要自訂路徑。移動後，預設路徑仍會運作。

**Example 2**  
您想要主要資訊清單和子資訊清單包含其各自檔案的絕對路徑。您設定如下：  
+ 完成 **Base URL manifest A (基本 URL 資訊清單 A)** 欄位以指定此絕對路徑：

  ```
  http://198.51.100/sports/viewing/
  ```

  在主要資訊清單內，子資訊清單的路徑現在將如下：

  ```
  http://198.51.100/sports/viewing/curling-high.m3u8
  ```
+ 完成 **Base URL content (基本 URL 內容)** 欄位以指定此絕對路徑：

  ```
  http://203.0.113.55/sports/viewing/
  ```

  在子資訊清單內，媒體檔案的路徑現在將如下：

  ```
  http://203.0.113.55/sports/viewing/curling-high-000001.ts
  ```
此範例說明兩組檔案的網域可能不同。

**Example 3**  
您希望父資訊清單包含子資訊清單的絕對路徑。但是，想要子資訊清單包含相對於子資訊清單之媒體檔案的路徑。在此情況下，您可以自訂子資訊清單的路徑，但繼續使用媒體檔案的預設路徑。  
+ 完成 **Base URL manifest A (基本 URL 資訊清單 A)** 欄位以指定此絕對路徑：

  在管道 A 的主要資訊清單內，子資訊清單的路徑現在將如下：

  ```
  http://198.51.100/sports/viewing/curling-high.m3u8
  ```
+ 未完成 **Base URL content A (基本 URL 內容 A)** 欄位。

  在子資訊清單內，媒體檔案的路徑仍然是預設值：

  ```
  curling-high-000001.ts
  ```