How does live stream encoding work? | Video encoding

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

學習目標

閱讀本文後,您將能夠:

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

複製文章連結

什麼是即時串流?

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

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

什麼是視訊編碼?

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

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

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

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

即時串流編碼如何運作?

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

The video content is then encoded using an encoding standard. The encoding standard in wide use today is called H.264, but standards like H.265, VP9, and AV1 are also in use. This encoding process compresses the video by removing redundant visual information. For example, in a stream of someone talking against the background of a blue sky, the blue sky does not need to be rendered again for every second of video, since it does not change a lot. Therefore, the blue sky can be stripped out from most frames of the video.

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

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

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

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

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

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

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

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

To speed up live streaming, Cloudflare offers a feature called concurrent streaming acceleration. The Cloudflare CDN can deliver a segment of video to multiple end users at once while it is still loading, eliminating the wait time while the entire segment loads. The Cloudflare global network spans 200 cities in more than 100 countries, enabling users around the world to tune into a high-quality, real-time live stream.