使用 CloudFront 和 AWS Media Services 交付影片串流 - Amazon CloudFront

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

使用 CloudFront 和 AWS Media Services 交付影片串流

若要搭配 CloudFront 使用 AWS Media Services 將即時內容交付給全球受眾,請參閱下列指引。

使用 AWS Elemental MediaLive 即時編碼即時視訊串流。為了編碼大型視訊串流,MediaLive 會將其壓縮至可分配給檢視器的較小版本 (「編碼」)。

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

當您使用這其中一個選項設定您的原始伺服器後,就可以使用 CloudFront 將即時串流視訊分配給檢視器。

提示

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

使用 AWS Elemental MediaStore 做為原始伺服器來提供影片

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

若要開始使用,您可以授與 CloudFront 存取您的 MediaStore 容器的權限。然後,建立一個 CloudFront 分佈,並將其設定為可搭配 MediaStore 使用。

從 AWS Elemental MediaStore 容器提供內容
  1. 依照允許 Amazon CloudFront 存取您的 AWS Elemental MediaStore 容器中所述的程序進行,然後再回來執行這些步驟,以建立分佈。

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

    1. 原始網域 – 指派給 MediaStore 容器的資料端點。從下拉式清單中,選擇您的即時視訊適用的 MediaStore 容器。

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

    3. 新增自訂標頭 – 如果您希望 CloudFront 在將請求轉送到原始伺服器時新增自訂標頭,請新增標頭名稱和值。

    4. 檢視器通訊協定政策 – 選擇將 HTTP 重新導向至 HTTPS。如需詳細資訊,請參閱檢視器通訊協定政策

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

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

      • 針對 Origin request policy (原始伺服器請求政策),從下拉式清單中選擇 CORS-CustomOrigin

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

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

提供格式化為 的即時影片 AWS Elemental MediaPackage

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

若要手動為 MediaPackage 建立 CloudFront 分佈,請依照下列步驟進行:

