使用 CDN 整合串流內容

媒體服務標誌 v3


警告

Azure 媒體服務將於 2024 年 6 月 30 日淘汰。 如需詳細資訊,請參閱 AMS淘汰指南

重要

自 2024 年 6 月 30 日起,Azure 媒體服務 即將從 Akamai 淘汰 Azure CDN 標準,因此在 2023 年 10 月 31 日,最好不要建立新的 CDN 以搭配 Azure 媒體服務使用。 請參閱 Azure 媒體服務淘汰指南

Azure 內容傳遞網路 (CDN) 可為開發人員提供一種全球解決方案,將使用者的內容策略性放置於世界各地的實體節點並進行快取,以便迅速提供高頻寬的內容。

CDN 會根據每個轉碼器、每個串流通訊協定、每個位元速率、每個容器格式,以及每個加密/DRM,從媒體服務串流端點 (來源) 快取內容。 針對轉碼器串流通訊協定-容器格式-位元速率-加密的每個組合,將會有個別的 CDN 快取。

熱門內容會直接從 CDN 快取 (前提是已快取視訊片段)。 快取實況內容的機率很高,因為通常會有許多人觀看一模一樣的內容。 隨選內容可能比較難處理,因為可能會有一些內容很熱門,有一些內容較不受歡迎。 如果您有數百萬個不是很熱門的視訊資產 (每週只有 1 個或 2 個觀看者),但觀看這些不同視訊的人有數千位,則 CDN 會變得較不具效率。

您也需要考量彈性資料流的運作方式。 每個個別的視訊片段都會快取為自有的實體。 例如,想像一下第一次觀看特定影片。 若檢視者跳著觀看幾個幾秒鐘的片段,則只有與此觀看者所觀看內容相關聯的視訊片段會快取到 CDN。 因為有彈性資料流,您通常會有 5 到 7 個位元速率不同的視訊。 如果一個人觀看某個位元速率,而另一個人觀看不同的位元速率,則這些位元速率會分別在 CDN 中快取。 即使兩個人觀看相同的位元速率,視訊也可能透過不同的通訊協定來串流處理。 每個通訊協定 (HLS、MPEG DASH、Smooth Streaming) 會分別進行快取。 因此,每一個位元速率和通訊協定都會分別進行快取,而且只會快取已要求的那些視訊片段。

除了測試環境之外,我們建議針對標準和進階串流端點啟用 CDN。 每種串流端點類型都有不同的支援輸送量限制。

很難精確計算串流端點所支援的最大並行串流數目,因為需要考慮各種因素。 其中包括:

  • 用於串流的最大位元速率
  • 播放器預先緩衝和切換行為。 播放器會嘗試從來源高載區段,並使用負載速度來計算自適性位元速率切換。 如果串流端點接近飽和,則回應時間可能會有所不同,且播放器會開始切換為較低的品質。 由於這會減少串流端點播放器上的負載,因此請相應減少至建立不必要切換觸發程序的更高品質。

整體來說,您可以藉由採用最大串流端點輸送量來估計最大並行串流,並將這除以最大比特率 (假設所有玩家都使用最高比特率。) 例如,您可以擁有限制為 600 Mbps 的標準串流端點和最高比特率 3Mbp。 在此情況下,最高位元速率支援大約 200 個並行串流。 請記得同時考慮音訊頻寬需求。 雖然音訊串流只能以 128 kps 的速率串流,但當您將串流乘以並行串流數目時,串流總數會快速增加。

本主題討論啟用 CDN 整合。 其中也說明預先擷取 (作用中快取) 和 Origin-Assist CDN-Prefetch 概念。

考量

  • 無論您是否啟用 CDN,串流端點hostname 和串流 URL 都保持不變。
  • 如果您需要在具有 CDN 或不具有 CDN 的情況下測試您內容的能力,請建立另一個未啟用 CDN 的串流端點。

啟用 Azure CDN 整合

重要事項

您無法針對試用版或學生 Azure 帳戶啟用 CDN。

