所謂的“串流”(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.
張貼留言