

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

# MediaPackage 的運作方式
<a name="what-is-flow"></a>

AWS Elemental MediaPackage (MediaPackage) just-in-time格式轉換，將來自單一來源over-the-top(OTT) 影片交付至各種播放裝置或內容交付網路 (CDNs)。

下列各節說明 MediaPackage 的運作方式。

**Topics**
+ [即時內容處理](what-is-flow-live.md)
+ [VOD 內容處理](what-is-flow-vod.md)
+ [即時和 VOD 資訊清單參考](what-is-manifest.md)

# 即時內容處理
<a name="what-is-flow-live"></a>

在即時內容的處理流程中，編碼器會將即時 HLS 串流傳送至 MediaPackage。然後，MediaPackage 會封裝內容，將其格式化以回應來自下游裝置的播放請求。

以下小節描述即時處理流程。

**Topics**
+ [一般 MediaPackage 即時處理流程](what-is-flow-gen.md)
+ [即時輸入備援 AWS Elemental MediaPackage 處理流程](what-is-flow-ir.md)

# 一般 MediaPackage 即時處理流程
<a name="what-is-flow-gen"></a>

以下概述 MediaPackage 中即時內容的一般流程：

1. 上游編碼器 （例如 AWS Elemental MediaLive) 會透過 WebDAV 將具有摘要身分驗證的 HLS 即時串流傳送至 MediaPackage 頻道輸入 URL，並包含頻道的存取憑證 （如 MediaPackage 所提供）。如果您使用輸入備援，編碼器會將兩個相同的 HLS 即時串流傳送至 MediaPackage，一個串流傳送至頻道上的每個輸入 URL。MediaPackage 使用來自一個輸入 URL 的串流做為來源內容。如果 MediaPackage 停止接收作用中輸入 URL 上的內容，它會自動切換到來源內容的其他輸入 URL。此外， 會向上和向下 AWS 擴展資源，以處理傳入流量。

   如需詳細資訊，請參閱[即時輸入備援 AWS Elemental MediaPackage 處理流程](what-is-flow-ir.md)。
**注意**  
為了允許支援如時間轉移檢視等功能，MediaPackage 會在有限的時間內存放所有接收的內容。只有在遇到端點上所定義 ** startover window (從頭播放時段)**，這段儲存內容才可供播放。如果存放的內容在啟動時段之外，或者您尚未在端點上定義時段，則無法播放。如需詳細資訊，請參閱[中的時間轉移檢視參考 AWS Elemental MediaPackage](time-shifted.md)。

1. 下游裝置透過端點輸出 URL 從 MediaPackage 請求內容。下游裝置可以是影片播放器或 CDN。輸出 URL 與特定串流格式 (Apple HLS、DASH-ISO、Microsoft Smooth Streaming 或 CMAF) 的端點相關聯。

1. 當 MediaPackage 從下游裝置接收播放請求時，它會根據您在端點上指定的設定動態封裝串流。封裝可以包含新增加密和設定音訊、影片和字幕或字幕軌輸出。

   請務必訂購您的輸入，以便先在父資訊清單的音訊區段中列出您偏好的音訊轉譯。對字幕或字幕執行相同的動作。當封裝音訊和字幕或字幕音軌時，MediaPackage 會將第一個音訊和字幕或字幕音軌指定為 `DEFAULT=YES`和 `AUTO-SELECT=YES`。此封裝會覆寫輸入的預設和自動選取設定。

1. MediaPackage 透過 HTTPS 將輸出串流傳送到請求裝置。如同輸入， 會向上和向下 AWS 擴展資源，以處理流量的變更。

1. MediaPackage 透過 Amazon CloudWatch 記錄活動。您可以檢視資訊，例如內容請求的數量，以及 MediaPackage 已接收或交付的內容數量。如需在 CloudWatch 中檢視 MediaPackage 指標的詳細資訊，請參閱 [AWS Elemental MediaPackage 使用 Amazon CloudWatch 指標進行監控](monitoring-cloudwatch.md)。

在整個內容輸入和輸出程序中，MediaPackage 會在潛在基礎設施故障成為瀏覽者的問題之前對其進行偵測並緩解。

下圖顯示了整個過程。

