什麼是 HTTP 即時串流?| HLS 串流

HTTP 即時串流 (HLS) 是一項廣泛使用的影片串流通訊協定,可在幾乎任何伺服器上執行,且大部份裝置皆支援。HLS 透過提高或降低串流品質,促進客戶端裝置無縫適應網路狀況。

學習目標

閱讀本文後,您將能夠:

  • 定義 HTTP 即時串流 (HLS)
  • 瞭解 HLS 的運作方式
  • 探索自適應比特率串流的效益

相關內容


想要繼續瞭解嗎?

訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!

請參閱 Cloudflare 的隱私權政策,了解我們如何收集和處理您的個人資料。

複製文章連結

什麼是 HTTP 即時串流 (HLS)?

HTTP 即時串流 (HLS) 是最廣泛使用的影片串流通訊協定之一。儘管它名為 HTTP 「即時」串流,它同時用於隨選和即時串流。HLS 將影片檔案細分為較小且可下載的 HTTP 檔案,並用 HTTP 通訊協定傳遞檔案。用戶端裝置接著載入這些 HTTP 檔案,並以影片的格式播放。

HLS 的一個優點是:所有網路連線裝置都支援 HTTP,因此比需要專用伺服器的串流通訊協定更容易實行。另一好處是:HLS 串流可視網路狀況提高或降低影片品質,卻不干擾播放進度。因此,使用者觀看影片時,影片品質可能會變好或變壞。這個功能稱為「自適應位元速率影片傳遞」或「自適應位元速率串流」。若無此功能,緩慢的網速可能會導致影片停播。

HLS 是由 Apple 開發,用於 Apple 產品,但目前已用於廣泛系列的裝置。

什麼是串流?

串流透過網際網路向使用者傳遞視覺和音訊媒體。它的運作方法是:持續傳送少量的媒體檔案,而不是立即傳送所有檔案。原始的媒體檔案將儲存於遠端,或若為即時串流,會利用遠端攝像機或麥克風即時建立檔案。如此一來,使用者無需將影片或音訊檔案下載至裝置,即可播放檔案。

什麼是HTTP?

HTTP 是應用程式層的通訊協定,用以在多個連線網路的裝置間傳輸資訊。一般使用者可存取的每個網站和應用程式,都是在 HTTP 上執行。具體上 HTTP 是根據要求和回應傳輸資料,且幾乎所有 HTTP 訊息都是特定要求,或對要求作出的回應。

HTTP 上的串流不適用於標準的要求-回應模式。用戶端和伺服器之間的連線在串流期間維持開放,且伺服器將推送影片資料至用戶端,因此用戶端無需要求每個影片資料的區段。

HLS 如何運作?

伺服器: HLS 串流來自於儲存媒體檔案的伺服器 (隨選串流),或串流建立之處 (即時串流)。由於 HLS 是基於 HTTP,任何正常的網路伺服器都可啟動串流。

伺服器主要執行兩個流程:

  1. 編碼:重新格式化影片資料,好讓任何裝置都能辨識和解譯資料。HLS 必須使用 H.264 或 H.265 編碼。
  2. 分段:影片以數秒長度的方式分成不同片段。片段長度可變,但預設長度為 6 秒 (2016 年爲止是 10 秒)。
    • 除了將影片分段, HLS 建立影片區段的索引檔案,以記錄其所屬順序。
    • HLS 也以不同的品質等級,建立幾個區段的複製組合,分別是:480p、 720p、 1080p 等等。

發佈:一旦用戶端裝置要求串流,已編碼的影片區段將透過網際網路推送至其裝置。具體而言,內容傳遞網路 (CDN) 將協助發佈串流至各式各樣的地理區域。CDN 也將快取串流,以更快速度推送檔案至用戶端

用戶端裝置:用戶端是接收串流和播放影片的裝置,例如:使用者的智慧型手機或筆記型電腦。用戶端使用索引檔案作為按次序組合影片的參考資料,且按需要從較高品質切換為較低品質畫面 (反之亦然)。

什麼是 HLS 中的自適應比特率串流

與部份其他串流通訊協定相比, HLS 其中一個好處是:自適應比特率串流。這指的是可按網路狀況的改變,在串流之際調整影片品質。如此一來,即使網路狀況變差,也能持續播放影片;相對來說,也可在網路可支援時,提供最佳影片品質。

若使用者影片播放器偵測到網速變慢,自適應比特率串流將調低串流品質,不至於停止播放影片。一旦可用較高網路頻寬,自適應比特率串流立即改善串流品質。

由於 HLS 在分段流程的不同品質等級時建立數個複製的分段串流,因此可執行自適應位元速率串流。使用者影片播放器接著可於播放時,從某個此類串流切換至另一個串流。

HLS 使用 TCP 或 UDP 作為傳輸通訊協定嗎?

TCP UDP 是傳輸通訊協定,意思是它們負責透過網際網路傳遞內容。TCP 傳送資料的穩定度比 UDP 高,但後者的速度快很多,即使在傳輸時可能會遺失部份資料。

由於 UDP 速度較快,一些串流通訊協定用 UDP 來取代 TCP。但 HLS 使用的是 TCP,原因如下:

  1. HLS 是基於 HTTP,而 HTTP 通訊協定是基於在 TCP 上使用而建立 (唯存在部份例外情況)。
  2. 與串流發展的最早期相比,現代網際網路更穩定高效。今天全球許多地區的使用者連線也顯著改善,特別是行動連線。因此,使用者擁有足夠的頻寬,支援每個影片框架的傳遞。
  3. 自適應比特率串流有助補償潛在的 TCP 較慢速的資料傳遞。
  4. HLS 串流無需「即時」,就如同視訊會議連線一般。數秒的速度延遲不會如同遺失影片框架般,影響使用者體驗。

還有什麼其他常用的串流通訊協定?

還有一些類似 HLS 的通訊協定,例如:也在 HTTP 上執行,以及也提供自適應位元速率串流的 MPEG-DASHHDS。在 RTMP 或 HDS 上執行的 Adobe Flash 一度是視訊串流的主流技術;不過,許多瀏覽器已不再支援 Flash。RTMP 仍在使用當中,但已在走下坡路。

Cloudflare 支援 HTTP 即時串流嗎?

Cloudflare 支援 HLS 進行隨選和即時串流。Cloudflare Stream 利用快速、安全及穩定的 Cloudflare 網路,整合影片儲存、編碼和可自訂的播放器,其架設已遍佈 120 個國家的 330 個城市。此舉促進全球使用者取得快速、高品質的 HLS 串流。深入瞭解 Cloudflare Stream。瞭解有關 Cloudflare for Teams 的更多資訊。