我國的影音串流系統

李家同/博幼社會福利基金會董事長;侯冠維

0
651

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

圖片來源 : shutterstock、達志影像

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

影音串流通訊協議

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

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

圖1. 影音伺服器提供影片呈現方式與觀影者實際看到情況;資料來源:《為台灣加油打氣專欄

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

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

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

內容遞送網路

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

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

圖2. 集中式架構傳輸模式;資料來源:《為台灣加油打氣專欄

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

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