Amazon CloudFront 媒體串流教學
為什麼選擇 Amazon CloudFront?
客戶透過 Amazon CloudFront 使用各種附加在 HTTP 上的協定,將影片串流給全球的觀眾。
Amazon 內容交付網路 (CDN) 可以與 AWS Elemental 媒體服務搭配使用,以實作兩種不同類型的影片串流。首先,為各位介紹存放在 Amazon Simple Storage Service (Amazon S3) 的內容隨需串流。然後,我們將檢視活動即時串流或全年無休頻道。
對於最佳實務,請閱讀適用於媒體的 Amazon CloudFront 白皮書。
Building Serverless Video Workflows
隨需串流
使用隨需串流時,影片內容會存放在 Amazon S3 中。觀眾可以選擇在任何時候觀看影片,因此稱為「隨需」串流。完整的隨需串流解決方案通常使用 Amazon S3 儲存內容、使用 AWS Elemental MediaConvert 處理以檔案為基礎的影片,以及使用 Amazon CloudFront 交付影片。
Amazon S3 是影片資產的最佳儲存設施。它具有無限可擴展性、內建冗餘功能,而且按實際用量付費。將內容上傳到 S3 的方法有很多種。一開始資料量不多的時候,可以使用 AWS 管理主控台,之後隨著資料量增加,可以改用更為自動化的系統。從主控台使用 S3 非常簡單。建立 AWS 帳戶後,只需登入、建立 S3 儲存貯體,接著上傳您的內容即可。如果您想實作自動化系統,可以在自己的指令碼中使用 AWS 命令列界面,也可以在自己的程式碼中使用 Amazon S3 API。
上傳之後,您可能需要將影片轉換為特定電視或連線裝置所需的大小、解析度或格式。AWS Elemental MediaConvert 可代您處理這一切。MediaConvert 從 S3 取得內容、根據您的請求進行轉碼,然後將結果存回 S3。轉碼可處理影片檔案、建立原始內容的壓縮版本以縮減其大小、變更格式,或增加播放裝置相容性。您可以再次透過 AWS 管理主控台、命令列或 MediaConvert API 管理此程序。
安全地存放內容並將內容轉換為使用者所需的格式之後,下一步是使用 Amazon CloudFront 進行全球交付。Amazon 內容交付網路會從節點快取內容,以提供低延遲、高輸送量的影片交付。它的可擴展性表示您可以視需要提供較多或較少的影片。您可以按實際用量付費,輕鬆應對突發的需求高峰 (請參閱 CloudFront 定價進一步了解)。
從這裡開始您有兩種選擇。您可以先將整個影片檔案傳送到裝置再播放,或者您可以將影片串流到裝置。
第一個選項非常容易實現,而且幾乎所有行動裝置和桌面都支援該選項。您只需將內容放入 S3 儲存貯體,然後建立指向該儲存貯體的 CloudFront 分發即可。使用者的影片播放器將使用 CloudFront URL (可做為分發的一部分存取) 請求影片檔案。系統將根據使用者位置,將請求導向至最佳的節點。CDN 將從快取提供影片,如果尚未快取,則會從 S3 儲存貯體擷取內容。這個選項有幾個缺點。它會降低觀眾的頻寬使用效率。如果使用者不想看完整部影片,未觀看的內容仍然會被下載,而且您還得支付相關費用。
使用者通常偏好第二個選項。Apple 的 HTTP Live Streaming (HLS)、Dynamic Adaptive Streaming over HTTP (DASH)、Microsoft 的 Smooth Streaming (MSS) 和 Adobe 的 HTTP Dynamic Streaming (HDS) 等影片串流協定系列,會在觀眾收看影片的同時傳送影片,通常會提前幾秒擷取所需的內容,藉此改善使用者體驗。開始播放的速度更快、快轉更有效率,而且整體使用者體驗更流暢。使用這個選項,您只需支付觀眾收看的內容費用,不會浪費使用者的頻寬,而且使用者可以更快地看到想看的內容。
您需要多做幾個動作,才能實作第二種選擇。首先,您要使用 MediaConvert 將影片檔案轉換為 HLS 格式 (最廣泛支援的串流協定)。這會將影片切割成數個片段,而且會建立資訊清單檔案。然後,將 CloudFront 分發指向這個資訊清單。最後,將資訊清單 URL 嵌入使用者播放即時串流的播放器中,即可播放即時串流。例如,若要播放資訊清單檔案為 myStream/playlist.m3u8、CloudFront 分發為 d111111abcdef8.cloudfront.net 的即時串流,請在播放器中嵌入以下 URL:http://d111111abcdef8.cloudfront.net/myStream/playlist.m3u8
「AWS 上的隨需影片」頁面提供在 AWS 雲端實作隨需影片工作流程的最佳實務和指導,並介紹可自動佈建所需服務的 AWS 解決方案,以建立可匯入、存放、處理和交付影片內容的分散式可擴展架構。
即時串流
在即時串流的情況下,您的內容可能是即時活動或全年無休即時頻道交付。前者的例子包括串流體育賽事、頒獎典禮、重大發表和其他高收視率即時活動的廣播公司和內容整合公司。後者的例子包括希望可在不使用第三方分發平台的情況下,封裝線性即時頻道並透過網際網路直接交付給觀眾的工作室、廣播公司和付費電視服務營運商。
依照幾個簡單的步驟操作,您就能使用 AWS 以符合經濟效益的方式向全球觀眾廣播即時內容。
第一個步驟是即時影片處理。您可以使用 AWS Elemental MediaLive 進行即時的影片串流編碼,將較大的即時影片來源 – 例如來自 AWS Elemental Live 等內部部署編碼器 – 壓縮成較小的版本,以利於分發給觀眾。第二個步驟,根據您的使用案例有兩個選項。您可以使用 AWS Elemental MediaPackage 這類 just-in-time 封裝來源,將影片內容從單一格式轉換為多種格式,並針對不同的裝置類型進行安全封裝。MediaPackage 可讓您輕鬆為觀眾實作常用的影片功能 (從頭開始、暫停、倒帶等等),就像常用的 DVR 功能一樣。它還能夠使用數位版權管理 (DRM) 保護您的內容。或者,如果編碼器已將內容轉換成所有觀眾目標裝置所需的格式,則可以使用 AWS Elemental MediaStore 這類高效能可擴展來源。MediaPackage 和 MediaStore 將內容交付到 Amazon CloudFront,然後將內容路由給收看即時活動的觀眾。
一旦您的解決方案正常運作之後,就能以可擴展且符合經濟效益的方式,在全球各地廣播即時活動。CDN 可以應付各種規模的觀眾,以及「快閃族」。
「即時影片串流」頁面提供在 AWS 雲端選擇即時影片串流工作流程的最佳實務和指導,並介紹可自動佈建所需服務的 AWS 解決方案,以建立高度可用且符合經濟效益的架構,以交付優質的即時觀看體驗。