步驟

    完成以下程序,針對您使用 MediaPackage 建立的即時視訊頻道設定 CloudFront 分佈。

    為您的即時視訊頻道建立分佈
    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. 等到分佈的 Last modified (上次修改) 欄中的值從 Deploying (部署) 變成日期和時間,則表示 CloudFront 已建立您的分佈。

    重複這裡的步驟,將每個 MediaPackage 頻道端點新增至您的分佈,並且務必記住要建立「虛設」來源。

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

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

    3. 針對 Origin domain (原始網域),從下拉式清單中選擇您頻道的 MediaPackage 端點。

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

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

    對於每個端點,您都必須設定快取行為,以新增路徑模式來正確地路由傳遞請求。您指定的路徑模式取決於您提供的視訊格式。以下程序包含用於 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 中的時間轉換檢視行為功能,請針對資訊清單請求 (startend*.m3u8),將 *.mpdindex.ism/* 指定為快取行為的額外查詢字串參數。如此一來,就會提供資訊清單請求內所要求之時段的專屬內容。如需有關時間轉移檢視和格式化內容 start 與 end 請求參數的詳細資訊,請參閱《AWS Elemental MediaPackage 使用者指南》中的時間轉移檢視

      • 如果您在 MediaPackage 中使用資訊清單篩選功能,請針對資訊清單請求 (*.m3u8*.mpdindex.ism/*),將 aws.manifestfilter 指定為搭配快取行為使用快取政策中額外的查詢字串參數。這會將您的分佈設定為將 aws.manifestfilter 查詢字串轉發到您的 MediaPackage 原始伺服器,這是資訊清單篩選功能運作所必需的。如需詳細資訊,請參閱《AWS Elemental MediaPackage 使用者指南》中的資訊清單檔案篩選

      • 如果您使用低延遲 HLS (LL-HLS),請指定 _HLS_msn 和 _HLS_part 作為您搭配清單檔案請求的快取行為所使用快取政策 (*.m3u8) 的其他查詢字串參數。這會將您的分佈設定為將 _HLS_msn 和 _HLS_part 查詢字串轉送到您的 MediaPackage 來源,如此 LL-HLS 封鎖播放清單請求功能才能運作。

    5. 選擇 Create (建立)。

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

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

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

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

    在您建立分佈、新增來源、建立快取行為,以及啟用標頭為主的 CDN 授權之後,就可以使用 CloudFront 提供即時串流頻道。CloudFront 會根據您為快取行為設定的設定,將檢視器的請求路由傳送至正確的 MediaPackage 端點。

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

    使用 提供video-on-demand內容 AWS Elemental MediaPackage

    如果您從 AWS Elemental MediaPackage 原始伺服器產生video-on-demand(VOD) 內容,您可以建立 CloudFront 分佈並設定最佳化快取行為,將 VOD 內容提供給瀏覽者。下列程序假設您已使用封裝組態建立封裝群組,並使用 MediaPackage 擷取資產https://docs.aws.amazon.com/pkg-cfig-create.html

    若要手動為 MediaPackage 建立 CloudFront 分佈,請依照下列步驟進行:

    步驟

      完成下列程序,為您使用 MediaPackage 建立的封裝群組設定 CloudFront 分佈。

      為您的 VOD 內容建立分佈
      1. 登入 AWS Management Console ,並在 開啟 CloudFront 主控台https://console.aws.amazon.com/cloudfront/v4/home

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

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

        原始網域

        MediaPackage 封裝群組的原始伺服器。在文字欄位中輸入原始伺服器 URL 值。原始伺服器必須為 HTTPS URL。

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

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

        原始伺服器路徑

        提供內容的來源路徑。

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

        重要

        須有萬用字元路徑 * 才能路由至 CloudFront 分佈中的某處。為了避免不符合明確路徑的請求路由至真實來源的情況,請為該萬用字元路徑建立一個「虛設」來源。

        範例 :建立「虛設」來源

        在下列範例中,封裝組態def456321xyz路由至「真實」原始伺服器,但請求任何其他影片內容路由至 ,mediapackage-vod.us-west-2.amazonaws.com而沒有適當的子網域,這會導致 HTTP 404錯誤。

        具有兩種封裝組態之封裝群組單一資產的 MediaPackage 內容 URLs:

        https://3ae97e9482b0d011.egress.mediapackage-vod.us-west-2.amazonaws.com/out/v1/abc123/def456/ghi789/index.m3u8 https://3ae97e9482b0d011.egress.mediapackage-vod.us-west-2.amazonaws.com/out/v1/abc123/321xyz/654uvw/index.m3u8

        CloudFront 來源 A:

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

        CloudFront 來源 B:

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

        CloudFront 快取行為:

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

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

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

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

      5. 選擇預設的快取行為,然後選擇 Edit (編輯)。針對您為原始伺服器選擇的封裝組態,指定正確的快取行為設定。稍後,您將新增一或多個額外的原始伺服器,並編輯它們的快取行為設定。

      6. 前往 CloudFront 分佈頁面

      7. 等到分佈的 Last modified (上次修改) 欄中的值從 Deploying (部署) 變成日期和時間,則表示 CloudFront 已建立您的分佈。

      重複此處的步驟,將每個 MediaPackage 封裝群組新增至您的分佈,請記住需要建立「虛擬」原始伺服器。

      新增其他封裝群組做為原始伺服器
      1. 在 CloudFront 主控台中,選擇您為頻道建立的分佈。

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

      3. 對於原始網域,輸入 MediaPackage 封裝群組的 URL。

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

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

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

      您通常會為每個封裝組態設定多個快取行為:

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

      • 區段,也就是影片內容的檔案。格式可能會針對內容使用多個副檔名,視您的組態而定。每個延伸模組都需要快取行為。

      為封裝組態建立快取行為
      1. 在 CloudFront 主控台中,選擇您為頻道建立的分佈。

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

      3. 對於路徑模式,請使用特定的 MediaPackage VOD 封裝組態 GUID 做為路徑字首。這是 MediaPackage VOD 路徑中的第二個 GUID。

        路徑模式

        對於 之類的 HLS 內容https://3ae97e9482b0d011.egress.mediapackage-vod.us-west-2.amazonaws.com/out/v1/abc123/def456/ghi789/index.m3u8,建立下列快取行為:

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

        • 對於內容區段,請使用 /out/v1/*/def456/*.ts,並針對所有必要的區段延伸項目重複 。

        對於 等 CMAF 內容https://3ae97e9482b0d011.egress.mediapackage-vod.us-west-2.amazonaws.com/out/v1/abc123/def456/ghi789/index.m3u8,建立下列快取行為:

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

        • 對於內容區段,請使用 /out/v1/*/def456/*.mp4,並針對所有必要的區段延伸項目重複 。

        對於類似 的 DASH 內容https://3ae97e9482b0d011.egress.mediapackage-vod.us-west-2.amazonaws.com/out/v1/abc123/def456/ghi789/index.mpd,建立下列快取行為:

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

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

        如果是 Microsoft Smooth Streaming 端點 (如 https://3ae97e9482b0d011.egress.mediapackage-vod.us-west-2.amazonaws.com/out/v1/abc123/def456/ghi789/index.ism/Manifest),則只會提供清單檔案,所以您只會建立一個快取行為:out/v1/*/def456/*/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 (新增項目)

        • 如果您在 MediaPackage 中使用資訊清單篩選功能,請針對資訊清單請求 (*.m3u8*.mpdindex.ism/*),將 aws.manifestfilter 指定為搭配快取行為使用快取政策中額外的查詢字串參數。這會將您的分佈設定為將 aws.manifestfilter 查詢字串轉發到您的 MediaPackage 原始伺服器,這是資訊清單篩選功能運作所必需的。如需詳細資訊,請參閱《AWS Elemental MediaPackage 使用者指南》中的資訊清單檔案篩選

      5. 選擇 Create (建立)。

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

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

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

      我們建議在 MediaPackage VOD 內容和 CloudFront 分佈之間啟用標頭型 MediaPackage CDN 授權。如需詳細資訊,請參閱AWS Elemental MediaPackage 《 使用者指南》中的在 MediaPackage 中啟用 CDN 授權

      建立分佈、新增原始伺服器、建立快取行為,以及啟用標頭型 CDN 授權後,您可以使用 CloudFront 提供 VOD 內容。CloudFront 會根據您為快取行為設定的設定,將請求從檢視器路由到正確的 MediaPackage VOD 內容。

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