流媒體技術原理及播放方式
串流的實現需要緩衝。因為Internet以包傳輸為基礎進行斷續的非同步傳輸,對一個即時A/V源或儲存的A/V檔案,在傳輸中它們要被分解為許多包,由於網路是動態變化的,各個包選擇的路由可能不盡相同,故到達用戶端的時間延遲也就不等,甚至先發的資料包還有可能後到。
一、流媒體技術原理
串流的實現需要緩衝。因為Internet以包傳輸為基礎進行斷續的非同步傳輸,對一個即時A/V源或儲存的A/V檔案,在傳輸中它們要被分解為許多包,由於網路是動態變化的,各個包選擇的路由可能不盡相同,故到達用戶端的時間延遲也就不等,甚至先發的資料包還有可能後到。為此,使用緩衝系統來彌補延遲和抖動的影響,並保證資料包的順序正確,從而使媒體資料能連續輸出,而不會因為網路暫時擁塞使播放出現停頓。通常快取所需容量並不大,因為快取使用環形鏈表結構來儲存資料:通過丟棄已經播放的內容,流可以重新利用空出的快取空間來緩衝後續尚未播放的內容。
串流的實現需要合適的傳輸協議。由於TCP需要較多的開銷,故不太適合傳輸即時資料。在串流的實現方案中,一般採用HTTP/TCP來傳輸控制資訊,而用RTP/UDP來傳輸即時聲音資料。
串流的過程一般是這樣的:使用者選擇某一流媒體服務後,Web瀏覽器與Web伺服器之間使用HTTP/TCP交換控制資訊,以便把需要傳輸的即時資料從原始資訊中檢索出來;然後客戶機上的Web瀏覽器啟動A/VHelper程式,使用HTTP從Web伺服器檢索相關參數對Helper程式初始化。這些參數可能包括目錄資訊、A/V資料的編碼類別型或與A/V檢索相關的伺服器位址。
A/VHelper程式及A/V伺服器運行即時資料流控制協議(RTSP),以交換A/V傳輸所需的控制資訊。與CD播放機或VCRs所提供的功能相似,RTSP提供了操縱播放、快進、快倒、暫停及錄製等命令的方法。A/V伺服器使用RTP/UDP協議將A/V資料轉送給A/V客戶程式(一般可認為客戶程式等同於Helper程式),一旦A/V資料抵達用戶端,A/V客戶程式即可播放輸出。
需要說明的是,在串流中,使用RTP/UDP和RTSP/TCP兩種不同的通訊協定與A/V伺服器建立聯絡,是為了能夠把伺服器的輸出重新導向到一個不同於運行A/VHelper程式所在客戶機的目的地址。實現串流一般都需要專用伺服器和播放器,其基本原理。
二、流媒體播放方式
1.單播
在用戶端與媒體伺服器之間需要建立一個單獨的資料通道,從一台伺服器送出的每個資料包只能傳送給一個客戶機,這種傳送方式稱為單播。每個使用者必須分別對媒體伺服器發送單獨的查詢,而媒體伺服器必須向每個使用者發送所申請的資料包拷貝。這種巨大冗餘首先造成伺服器沉重的負擔,響應需要很長時間,甚至停止播放;管理員也被迫購買硬體和頻寬來保證一定的服務品質。
2.組播
IP組播技術構建一種具有組播能力的網路,允許路由器一次將資料包複製到多個通道上。採用組播方式,單台伺服器能夠對幾十萬台客戶機同時發送連續資料流而無延時。媒體伺服器只需要發送一個資訊包,而不是多個;所有發出請求的用戶端共用同一資訊包。資訊可以發送到任意地址的客戶機,減少網路上傳輸的資訊包的總量。網路利用效率大大提高,成本大為下降。
3.點播與廣播
點播串連是用戶端與伺服器之間的主動的串連。在點播串連中,使用者通過選擇內容項目來初始化用戶端串連。使用者可以開始、停止、後退、快進或暫停流。點播串連提供了對流的最大控制,但這種方式由於每個用戶端各自串連伺服器,卻會迅速用完網路頻寬。
廣播指的是使用者被動接收流。在廣播過程中,用戶端接收流,但不能控制流程。例如,使用者不能暫停、快進或後退該流。廣播方式中資料包的單獨一個拷貝將發送給網路上的所有使用者。 使用單播發送時,需要將資料包複製多個拷貝,以多個點對點的方式分別發送到需要它的那些使用者,而使用廣播方式發送,資料包的單獨一個拷貝將發送給網路上的所有使用者,而不管使用者是否需要,上述兩種傳輸方式會非常浪費網路頻寬。組播吸收了上述兩種發送方式的長處,克服了上述兩種發送方式的弱點,將資料包的單獨一個拷貝發送給需要的那些客戶。組播不會複製資料包的多個拷貝傳輸到網路上,也不會將資料包發送給不需要它的那些客戶,保證了網路上多媒體應用佔用網路的最小頻寬。