使用 CloudFront 和AWS媒體服務提供即時串流視訊 - Amazon CloudFront

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

使用 CloudFront 和AWS媒體服務提供即時串流視訊

若要搭配 CloudFront 使用AWS媒體服務向全球使用者提供即時內容,請遵循本節中包含的指引。

使用 AWS Elemental MediaLive 即時編碼即時視訊串流。若要對大型視訊串流進行編碼,請將其 MediaLive 壓縮為較小的版本 (編碼),以便發佈給觀眾。

壓縮即時視訊串流之後,您可以使用以下兩個主要選項的其中之一來準備和提供內容:

當您使用其中一個選項設定您的來源後,就可以使用 CloudFront 將即時串流視訊分發給瀏覽者。

提示

您可以了解自動部署服務來打造高可用性即時觀賞體驗的 AWS 解決方案。若要檢視自動部署此解決方案的步驟,請參閱即時串流自動化部署

使用 AWS Elemental MediaStore 做為原始伺服器來提供視訊

如果您有儲存在容AWS Elemental MediaStore器中的視訊,您可以建立 CloudFront 分發來提供內容。

若要開始使用,您可以授與 MediaStore 容器的 CloudFront 存取權。然後,您創建一個CloudFront 發行版並將其配置為使用 MediaStore。

提供來自 AWS Elemental MediaStore 容器的內容
  1. 請遵循允許 Amazon 存取您 CloudFront 的AWS Elemental MediaStore容器中的程序,然後返回這些步驟以建立您的分發。

  2. 透過下列設定建立分佈:

    原始網域

    指派給 MediaStore 容器的資料端點。從下拉列表中,選擇直播視頻的 MediaStore 容器。

    原始伺服器路徑

    儲存物件的 MediaStore 容器中的資料夾結構。如需詳細資訊,請參閱 原始伺服器路徑

    新增自訂標頭

    如果您想在將請求轉寄 CloudFront 至您的來源時新增自訂標頭,請新增標頭名稱和值。

    檢視器通訊協定政策

    選擇 Redirect HTTP to HTTPS (將 HTTP 重新引導至 HTTPS)。如需詳細資訊,請參閱 檢視器通訊協定政策

    快取政策和原始伺服器請求政策

    針對 Cache policy (快取政策),選擇 Create policy (建立政策),然後建立適合您快取需求和區段持續時間的快取政策。建立政策後,重新整理快取政策的清單,然後選擇您剛建立的政策。

    針對 Origin 要求政策,請從下拉式清單CustomOrigin中選擇 CORS-

    對於其他設定,您可以根據您的其他技術需求或業務需求來設定特定的值。如需適用於分佈的所有選項清單以及設定相關資訊,請參閱發佈設定參考

  3. 對於應用程式中的連結 (例如媒體播放程式),請使用與您正在發佈的其他物件所使用的格式相同的格式來指定媒體檔案名稱 CloudFront。

提供以 AWS Elemental MediaPackage 格式化的即時視訊

如果您使用 AWS Elemental MediaPackage 格式化即時串流,您可以建立 CloudFront 分佈及設定快取行為來提供即時串流。下列程序假設您已使用建立頻道,並為即時影片新增端點 MediaPackage。

若要 MediaPackage 手動建立 CloudFront 發行版,請依照下列步驟執行:

步驟 1:建立並設定 CloudFront 散發

請完成下列程序,為您建立的即時視訊頻道設定 CloudFront 分發 MediaPackage。

