【李家同】為台灣加油打氣專欄(237)我國的影音串流系統

張貼日期:2022/02/22

我們現今在家裡透過電視機上盒、電腦或手機,就可以看到許多電影和戲劇,也可以透過直播看到各種運動比賽,觀看的過程可以非常流暢,幾乎沒有延遲和中斷,這些主要是因為影音串流技術的進步。所謂的影音串流技術,就是將影像和聲音透過網路傳送到使用者的裝置上。由於影音檔案往往動輒數十Giga,大量影音檔案在網路上傳遞,就需要複雜的影音串流系統與遞送網路支撐,而這些技術以前都掌握在國際大公司手上,現在我們自已也有影音串流與遞送系統。

 

以下我們要介紹影音串流系統當中兩個非常重要的技術,分別是影音串流通訊協議 (Streaming Protocol) 以及內容遞送網路 (Content Delivery Network, CDN)

 

1. 影音串流通訊協議

 

當我們想要透過網路觀看一部影片時,傳統的做法是將整部影片都下載到我們的電腦上,等到下載完成以後才能開始觀看。這種做法的缺點是,假如我們想要看的是一部2小時的電影,我們不能馬上看到,而是先要等幾十分鐘將整部電影下載下來,下載完成以後才能觀看。

 

為了讓使用者可以即時看到影片,不須等待下載時間,我們需要一種新的針對即時影音傳輸來設計的通訊協議,請看圖一。


圖一

對於觀看電影和戲劇來說,影音檔案可能很長,我們可以將完整的影片切割成一段一段的,每一個片段是10秒鐘的影片。當使用者選擇了某一部影片時,伺服器開始將片段傳送到使用者的裝置上。使用者收到個別的片段時,就可以即時的播放出來,而不需要等到整部影片傳送完成。

 

由於網路有時很順暢,有時會有塞車的問題。透過這種針對影音串流設計的通訊協議,在網路順暢時,尚未觀看的片段可以比較快地下載,當網路開始塞車時,這些事先下載好的片段就可以做為緩衝,等到網路塞車恢復以後再下載後續的片段。只要做為緩衝的片段數量夠多,使用者就不會在偶爾網路塞車時感覺到影片有中斷的問題。

 

以上只是一個簡單的介紹,實際上影音串流通訊協議還牽涉到影音編碼、解碼、壓縮和加密等問題,也會自動地分析網路狀況來切換影片的解析度,以及根據使用者需求提供不同語言的字幕等等,這些我們無法一一說明。

 

2. 內容遞送網路

 

影音串流系統中另一個重要技術稱為內容遞送網路,是針對影音服務所設計的網路架構,它使得影音服務公司可以提供給數百萬使用者觀看,卻不會有網路塞車問題。

 

我們先說明傳統網路服務的傳輸架構,稱為集中式架構,如圖二所示。

圖二

 

集中式架構是由一台效能非常強大的影音伺服器來直接服務使用者,舉例來說,假設每個使用者在觀看影片時,每秒至少需要10MB (每秒傳輸一千萬位元組) 的數據傳輸量,才能確保影片不會有中斷的問題。那麼一台頻寬為每秒傳輸10GB (每秒傳輸一百億位元組) 數據的影音伺服器,最多就只能容納1000位使用者同時使用。若影音服務公司採用這種集中式架構,假如想要服務100萬使用者,那麼他們就需要有1000台這種影音伺服器。由於這種高效能的影音伺服器非常昂貴,這種做法是不切實際的。

 

為了解決這個問題,內容遞送網路所採用的是所謂的階層式架構,請看圖三。

圖三 

在階層式架構中,當有一個使用者要觀看某一部影片時,他會先向所屬區域的伺服器要求傳送影片,假如區域的伺服器中剛好就有這部影片,那它就可以立即將影片傳送給使用者。假如區域的伺服器中沒有這部影片,才會向影音伺服器要求傳送影片。

 

因為區域伺服器的效能較低,因此能夠存放的影片數量是有限制的。由於每個區域的民眾喜歡的影片有所不同,區域的伺服器中通常會存放該區域最常被觀看的影片,如此一來使用者可以即時取得影片內容。當然決定哪些影片要存放在區域伺服器當中,不是由人力來決定的,而是由一套軟體工程師所開發的演算法來決定的。所謂的演算法,其實是有關數學的學問。

 

這種系統的開發過程中,工程師需要對網路基礎知識和各種硬體設備有所了解,要具備開發軟體和演算法的能力,也要懂得影音編碼、解碼、壓縮和加密等技術。我們必須再次強調,這些學問都建立在數學上,假如數學程度不夠好,很難設計出優秀的演算法,也不可能懂得編碼、解碼、壓縮和加密的。假如對於網路的基礎知識不夠瞭解,是不可能懂得通訊協議的。如果國家不重視基礎科學,我們永遠只能使用先進國家所開發的技術,而無法自行發展最先進的技術。

 

我國自行開發的影音串流與遞送系統,目前已經能夠同時服務百萬以上的用戶,並且將這套系統放上雲端,提供服務給全世界,非常值得我們慶幸。