2007年6月9日 星期六

網路串流媒體技術(Streaming Media and Technologies)


所謂的“串流”(Streaming)是指將一連串的影像壓縮後,經過網際網路分段傳送資料,在網路上即時傳輸影音以供觀賞的一種技術與過程。

串流技術的發展

現在的多媒體影音的檔案容量通常都較為龐大。

如果採用一般「下載檔案」的方式 進行,必須要等整個檔案下載完後才能觀賞,會花費過多的等待時間。

如在PDA 等IA產品,如Compaq iPAQ 3835 Pocket PC,僅有64MB RAM 可供使用,下載整個檔案的方式就變得較為不切實際。

為了解決上述的問題核心,於是便開始發展多媒體串流(Streaming)技術。

多媒體串流的主要目的是希望在網路上,不需藉由下載檔案的方式,就能讓使用者在不用等待的情況下,即時觀賞多媒體資訊。

串流媒體的概念

檔案下載 –等待時間以及品質都與檔案大小有關

串流下載 –當你使用串流觀賞線上影音時,你所使用的檔案會先放置到Windows的Temp資料夾中而這資料夾會定期出清,當然也可以手動清除。

有人說會下載到硬碟也算有使用,但既然會清除也就算是不佔用了。

無須等待檔案完全下載,品質受限於網路頻寬。

多點廣播 vs 單點廣播

多點廣播(Multicast)-可提供對多人同時播送,大幅降低對網路頻寬的需求,但是無法提供隨選視訊。

單點廣播(Unicast)-可以提供隨選視訊,但可連線的用戶數量受限於網路頻寬。

Streaming傳輸的兩種方法

1.順序流式傳輸(progressive streaming): 順序流式傳輸是指依照順序下載,在下載的同時,用戶端可以線上觀看檔案。

2.即時流式傳輸(real time streaming): 即時流式傳輸可使媒體被即時觀賞。

多媒體串流主要的應用模式

多媒體串流主要的應用模式有兩種:即時(On Live)與非即時(On Demand)。

即時模式意謂當媒體來源經壓縮處理後,隨即利用伺服器,經由網路傳送到播放器。

標準的應用範例有雙向的視訊會議與單向的即時監控。

非即時模式意謂當媒體來源經壓縮處理後,即存放在資料庫內,當播放器向伺服器提出要求時,伺服器才從資料庫調出檔案,利用伺服器,經由網路傳送到播放器上。

標準的應用範例有隨選視訊(VOD)。

串流技術(傳輸協定)的分類

第一類串流技術利用標準的網頁伺服器 (Web server)將多媒體資料送到使用者的播放器播放。

第二類串流技術是利用獨立的串流伺服器(streaming server)將多媒體資料送 到使用者的播放器上播放。這種方式通稱為True Streaming。

第三類串流技術叫Clientless Streaming,播放器不是內建在用戶端,而是在串流過程中才送到使用者手上。


第一類串流技術利用標準網頁伺服器(Web Server)

標準的網頁伺服器是遵守HTTP (Hyper Text Transfer Protocol)通訊協定,所以這種方式通稱為HTTP Streaming。

使用這種串流方式的好處是只要使用一般的網頁伺服器,並不需要再另外建置專屬的串流伺服器,所以這種串流方式也稱為Server less Streaming或是Pseudo Streaming。

使用HTTP streaming前,多媒體資料要先包裝成符合網頁伺服器的特定格式,像 RealPlayer所使用的RM格式或Window Media Player 所使用的 Advanced Streaming Format (.asf)格式。

因為使用HTTP協定不容易自動偵測當時的網路環境,所以必須先備妥各種速率的資料,以適用於不同頻寬的網路環境。

這種方式會造成伺服器端硬碟儲存空間的浪費。

因為HTTP的傳輸層是使用 TCP (Transmission Control Protocol) 通訊協定,當傳輸資料遺失時會要求重傳,此容易造成延遲(delay)。