聯邦政府和中國區域除外,其他所有 Azure 資料中心都啟用 CDN 整合。

啟用 CDN 的串流端點佈建之後,在完成 DNS 更新之前,媒體服務會有已定義的等待時間,以將串流端點對應至 CDN 端點。

如果您稍後想要停用/啟用 CDN,串流端點必須處於已停止狀態。 一旦串流端點啟動之後,可能需要將近 2 小時,Azure CDN 整合才會啟用,變更也才會遍及所有 CDN POP。 不過,您可以啟動串流端點,並在串流端點不中斷的情況下進行串流。 整合完成後,串流就會從 CDN 傳遞。 在佈建期間,您的串流端點會處於啟動中狀態,而且您可能會發現效能下降。

建立標準串流端點時,預設會使用標準 Verizon 進行設定。 您可以使用 REST API 來設定進階 Verizon 或標準 Akamai 提供者。

如果是標準串流端點,Azure 媒體服務與 Azure CDN 的整合是在來自 Verizon 的 Azure CDN 上實作。 您可以使用標準 Verizon 或進階 Verizon 來設定進階串流端點。 標準 Akamai 只能使用 REST API 或用戶端 SDK 進行設定。

注意

如需 Azure CDN 的詳細資料,請參閱 CDN 概觀

判斷是否已進行 DNS 變更

您可以使用 ,判斷串流端點上的 DNS 變更是否 (流量導向至 Azure CDN) https://www.digwebinterface.com。 如果您在 azureedge.net 結果中看到功能變數名稱,流量現在會指向 CDN。

Origin-Assist CDN-Prefetch

CDN 快取是反應式程序。 如果 CDN 可以預測要要求的下一個物件,CDN 可以主動要求並快取下一個物件。 透過此程序,您可以針對所有 (或大部分) 的物件達成快取命中,以改善效能。

預先擷取會努力將物件放在因特網邊緣,預期玩家即將要求物件,藉此減少將該對象傳遞給玩家的時間。

若要達成此目標,串流端點 (來源) 和 CDN 必須以幾種方式搭配運作:

  • 媒體服務來源必須有「智慧」 (Origin-Assist) ,才能告訴 CDN 接下來要預先擷取的物件。
  • CDN 會執行預先擷取和快取 (CDN 預先擷取部分) 。 CDN 也需要有「智慧」才能:
    • 告知來源是預先擷取還是一般擷取
    • 處理 404 回應
    • 以及避免無限預先擷取迴圈的方法

優點

Origin-Assist CDN-Prefetch 功能的優點包括:

  • 預先擷取可改善視訊播放品質,方法是在播放期間預先定位預期的影片區段、減少檢視器的延遲,以及改善影片區段下載時間。 這會導致更快速的影片啟動時間,並降低重新緩衝次數。
  • 此概念適用於一般 CDN 來源案例,且不限於媒體。
  • Akamai 已將這項功能新增至 Akamai Cloud Embed (ACE)

注意

這項功能尚不適用於與媒體服務串流端點整合的 Akamai CDN。 不過,其適用於具有預先存在 Akamai 合約的媒體服務客戶,且需要在 Akamai CDN 與媒體服務來源之間進行自訂整合。

運作方式

Origin-Assist CDN-Prefetch 標頭的 CDN 支援 (在即時和影片隨選串流方面) 適用於直接簽訂 Akamai CDN 的客戶。 該功能涉及 Akamai CDN 與媒體服務來源之間交換下列 HTTP 標頭:

HTTP 標頭 傳送者 接收者 目的
CDN-Origin-Assist-Prefetch-Enabled 0 (預設) 或 1 CDN 來源 表示 CDN 已啟用預先擷取。
CDN-Origin-Assist-Prefetch-Path 範例:
Fragments(video=1400000000,format=mpd-time-cmaf)
來源 CDN 提供 CDN 的預先擷取路徑。
CDN-Origin-Assist-Prefetch-Request 1 (預先提取要求) 或0 (一般要求) CDN 來源 表示來自 CDN 的要求是預先擷取。