![\[MediaPackage 工作流程\]](http://docs.aws.amazon.com/zh_tw/mediapackage/latest/ug/images/bbl_flow1.png)


# 即時輸入備援 AWS Elemental MediaPackage 處理流程
<a name="what-is-flow-ir"></a>

透過傳送兩個串流來分隔 MediaPackage 中頻道上的輸入 URLs， AWS Elemental MediaPackage 以在 中實現輸入備援。其中一個串流會成為主要的啟動中端點內容來源，而另一個串流則持續被動接收內容。如果 MediaPackage 停止從作用中串流接收內容，則會切換到其他輸入串流，讓內容播放不會中斷。

如果您搭配 AWS Elemental MediaLive （例如） 使用 MediaPackage，以下是輸入備援的流程：

1. 您可以在 MediaPackage 中建立頻道，如中所述[建立頻道](channels-create.md)。當 MediaPackage 佈建頻道時，它會為頻道建立兩個輸入 URLs。如果您不使用輸入備援，可以將串流傳送至任一個輸入 URL。您不需要將內容傳送至這兩個 URLs。
**注意**  
當輸入備援可用時，MediaPackage 會將第二個輸入 URL 新增至現有頻道，並將現有 URL 更新為新格式。您可以使用現有或新的 URL 進行內容輸入。

1. 您可以在 MediaPackage 中建立端點，如中所述[建立端點](endpoints-create.md)。
**重要**  
如果您使用短輸出區段，視播放裝置而定，您可能會在 MediaPackage 切換輸入時看到緩衝。您可以使用端點的時間延遲功能減少緩衝的發生。請注意，使用時間緩衝會造成端到端內容傳送的延遲。如需啟用時間延遲的詳細資訊，請參閱 [建立端點](endpoints-create.md)。

1. 您可以在 中建立輸入和頻道 AWS Elemental MediaLive，並將 MediaPackage 輸出群組新增至 MediaLive 中的頻道。如需詳細資訊，請參閱*AWS Elemental MediaLive 《 使用者指南*》中的[從 Scratch 建立頻道](https://docs.aws.amazon.com/medialive/latest/ug/creating-channel-scratch.html)。

   如果您在 中使用 HLS 輸出群組 AWS Elemental MediaLive，則必須設定 HLS 群組設定上的輸入遺失動作，以便在服務未接收輸入時暫停輸出。如果 MediaLive 在缺少輸入時傳送黑色影格或其他填充物影格，則 MediaPackage 無法判斷區段何時遺失，也無法執行容錯移轉。如需在 MediaLive 中設定輸入遺失動作的詳細資訊，請參閱*AWS Elemental MediaLive 《 使用者指南*》中的 [HLS 群組的欄位](https://docs.aws.amazon.com/medialive/latest/ug/hls-group-fields.html)。
**重要**  
如果您使用不同的編碼器 （不是 AWS Elemental MediaLive)，並將兩個不同的串流傳送至 MediaPackage 中的相同頻道，則串流必須具有相同的編碼器設定和資訊清單名稱。否則，輸入備援可能無法正常運作，並且如果輸入切換，則播放可能中斷。

1. 您可以在 中啟動頻道 AWS Elemental MediaLive ，將串流傳送至 MediaPackage。

1. MediaPackage 會接收兩個輸入 URLs上的內容，但一次只會將其中一個串流用於來源內容。如果作用中串流遺失任何區段，則 MediaPackage 會自動容錯移轉至另一個串流。MediaPackage 會繼續使用此串流，直到再次需要容錯移轉為止。

   用來判斷輸入是否遺失區段的公式，是以輸入和端點上的區段長度為基礎。如果輸入遺失分段並快速恢復，分段長度較短的端點就不會切換輸入。這可能會導致頻道上的不同端點使用不同的輸入 (如果一個端點切換，而另一個沒有切換)。這是合乎預期的行為，應不至於影響內容工作流程。

# VOD 內容處理
<a name="what-is-flow-vod"></a>

在 VOD 內容的處理流程中， AWS Elemental MediaPackage 會從 Amazon S3 擷取檔案型視訊內容。然後，MediaPackage 會封裝內容，將其格式化以回應來自下游裝置的播放請求。

以下是 MediaPackage 中 VOD 內容的一般處理流程：

1.  從 MediaPackage 資產中，您可以啟動從 Amazon S3 儲存貯體擷取來源內容。此程序需要幾分鐘的時間。當擷取完成且播放 URLs為即時時，您會收到 Amazon CloudWatch 事件。

1. 下游裝置透過資產上的封裝組態 URL 向 MediaPackage 請求內容。下游裝置可以是影片播放器或 CDN。URL 與特定串流格式的組態相關聯 (Apple HLS、DASH-ISO、Microsoft Smooth Streaming 或 CMAF)。

1. 當 MediaPackage 從下游裝置接收播放請求時，它會根據您在封裝組態中指定的設定動態封裝串流。封裝可以包含新增加密和設定音訊、影片和字幕或字幕軌輸出。

   請務必訂購您的輸入，以便先在父資訊清單的音訊區段中列出您偏好的音訊轉譯。對字幕或字幕執行相同的動作。當封裝音訊和字幕或字幕音軌時，MediaPackage 會將第一個音訊和字幕或字幕音軌指定為 `DEFAULT=YES`和 `AUTO-SELECT=YES`。此封裝會覆寫輸入的預設和自動選取設定。

1. MediaPackage 透過 HTTPS 將輸出串流傳送到請求裝置。如同輸入， 會向上和向下 AWS 擴展資源，以處理流量的變更。

1. MediaPackage 透過 Amazon CloudWatch 記錄活動。您可以檢視 MediaPackage 交付的內容請求數量和內容數量等資訊。如需有關在 CloudWatch 中檢視 MediaPackage VOD 指標的資訊，請參閱 [AWS Elemental MediaPackage 使用 Amazon CloudWatch 指標進行監控](monitoring-cloudwatch.md)。

在整個內容輸入和輸出程序中，MediaPackage 會在潛在基礎設施故障成為瀏覽者的問題之前對其進行偵測並緩解。

# 即時和 VOD 資訊清單參考
<a name="what-is-manifest"></a>

AWS Elemental MediaPackage 將隨需視訊 (VOD) 資訊清單交付給請求裝置。即時資訊清單表示內容尚未完成。新內容持續透過播放端點提供。或以一份 VOD 資訊清單說明節目已完成，或會在未來的指定時間完成。

本節說明即時和 VOD 資訊清單的差異，並說明 MediaPackage 何時交付每個資訊清單類型。

# 資訊清單屬性
<a name="manifest-properties"></a>

以下為判別資訊清單為即時或 VOD 的主要屬性：
+ 對於 HLS 和 CMAF VOD 資訊清單，`EXT-X-ENDLIST` 是在位元率資訊清單的結尾。即時資訊清單沒有此標籤。
+ 對於 MPEG-DASH VOD 資訊清單，`type="static"` 位於 `MPD` 屬性中。在即時資訊清單中，`type=dynamic`。
+ 對於 Microsoft Smooth VOD 資訊清單， `SmoothStreamingMedia` 屬性中`IsLive`不存在 。在即時資訊清單中，`IsLive=TRUE`。

對於 VOD，播放裝置的拖曳列通常也會顯示節目的持續時間有限。此持續時間相當於目前資訊清單的長度。如果播放請求定義特定的播放時段，則此持續時間相當於該播放時段的長度。

若要判斷資訊清單是即時或 VOD，請參閱 [即時和 VOD 資訊清單參考](what-is-manifest.md)。

## 當資訊清單為 VOD 時
<a name="manifest-complete"></a>

MediaPackage 會在程式內容完成時提供 VOD 資訊清單。MediaPackage 在下列情況下會將程式視為已完成：

**過去有一個 `end` 參數。**  
播放請求包含過去設定的 `end` 參數時，內容視為完成。其中不會新增任何新內容。MediaPackage 會將靜態的 VOD 資訊清單傳送至下游裝置。  
如需有關播放請求中開始和結束參數的詳細資訊，請參閱 [中的時間轉移檢視參考 AWS Elemental MediaPackage](time-shifted.md)。

**上游編碼器交付至 MediaPackage 的資訊清單包含 `EXT-X-ENDLIST`標籤。**  
當您停止編碼器的輸出時，它傳送到 MediaPackage 的資訊清單會包含 `EXT-X-ENDLIST`標籤。此標籤會告知 MediaPackage 內容已完成，而且不會新增任何新內容。MediaPackage 會將靜態的 VOD 資訊清單傳送至下游裝置。  
如果您在 MediaPackage 的一個或兩個管道停止時手動停止 AWS Elemental MediaLive 頻道，MediaLive 不會`EXT-X-ENDLIST`包含在 MediaPackage 的 HLS 資訊清單中。MediaPackage 會持續產生即時資訊清單。  
如果兩個管道在您停止頻道時都處於作用中狀態，MediaLive 會包含 `EXT-X-ENDLIST`。MediaPackage 會將 VOD 資訊清單交付至下游裝置。
如果您從編碼器重新啟動輸出，MediaPackage 的資訊清單會再次上線。播放裝置可能需要重新整理，才能恢復內容播放。  
如果您使用輸入備援且作用中串流結束，MediaPackage 會容錯移轉至另一個傳入串流以進行輸入。除非兩個傳入串流都結束，否則資訊清單不會標示為完成。