第二類串流技術利用串流伺服器(Streaming Server)

True Streaming一般又稱為RTP Streaming,因為它是遵守RTP (Real Time Protocol)通訊協定。

RTP非常類似HTTP與FTP (File Transfer Protocol),不過它是針對即時串流的特殊需求所設計。

RTP會以一定的速率,傳送一條單向的資料流到播放器,只要有足夠的網路頻寬傳送資料,播放器就會立即播放媒體資料。

播放完後,資料就會消失不見,在使用者的硬碟內不會儲存有任何的檔案。

想要再看一次,只有透過與串流伺服器再一次連線才行。


第三類串流技術Clientless Streaming

這類技術主要應用在行動裝置上,尤其是支援Java技術的平台。

這類應用的使用者並不需要在用戶端安裝太多的程式,只有在有實際需要時,才透過OTA (Over The Air)將Java版的播放器送 到用戶端安裝並播放串流檔案。


第一類串流 vs 第二類串流

RTP的傳輸層是使用UDP (User Data Protocol)而非TCP。

UDP在資料遞送方面,會比TCP快速且有效率,因此可有效避免延遲現象。

可是UDP缺乏回報資料遺失的機制,所以在網際網路或無線網路串流中,幾乎都會有資料遺失的情況,造成品質下降。

另外,大部份公司和企業的防火牆都會檔掉UDP,所以在防火牆內是無法接收到藉由UDP遞送的串流。

想要在有防火牆的情況下使用RTP,必須使用HTTP tunneling 技術,亦即將RTP封包包裹在HTTP封包內,以方便通過防火牆。

但HTTP tunneling會增加許多額外的資料,佔掉更多的頻寬。


HTTP vs RTP Streaming

基本上,兩者之間的優缺點是處於互補的狀態。

UDP

這是TCP/IP架構中一個在運輸層的無連接導向且不可靠的協定,特性有

1.在資料開始傳送之前,不須先連繫建立管道,屬於無連接導向協定。

2.資料傳送時,進行較簡單的檢查和(checksum)錯誤偵測,若發現錯誤或遺失時,也不會要求重新傳送分封,同時不保證資料傳送順序是正確的

3.此協定可以單向快速的傳送資料。

可調式壓縮編碼(scalable coding)

第二個常會面臨的問題是傳輸頻寬變動,尤其在網際網路,無線網路與異質網路的環境下。頻寬變動往往會造成多媒體資料無法傳送(頻寬太小)或頻寬浪費的情況(頻寬大但傳送資料少,導致多媒體的品質很差)。

目前的解決方式是預先備妥各種頻寬速率的資料,根據網路的情況再作動態的調整。但因為每一份內容都需要準備數個備份,這種方式會造成儲存資源的浪費。

較新的多媒體串流技術都開始考慮採用可調式壓縮(scalable coding)的編碼方式,希望能有效對抗頻寬變動的問題。此技術主要特色是達到「一次編碼,處處解碼(encode once , decode many times)」的目標,亦即串流同一份可調式編碼的多媒體檔案,就可以在任意的頻寬,任意的裝置,收看任意大小、任意畫質的多媒體資料。

可調式編碼的最高理想是,只需一種壓縮編碼,就可以應付不同的頻寬使用者,且會因頻寬不同,而有不同的對應品質。例如,使用者在收看網路多媒體時,可擺脫因頻寬變動所造成的畫面暫停、破損、甚至無法收看的窘境。


目前網路三大串流影音軟體之功能比較






串流格式之優缺點比較






轉檔成不同串流格式品質之比較

1 則留言:

匿名 提到...

Hello. This post is likeable, and your blog is very interesting, congratulations :-). I will add in my blogroll =). If possible gives a last there on my blog, it is about the TV Digital, I hope you enjoy. The address is http://tv-digital-brasil.blogspot.com. A hug.