即時串流編碼如何運作?| 視訊編碼

即時串流編碼作業會將即時視訊分成較小的區塊、加以壓縮,再經由 CDN 散發視訊資料。對此程序的更新可加快即時串流的速度。

Share facebook icon linkedin icon twitter icon email icon

即時串流編碼

學習目標

閱讀本文後,您將能夠:

  • 了解為何要將視訊檔案編碼
  • 了解即時串流編碼的運作方式
  • 了解提升即時串流的編碼程序如何能減少延遲

什麼是即時串流?

串流這種方式可經由網際網路遞送資料,讓終端使用者不必下載完整資料。藉由即時串流這種方式,串流能在網際網路上即時傳送,不必先記錄並且儲存。

電玩遊戲串流、社交媒體串流如 Periscope 和 Facebook Live,以及網際網路上的職業運動廣播,都是即時串流的例子。雖然音訊和視訊兩者都能串流,本文專講即時視訊串流。

什麼是視訊編碼?

視訊編碼是壓縮視訊資料的程序,以便能高效送至其他地點。串流接收端上的裝置 – 例如使用者觀看所喜愛電視節目用的平板電腦 – 會將編碼的資料解碼。視訊編碼遵循公開已知的標準,好讓各種裝置都能夠解譯編碼的串流。

視訊編碼之所以有其必要,主要有兩個原因:

  1. 未壓縮的視訊檔案透過網際網路傳送所需的時間實在過久,造成串流不可行。
  2. 視訊的格式必須是任何使用者所用裝置 – 包括智慧型手機、膝上型電腦、PC 等 – 所能解譯。

在視訊的即時串流中,裝置會接收視聽輸入,加以編碼,然後全部同時送出給受眾。此程序的編碼部分對於讓各種使用者裝置都能夠接收並且播放視訊來說非常重要。

即時串流編碼如何運作?

即時串流若出自拍攝視訊的來源 – 例如網路攝影機– 會傳送至伺服器,該處有串流通訊協定,如 HLS 或 MPEG-DASH 將視訊饋送分割成較小的區段,各為幾秒長度。

接著視訊內容會依編碼標準接受編碼。目前廣為採用的編碼標準稱為 H.264,不過諸如 VP9、AV1 及 HEVC 等標準的使用也日漸普及。此編碼程序壓縮視訊的方式是移除冗餘的視覺訊息。例如,於某人在藍天背景之前談話的串流之中,藍天因為改變不多,不必為每秒的視訊重複呈現,所以藍天可從視訊的大多數畫格之中截除。

接著經過壓縮、區段化的視訊資料就會透過內容傳遞網路 (CDN) 散發。若無 CDN,只有極少數觀眾能實際載入即時串流 – 原因請見本文最後一節解說。

大多數行動裝置皆內建有編碼器,讓一般使用者很便利地在社交媒體平台和經由傳訊應用程式進行即時串流。想要使用更高品質串流的品牌和公司,可使用本身的編碼軟體、硬體或兩者。

較新的技術如何能加快即時串流的速度?

許多即時串流方式之下,觀眾仍體驗到 20 至 30 秒的延遲 – 換言之,其所檢視的內容落後即時 20 至 30 秒。其原因一部份在於視訊的各區段必須充分載入後方能播放,而視訊的各區段可花數秒方能載入。

因應這種延遲有一種解決方案:稱為區塊式編碼的程序。此程序以「區塊化」運作,亦即將視訊的區段分割成更小的片段,這些更小的片段就能接受編碼,接收串流的裝置能在完整區段載入之前播放這些較小的區塊。

CDN 如何能提升加快即時串流速度的能力?

CDN 對於即時串流至關重要,因為此法能將串流散發至廣大不同地點的使用者,加上 CDN 比起單一來源伺服器有多出許多的頻寬可散發串流。若無 CDN,即時串流可輕易陷入頻寬問題。

然而,大多數 CDN 仍然必須先載入視訊的完整區段之後,才能一併將區段提供給多位使用者。此情形也重新導入區塊式編碼理應解決的延遲問題。

為加快即時串流的速度,Cloudflare 推出一項功能,稱為同時間串流加速。Cloudflare CDN 能在視訊的一個區段還在載入期間,一併遞送給多位終端使用者,免除整個區段載入時的等候時間。Cloudflare 全球網路遍布 95 餘國的 200 座城市,讓全球各地的使用者能夠鎖定頻道,觀賞高品質的即時串流。