若想看部分標頭交換的實際情況,您可以嘗試下列步驟:

  1. 使用 Postman 或 cURL 向媒體服務來源發出要求,以取得音訊或視訊區段或片段。 請務必在要求中新增標頭 CDN-Origin-Assist-Prefetch-Enabled: 1
  2. 在回應中,您應該會看到值為相對路徑的標頭 CDN-Origin-Assist-Prefetch-Path

支援的串流通訊協定

此功能 Origin-Assist CDN-Prefetch 針對即時和隨選串流支援下列串流通訊協定:

  • HLS V3
  • HLS V4
  • HLS CMAF
  • DASH (CSF)
  • DASH (CMAF)
  • Smooth Streaming

常見問題集

  • 如果預先擷取路徑 URL 無效,CDN 預先擷取收到 404 時該怎麼辦?

    CDN 只會快取 404 回應 10 秒 (或其他已設定的值)。

  • 假設您有一部隨選影片。 如果已啟用 CDN 預先擷取,這項功能是否表示一旦用戶端要求第一個影片區段,預先擷取將會啟動迴圈,並以相同位元速率預先擷取所有後續的影片區段?

    否,CDN 預先擷取只會在用戶端起始的要求/回應之後完成。 預先擷取永遠不會觸發 CDN 預先擷取,以避免預先擷取的迴圈。

  • Origin-Assist CDN-Prefetch 功能是否一律開啟? 如何將其開啟/關閉?

    這項功能預設為關閉。 客戶必須透過 Akamai API 予以開啟。

  • 針對即時串流,如果下一個區段或片段尚無法使用,Origin-Assist 會發生什麼情況?

    在此情況下,媒體服務來源不會提供 CDN-Origin-Assist-Prefetch-Path 標頭,且不會發生 CDN 預先擷取。

  • Origin-Assist CDN-Prefetch 如何搭配使用動態資訊清單篩選?

    此功能與資訊清單篩選無關。 當下一個片段離開篩選視窗時,系統仍會尋找其 URL,也就是透過查看原始用戶端資訊清單,然後以 CDN 預先擷取回應標頭的形式傳回。 因此 CDN 將會取得從 DASH/HLS/Smooth 資訊清單篩除片段的 URL。 不過,播放器永遠不會對 CDN 提出 GET 要求來擷取該片段,因為該片段不會包含在播放器所持有的 DASH/HLS/Smooth 資訊清單中 (播放器不知道該片段的存在)。

  • 是否可以預先擷取 DASH MPD/HLS 播放清單/Smooth 資訊清單?

    否,DASH MPD、HLS 主要播放清單、HLS 變體播放清單或 Smooth 資訊清單 URL 不會新增至預先擷取標頭。

  • 預先擷取 URL 屬於相對或絕對?

    雖然 Akamai CDN 允許這兩者,但媒體服務來源只會提供預先擷取路徑的相對 URL,因為使用絕對 URL 沒有明顯的優點。

  • 此功能是否可與 DRM 保護的內容搭配使用?

    是,由於此功能可在 HTTP 層級運作,因此不會解碼或剖析任何區段/片段。 這與內容是否加密無關。

  • 此功能是否可與伺服器端廣告插入 (SSAI) 搭配使用?

    此功能要搭配原始/主要內容 (廣告插入之前的原始影片內容) 才能運作,因為 SSAI 不會從媒體服務來源變更來源內容的時間戳記。 此功能是否適用於廣告內容,取決於廣告來源是否支援 Origin-Assist。 例如,如果廣告內容也裝載在 Azure 媒體服務中 (相同或不同來源),則系統也會預先擷取廣告內容。

  • 此功能是否可與 UHD/HEVC 內容搭配使用?

    是。

操作說明、教學課程和範例

-如何啟用CDN優化 -如何啟用 Origin Shield

取得說明及支援

您可以連絡媒體服務並詢問問題,或依照下列其中一種方法追蹤我們的更新: