HTTP 動態串流 (HDS) 是一種透過使用 HTTP 的網際網路向終端使用者提供視訊的方法。HDS 不像 HTTP 即時串流 (HLS) 等其他串流通訊協定那樣常用。
閱讀本文後,您將能夠:
複製文章連結
HTTP 動態串流 (HDS) 是 Adobe 開發的一種自適應位元速率串流方法。HDS 透過 HTTP 連線提供 MP4 視訊內容。HDS 可用於串流點播或即時串流。由於它們是透過 HTTP 交付的,因此 HDS 串流可以被快取——透過內容傳遞網路 (CDN) 或另一個快取伺服器。
HDS 是為與 Adobe Flash Player 和 Adobe AIR 配合使用而開發的。Adobe Flash Player 已停產,現在有一家外部公司支援 AIR 而不是 Adobe。Apple 裝置不支援 HDS。
Adobe Flash Player 是一個用於播放視訊內容的瀏覽器外掛程式。多年來,Flash 外掛程式是將視訊嵌入網頁的最普遍方式。然而,在 HTML5 視訊元素發佈後,Flash 不再是嵌入式視訊的主要選擇。此外,Flash 有許多安全性漏洞,使其變得危險。(例如,幾個 Flash 漏洞允許攻擊者在某人的瀏覽器中執行他們想要的任何代碼。)
瀏覽器和作業系統多年來逐漸放棄了對 Flash 的支援,以避免安全事件。最後,Adobe 在 2020 年 12 月 31 日停止支援 Flash Player。
建立和交付 HDS 串流的過程大致如下:
伺服器:在透過 HDS 串流處理視訊檔案之前,必須將它們從常規 MP4 轉換為 F4F(分段 MP4)檔案格式。F4F 視訊檔案包含音訊、視訊和中繼資料。因為檔案是「碎片化的」,所以這三個元素可以彼此分開儲存。
HDS 視訊使用 H.264 編碼,這是一種常見的編碼標準。與許多其他串流技術一樣,HDS 編碼多個品質層級的視訊檔案版本,並將視訊分成幾秒鐘長的較短片段。這使得自適應位元速率串流成為可能(閱讀下文瞭解更多資訊)。
分發:HDS 影片片段被推送到透過網際網路請求資料流的用戶端裝置。CDN 通常可協助分發資料流,同時快取資料流以更快地提供服務。
用戶端:請求資料流的裝置使用包含在中繼資料中的視訊清單檔案作為按順序組合和播放視訊片段的參考。它還可以根據需要變更圖像品質。
可以把清單檔案比作成一套組裝飛機模型的說明。這些說明指出了每個部件的位置,使擁有模型套件的人能夠自己搭建飛機。
同樣,視訊的清單檔案告訴播放視訊的用戶端裝置(如使用者的筆記型電腦或智慧型手機)如何按順序組合視訊片段、如何載入音訊檔案、將字幕儲存在哪裡,等等。這使用戶端裝置能夠正確構建和播放視訊。
清單檔案儲存在視訊中繼資料中。檔案的「中繼資料」是指關於該檔案的其他部分的資訊。
自適應位元速率串流是一種技術,允許影片播放程式根據網路條件調整視訊的品質水準。如果網路連線效能緩慢,播放程式會載入品質較低的視訊片段,這樣可以更快地載入。如果網路連線效能較好,播放程式就會以高畫質載入視訊。這些調整在視訊播放的同時進行。
自適應位元速率串流之所以能夠實現,是因為串流視訊被分為幾個片段,並以幾種不同的品質水準進行編碼。因此,播放程式可以從多個品質層級中選擇每個視訊片段。在每個片段之後,播放程式可以根據需要切換到一個更高或更低的品質水準。
HDS 使用自適應位元速率串流,相似的,HTTP 即時串流 (HLS) 也是如此。
HLS 是最廣泛使用的串流通訊協定之一。HLS 最初是由 Apple 公司開發的專有串流通訊協定,後來成為一個開放標準。Apple 裝置仍然只支援 HLS。
這兩種串流方法之間的一個重要區別是,HDS 的支援和採用不如 HLS 廣泛。截至 2021 年,Apple 佔據了全球智慧型手機市場近四分之一的份額,因此使用 HDS 會減少大量潛在觀看者。事實上,HDS 是為與已停產的 Adobe Flash 一起使用而設計的。如今,相對較少的觀看者可能擁有可以播放 HDS 串流的裝置。
Cloudflare Stream 簡化了向世界各地的觀看者上傳和播放影片的過程。深入瞭解 Cloudflare Stream 支援的格式。