為您的即時視訊頻道建立分佈
  1. 登入AWS Management Console並開啟 CloudFront 主控台,位於https://console.aws.amazon.com/cloudfront/v4/home

  2. 選擇 Create Distribution (建立分佈)

  3. 選擇分佈的設定,包括下列項目:

    原始網域

    MediaPackage 即時視訊頻道和端點所在的來源。選擇文字欄位,然後從下拉式清單中選擇即時影片的 MediaPackage 來源網域。您可以將一個網域對應到多個原始端點。

    如果您已使用另一個 AWS 帳戶建立原始網域,請在此欄位中輸入原始 URL 值。原始伺服器必須為 HTTPS URL。

    例如,對於像是 https://3ae97e9482b0d011.mediapackage.us-west-2.amazonaws.com/out/v1/abc123/index.m3u8 的 HLS 端點,原始網域會是 3ae97e9482b0d011.mediapackage.us-west-2.amazonaws.com

    如需詳細資訊,請參閱 原始網域

    原始伺服器路徑

    提供內容所在 MediaPackage 端點的路徑。

    原始路徑欄位不會自動填入。您必須手動輸入正確的原始路徑。

    如需有關原始伺服器路徑如何運作的詳細資訊,請參閱 原始伺服器路徑

    重要

    通配符路徑需要*在發行版中的某個位置進 CloudFront 行路由。為了避免不符合明確路徑的請求路由至真實來源的情況,請為該萬用字元路徑建立一個「虛設」來源。

    範例 :建立「虛設」來源

    在下列範例中,端點 abc123 和 def456 路由至「真實」來源,但對任何其他端點的視訊內容的請求會路由至沒有適當子網域的 mediapackage.us-west-2.amazonaws.com,這樣會導致 HTTP 404 錯誤。

    MediaPackage 端點:

    https://3ae97e9482b0d011.mediapackage.us-west-2.amazonaws.com/out/v1/abc123/index.m3u8 https://3ae97e9482b0d011.mediapackage.us-west-2.amazonaws.com/out/v1/def456/index.m3u8

    CloudFront 原產地 A:

    Domain: 3ae97e9482b0d011.mediapackage.us-west-2.amazonaws.com Path: None

    CloudFront 原產地 B:

    Domain: mediapackage.us-west-2.amazonaws.com Path: None

    CloudFront 緩存行為:

    1. Path: /out/v1/abc123/* forward to Origin A 2. Path: /out/v1/def456/* forward to Origin A 3. Path: * forward to Origin B

    對於其他分佈設定,請根據您的其他技術需求或業務需求來設定特定的值。如需適用於分佈的所有選項清單以及設定相關資訊,請參閱發佈設定參考

    當您完成選擇其他分佈設定時,請選擇 Create Distribution (建立分佈)

  4. 選擇您剛才建立的分佈,然後選擇 Behaviors (行為)

  5. 選擇預設的快取行為,然後選擇 Edit (編輯)。針對您為原始伺服器選擇的頻道指定正確的快取行為設定。您之後將會新增額外的一或多部原始伺服器,並編輯其快取行為設定。

  6. 轉到CloudFront 分發頁面

  7. 等到發行版的 [上次修改] 欄的值已從 [部署] 變更為日期和時間,表示 CloudFront 已建立您的發行版本。

步驟 2:為 MediaPackage 端點的網域新增來源

重複此處的步驟,將每個 MediaPackage 通道端點新增到您的發佈中,請記住建立「虛擬」來源的必要性。

新增其他端點當做原始伺服器
  1. 在主 CloudFront 控台上,選擇您為頻道建立的發行版。

  2. 選擇 Origins (原始伺服器),然後選擇 Create origin (建立原始伺服器)

  3. 對於 Origin 網域,請在下拉式清單中選擇頻道的MediaPackage 端點。

  4. 對於其他設定,請根據您的其他技術需求或業務需求來設定值。如需詳細資訊,請參閱 原始設定

  5. 選擇 Create Origin (建立原始伺服器)

步驟 3:為所有端點設定快取行為

對於每個端點,您都必須設定快取行為,以新增路徑模式來正確地路由傳遞請求。您指定的路徑模式取決於您提供的視訊格式。以下程序包含用於 Apple HLS、CMAF、DASH 和 Microsoft Smooth Streaming 格式的路徑模式資訊。

您通常會針對每個端點設定兩個快取行為:

  • 父系資訊清單,也就是檔案的索引。

  • 區段,也就是影片內容的檔案。

為端點建立快取行為
  1. 在主 CloudFront 控台上,選擇您為頻道建立的發行版。

  2. 選擇 Behaviors (行為),然後選擇 Create behavior (建立行為)

  3. 對於路徑模式,請使用特定的 MediaPackage OriginEndpoint GUID 作為路徑前綴。

    路徑模式

    如果是 HLS 端點 (如 https://3ae97e9482b0d011.mediapackage.us-west-2.amazonaws.com/out/v1/abc123/index.m3u8),請建立以下兩個快取行為:

    • 對於父系和子系資訊清單,請使用 /out/v1/abc123/*.m3u8

    • 對於內容區段,請使用 /out/v1/abc123/*.ts

    如果是 CMAF 端點 (如 https://3ae97e9482b0d011.mediapackage.us-west-2.amazonaws.com/out/v1/abc123/index.m3u8),請建立以下兩個快取行為:

    • 對於父系和子系資訊清單,請使用 /out/v1/abc123/*.m3u8

    • 對於內容區段,請使用 /out/v1/abc123/*.mp4

    如果是 DASH 端點 (如 https://3ae97e9482b0d011.mediapackage.us-west-2.amazonaws.com/out/v1/abc123/index.mpd),請建立以下兩個快取行為:

    • 對於父系資訊清單,請使用 /out/v1/abc123/*.mpd

    • 對於內容區段,請使用 /out/v1/abc123/*.mp4

    如果是 Microsoft Smooth Streaming 端點 (如 https://3ae97e9482b0d011.mediapackage.us-west-2.amazonaws.com/out/v1/abc123/index.ism),則只會提供清單檔案,所以您只會建立一個快取行為:out/v1/abc123/index.ism/*

  4. 對於每個快取行為,請指定下列設定的值:

    檢視器通訊協定政策

    選擇 Redirect HTTP to HTTPS (將 HTTP 重新引導至 HTTPS)

    快取政策和原始伺服器請求政策

    針對 Cache policy (快取政策),選擇 Create policy (建立政策)。針對新的快取政策,請指定下列設定:

    最短 TTL

    設定為 5 秒或更少,以協助防止提供過時內容。

    查詢字串

    針對 (Cache key settings (快取金鑰設定) 中的) Query strings (查詢字串),選擇 Include specified query strings (包含指定查詢字串)。針對 Allow (允許),輸入下列值來進行新增,並選擇 Add item (新增項目)

    • 新增m為您要用 CloudFront 來做為快取基礎的查詢字串參數。 MediaPackage 回應永遠包含用?m=###來擷取端點修改時間的標籤。如果內容已使用此標籤的不同值快取, CloudFront 請求新的資訊清單,而不是提供快取版本。

    • 如果您在中使用時移檢視功能 MediaPackage,請在資訊清單要求 (*.m3u8startindex.ism/*) 的快取行為上指定和end做為其他查詢字串參數。*.mpd如此一來,就會提供資訊清單請求內所要求之時段的專屬內容。如需有關時間轉移檢視和格式化內容 start 與 end 請求參數的詳細資訊,請參閱《AWS Elemental MediaPackage 使用者指南》中的時間轉移檢視

    • 如果您在中使用資訊清單篩選功能 MediaPackage,請指定aws.manifestfilter為快取原則的其他查詢字串參數,該參數與資訊清單要求 (*.m3u8*.mpd、和index.ism/*) 的快取行為搭配使用。這將配置您的發行版以將aws.manifestfilter查詢字符串轉發到您的 MediaPackage 來源,這是清單過濾功能工作所必需的。如需詳細資訊,請參閱《AWS Elemental MediaPackage 使用者指南》中的資訊清單檔案篩選

    • 如果您使用低延遲 HLS (LL-HLS),請指定 _HLS_msn 和 _HLS_part 作為您搭配清單檔案請求的快取行為所使用快取政策 (*.m3u8) 的其他查詢字串參數。這將配置您的發行版以將_HLS_msn_HLS_part查詢字符串轉發到您的MediaPackage 來源,這是 LL-HLS 阻止播放列表請求功能工作所必需的。

  5. 選擇建立

  6. 建立快取政策後,返回快取行為建立工作流程。重新整理快取政策的清單,然後選擇您剛建立的政策。

  7. 選擇 Create behavior (建立行為)

  8. 如果您的端點並非 Microsoft Smooth Streaming 端點,請重複前述的步驟來建立第二個快取行為。

步驟 4:啟用基於標題的 CDN MediaPackage 授權

我們建議您在 MediaPackage CloudFront 端點和散佈之間啟用標頭型 MediaPackage CDN 授權。如需詳細資訊,請參閱AWS Elemental MediaPackage使用指南 MediaPackage中的啟用 CDN 授權

步驟 5:用CloudFront 於提供直播頻道

建立散發、新增來源、建立快取行為,以及啟用標頭型 CDN 授權之後,您可以使用. CloudFront CloudFront 根據您針對快取行為所設定的設定,將檢視器的要求路由至正確的MediaPackage 端點。

對於應用程式中的連結 (例如媒體播放器),請以 URL 的標準格式指定媒體檔案的 CloudFront URL。如需更多詳細資訊,請參閱 自訂中檔案的 URL 格式 CloudFront