

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

# 實作管道鎖定
<a name="pipeline-lock"></a>

您可以設定 MediaLive 使用管道鎖定來同步輸出。管道鎖定適用於標準頻道 （有兩個管道），以及使用連結頻道的單一管道頻道。管道鎖定可確保輸出彼此的影格準確。管道鎖定預設為啟用。

啟用管道鎖定時。MediaLive 會盡最大努力鎖定管道。當管道無法鎖定時，處理會繼續進行。無法鎖定管道不會被視為故障條件。

管道鎖定的預設模式是管道鎖定 您無法在適用的輸出類型中停用管道鎖定。但您應該設定行為，以確保其符合您的工作流程。

**注意**  
您可能熟悉*輸出鎖定*一詞。在 MediaLive 中，使用的術語是*管道鎖定*。無論使用什麼術語，效果都是相同的：影格準確輸出。

**管道鎖定模式**

輸出鎖定模式有兩種：
+ 管道鎖定 （預設）：將兩個管道彼此鎖定
+ Epoch 鎖定：使用 Unix epoch 作為參考鎖定管道。

**管道鎖定方法**

當您使用管道鎖定模式時，您可以選擇 MediaLive 用來同步管道的方法：
+ 來源時間碼 （預設值）：MediaLive 使用輸入來源的內嵌時間碼來同步管道。此方法最適合使用可靠的時間碼。
+ 影片對齊：MediaLive 使用編碼器之間的視覺化簽章比較來同步管道。此方法不需要內嵌時間碼，而且當您的輸入來源缺少時間碼或具有不可靠的時間碼時很有用。如需詳細資訊，請參閱[影片對齊管道鎖定的需求](pipeline-locking-verify-input.md#pipeline-locking-video-alignment-inputs)。

**適用的輸出**

**來源時間碼**管道鎖定僅適用於下列類型的輸出：
+ HLS （即時模式）
+ MediaPackage
+ CMAF 擷取
+ Microsoft Smooth
+ 已分割的 UDP 輸出。您可能已設定分段輸出的 UDP 輸出群組。若要驗證，請在 UDP 輸出群組中選擇**輸出**，然後選擇**網路設定**，然後選擇**容器設定**。尋找以 *Segmentation* 一詞開頭的三個欄位。

**影片對齊**管道鎖定僅適用於下列類型的輸出：
+ HLS （即時模式）
+ CMAF 擷取

頻道可以包含其他類型的輸出，但 MediaLive 不會嘗試鎖定其輸出。這表示在這些其他輸出群組中，無法保證兩個管道的內容會彼此相符。

**Topics**
+ [輸入和輸出需求](pipeline-locking-verify-input.md)
+ [設定鎖定](pipeline-locking-set-up.md)
+ [疑難排解](pipeline-locking-tshoot.md)

# 輸入和輸出需求
<a name="pipeline-locking-verify-input"></a>

為了讓 MediaLive 鎖定管道，下列條件必須在頻道中生效。當管道無法鎖定時，處理會繼續進行。一旦必要的條件再次生效，MediaLive 就會再次開始鎖定。

## 不支援 HLS 輸入
<a name="pipeline-locking-verify-no-hls"></a>

頻道不能包含 HLS 輸入。

如果頻道包含 HLS 輸入，MediaLive 會停止嘗試鎖定頻道中的管道。即使頻道切換到另一個輸入，管道鎖定也不會繼續。

## 輸入必須包含內嵌的時間碼 （來源時間碼方法）
<a name="pipeline-locking-embedded-tcode"></a>

當您使用來源時間碼管道鎖定方法 （預設值） 時，輸入必須包含內嵌的時間碼。適用這些規則：
+ 使用來源時間碼方法時，輸入必須具有內嵌的時間碼。此要求同時適用於管道鎖定模式和 epoch 鎖定模式。
+ 對於 epoch 鎖定模式，內嵌的時間碼必須在 epoch 時間的 2 分鐘內。如果時間碼關閉超過 2 分鐘，MediaLive 會認為來源不符合管道鎖定的要求。

MediaLive 會持續探查內嵌時間碼的目前來源。每當它未偵測到時間碼時，就會暫時暫停鎖定管道的嘗試。

## 影片對齊管道鎖定的需求
<a name="pipeline-locking-video-alignment-inputs"></a>

當您使用影片對齊管道鎖定 (**管道鎖定方法**設定為 **VIDEO\$1ALIGNMENT**) 時，不需要內嵌的時間碼。

**輸入需求**

某些輸入類型與視訊對齊不相容：
+ 檔案輸入 (MP4\$1FILE、TS\$1FILE)
+ HLS 輸入 (URL\$1PULL 與 HLS 內容）
+ RTMP\$1PULL 輸入

當不相容的輸入類型處於作用中狀態時，影片對齊的管道鎖定會以「開放迴圈」模式執行 （解除鎖定），但會繼續處理。不會引發驗證錯誤，這支援某些輸入可能不相容的輸入切換工作流程。

對於所有其他輸入類型，影片對齊管道鎖定會使用視覺化簽章比較來同步管道。兩個管道都必須接收相同的視訊內容，才能成功同步處理。

## 影格率要求
<a name="pipeline-locking-requirements-frame-rate"></a>

輸入影格率 （或影格率） 與所需輸出影格率之間的轉換必須*簡單*，這表示必須套用下列其中一個陳述式：
+ 輸出影格率必須是輸入影格率的整數倍。例如，輸入影格率可能是 45 FPS，而輸出影格率可能是 90 FPS。
+ 輸入影格率必須是輸出影格率的整數倍。例如，輸入影格率可能是 60 FPS，而輸出影格率可能是 30 FPS。

MediaLive 會在切換到新輸入時識別來源輸入影格率，並判斷是否套用簡易轉換。如果沒有，MediaLive 會停止嘗試鎖定管道，直到頻道切換到下一個輸入為止。即使來源輸入影格率在中段來源中變更 （因此套用簡單的轉換），MediaLive 也不會再次嘗試鎖定。

請注意，透過這些規則，影格率可能是整數。例如，如果輸入影格率為 29.97 FPS，而輸出影格率為 59.94 FPS。

以下是*複雜*影格率的範例。如果其中一個組合適用於您的頻道，*則無法使用*輸入：
+ 不支援：輸入 FPS 為 59.4，輸出 FPS 為 60。
+ 不支援：輸入 FPS 為 45，輸出 FPS 為 60。
+ 不支援：輸入 FPS 為 29.97 FPS，輸出 FPS 為 23.978。

## Epoch 鎖定和 SCTE 35
<a name="pipeline-locking-requirements-scte35"></a>

在 HLS 或 MediaPackage 輸出群組中使用 epoch 鎖定有其限制。

**HLS 輸出群組**

在使用 epoch 鎖定的頻道中，無法在 HLS 輸出群組中啟用 SCTE 35 傳遞或資訊清單裝飾。儲存頻道時，您會收到驗證錯誤。您必須決定如何解決此衝突：
+ 不要在整個頻道中啟用 epoch 鎖定：您可以將 [模式設定為](pipeline-locking-set-up.md#pipeline-locking-mode)在整個頻道中定期鎖定管道，並在 HLS 輸出群組中保持 SCTE 35 傳遞。
+ 在 HLS 輸出群組中停用 SCTE 35 傳遞：您可以保持 epoch 鎖定，但在 HLS 輸出群組中停用 SCTE 35 傳遞和資訊清單裝飾。您仍然可以在其他輸出群組中啟用 SCTE 35 傳遞。

**MediaPackage 輸出群組**

對於 MediaPackage 輸出群組，如果輸入包含 SCTE 35 訊息，則適用限制條件：
+ 當頻道中未啟用 epoch 鎖定時，MediaLive 會自動從輸入傳遞任何 SCTE 35 訊息，並自動啟用資訊清單裝飾。
+ 啟用 epoch 鎖定時，MediaLive 會自動停用 MediaPackage 輸出群組中的 SCTE 35 傳遞和資訊清單裝飾。

您應該決定要保留哪些功能。您可以保留 SCTE 35 訊息 （在這種情況下，您必須停用整個頻道中的 epoch 鎖定）。或者，您可以啟用 epoch 鎖定，但失去 SCTE 35 訊息的傳遞。請注意，沒有將輸出設定為 HLS 輸出群組的優勢，因為適用類似的限制條件，如上所述。

# 設定鎖定
<a name="pipeline-locking-set-up"></a>

管道鎖定預設為在標準頻道中啟用。您可以停用它。如果您決定保持啟用狀態，您應該將 模式設定為在特定頻道中使用。此外，您應該設定輸出群組，以確保 MediaLive 可以成功鎖定管道。

**注意**  
本節中的所有程序都假設您熟悉建立頻道的一般步驟，如所述[從零開始建立頻道](creating-channel-scratch.md)。

## 設定輸出鎖定和設定 模式
<a name="pipeline-locking-mode"></a>

您可以設定頻道，如下所示：
+ 鎖定已停用
+ 在管道鎖定模式中啟用鎖定：將兩個管道彼此鎖定
+ 在 epoch 鎖定模式中啟用鎖定：使用 Unix epoch 作為參考鎖定管道。

**設定管道鎖定模式和方法**

1. 在您建立或編輯的頻道中，於導覽窗格中，選擇**一般設定**。然後選擇**全域組態**。

1. 選擇**啟用全域組態**。

1. 在**輸出鎖定模式中**，選擇**停用**。或者，選擇模式：**PIPELINE\$1LOCKING** 或 **EPOCH\$1LOCKING**。如需選項的詳細資訊，請選擇 欄位旁的**資訊**連結。

1. 若要設定管道鎖定方法 （僅適用於 **PIPELINE\$1LOCKING** 模式），請展開**其他設定**。

1. 在**輸出鎖定設定**中，找到**管道鎖定方法**欄位，然後選擇同步的方法：
   + **SOURCE\$1TIMECODE** （預設）：使用輸入來源的內嵌時間碼。需要具有可靠內嵌時間碼的輸入。請參閱 [輸入必須包含內嵌的時間碼 （來源時間碼方法）](pipeline-locking-verify-input.md#pipeline-locking-embedded-tcode)。
   + **VIDEO\$1ALIGNMENT**：在編碼器之間使用視覺化簽章比較。不需要內嵌的時間碼。如需輸入相容性[影片對齊管道鎖定的需求](pipeline-locking-verify-input.md#pipeline-locking-video-alignment-inputs)，請參閱 。

1. （選用） 對於 CMAF 擷取和 MediaPackage V2 輸出群組，您可以設定自訂 epoch。展開**其他設定**，然後在**輸出鎖定設定**中，找到**自訂 epoch** 欄位，然後輸入自訂 epoch 時間。

## 設定 HLS、MediaPackage 或 Microsoft Smooth 輸出群組
<a name="pipeline-locking-outputgroups"></a>

在 HLS 輸出群組或 Microsoft Smooth 輸出群組中，您必須為每個影片編碼設定影格率。

**設定管道鎖定**

1. 在您建立的頻道中，於導覽窗格中選擇 HLS 或 Microsoft Smooth 輸出群組。如有必要，請在每個輸出中建立輸出和視訊編碼。

1. 在包含影片編碼的每個輸出中，選擇影片編碼。在**轉碼器設定**欄位中，選擇轉碼器。會出現更多的欄位。

1. 選擇**影格率**區段並設定下列欄位：
   + **影格率控制**：我們建議您選擇**指定**。選項 **Initialize\$1from\$1source** 在管道鎖定方面無法正常運作。
   + **影格率分子**和**影格率分母**：設定輸出所需的解析度。確定從輸入影格率轉換為輸出影格率符合[需求](pipeline-locking-verify-input.md)。

1. 重複，在每個輸出的影片編碼中設定影格率。

## 設定 UDP 輸出群組
<a name="pipeline-locking-udp"></a>

在 UDP 輸出群組中，您必須取得分割標記的相關資訊，並為每個影片編碼設定影格率的分割標記。

**設定管道鎖定**

1. 您需要有關如何在輸出中設定分段的資訊。此資訊包含在 主控台上**建立頻道**頁面上的欄位。若要顯示欄位，請在導覽窗格中選擇**封存群組**。然後選擇輸出，然後選擇**網路設定**。選擇下列每個欄位旁的**資訊**連結：
   + **區段標記**
   + **分段時間**
   + **EBP lookahead 毫秒**
   + **片段時間**
   + **區段樣式**
   + **EBP 置放**
   + **EBP 音訊間隔**

1. 在下游系統與您的聯絡人交談，以取得這些欄位的建議值。

1. 在您建立的頻道中，於導覽窗格中選擇封存輸出群組。如有必要，請建立輸出。然後在**輸出設定**中，選擇**網路設定**。會出現更多的欄位。

1. 選擇**容器設定**，並為步驟 1 中列出的分割欄位設定值。某些欄位可能不適用於您選擇的分割標記。

1. 如有必要，請在輸出中建立影片編碼，然後選擇影片編碼。在**轉碼器設定**欄位中，選擇轉碼器。會出現更多的欄位。

1. 選擇**影格率**區段，並設定下列欄位：
   + **影格率控制**：我們建議您選擇**指定**。選項 **Initialize\$1from\$1source** 在管道鎖定方面無法正常運作。
   + **影格率分子**和**影格率分母**：設定輸出所需的影格率。確定從輸入影格率轉換為輸出影格率符合[需求](pipeline-locking-verify-input.md)。

# 疑難排解
<a name="pipeline-locking-tshoot"></a>

在 MediaLive 執行管道鎖定的輸出群組中，管道鎖定可確保管道的影格準確。

如果您或下游系統的運算子注意到管道未同步，您可以執行下列疑難排解。

## 一般性問題的故障診斷
<a name="pipeline-locking-tshoot-general"></a>

這些疑難排解步驟適用於所有管道鎖定方法：
+ 請確定 MediaLive 支援頻道中輸入類型的[管道鎖定](pipeline-locking-verify-input.md)。
+ 確定受影響的輸出符合管道鎖定的資格。管道鎖定[僅適用於特定類型的輸出](pipeline-lock.md)。
+ 請確定您已變更**影格速率控制項**，使其*不是 ***Initialize\$1from\$1source**。
+ 檢查 **ComplexFRCPresent** CloudWatch 指標。值為 1 表示 Medialive 正在執行複雜的影格率轉換，而且不會嘗試鎖定管道。管道鎖定僅支援[簡單的影格率轉換](pipeline-locking-verify-input.md#pipeline-locking-requirements-frame-rate)。
+ 如果來源中的影格率變更，MediaLive 可能無法在持續時間內執行管道鎖定，因為對於該影片區段，沒有簡單的影格率轉換。

## 針對以時間碼為基礎的鎖定進行故障診斷
<a name="pipeline-locking-tshoot-source-timecode"></a>

如果您使用 epoch 鎖定，或管道鎖定搭配來源時間碼方法 （預設值），除了一般故障診斷步驟之外，請檢查下列項目：
+ 請確定輸入來源具有內嵌的時間碼。
+ 如果您選擇 epoch 鎖定模式，請確定內嵌的時間碼在 epoch 時間的 2 分鐘內。
+ 如果輸入來源具有沒有內嵌時間碼的區段，MediaLive 會停止執行影格準確管道鎖定。MediaLive 會自動回復到執行近似管道鎖定。每當內嵌的時間碼重新出現時，MediaLive 就會恢復影格準確管道鎖定。
+ 請確定您記得在 UDP 輸出群組中設定分段標記。對於其他支援的輸出群組，您不需要擔心這一點，因為其輸出一律會進行分割。
+ 請確定您已設定下游系統預期的分割標記類型。

## 對影片對齊管道鎖定進行故障診斷
<a name="pipeline-locking-tshoot-video-alignment"></a>

如果您使用影片對齊管道鎖定 (**管道鎖定方法**設定為 **VIDEO\$1ALIGNMENT**) 並遇到同步問題，除了一般故障診斷步驟之外，請檢查下列項目：
+ 確認目前的輸入類型相容。HLS、RTMP\$1PULL 和檔案輸入會導致影片對齊管道鎖定在開放迴圈模式下執行 （解除鎖定）。請參閱 [影片對齊管道鎖定的需求](pipeline-locking-verify-input.md#pipeline-locking-video-alignment-inputs)。
+ 檢查 **InputVideoAligned** CloudWatch 指標。值 1 表示管道鎖定已成功對齊管道之間的輸入視訊內容。如果值為 0：
  + 確保兩個管道都接收相同的視訊內容。影片對齊管道鎖定會比較編碼器之間的視覺化簽章，如果內容不同，則無法鎖定。
+ 檢查 **PipelinesLocked** CloudWatch 指標。影片對齊的管道鎖定會透過此相同指標報告其鎖定狀態。值 1 表示同步成功。
+ 如果同步是間歇性的，請確認您與兩個管道的網路連線是穩定的。視覺化簽章比較需要將一致的影片交付至兩個編碼器。