流媒體是一種新的媒體傳輸方式,而非新的媒體形式;如果矯情地說,流媒體并不是一種技術(shù),而是采用了流式傳輸技術(shù)的視頻實(shí)現(xiàn)手段。流媒體(SM,Stream Media)技術(shù)就是把連續(xù)的影像和聲音信息經(jīng)過壓縮處理后放到網(wǎng)絡(luò)服務(wù)器上,讓終端用戶能夠一邊下載一邊觀看、收聽,而不需要等到整個多媒體文件下載完成才觀看的技術(shù)。
流媒體的核心在于流式傳輸技術(shù)。流,在《說文解字》里的意思為“流,水行也”,也就是說,水運(yùn)動的方式為“流”。因此,流式傳輸技術(shù)就是指讓互聯(lián)網(wǎng)的信息表現(xiàn)形式如同水流一樣傳輸?shù)募夹g(shù)。水流的特點(diǎn)是什么呢?源源不斷,“逝者如斯,不舍晝夜”。傳統(tǒng)互聯(lián)網(wǎng)上的媒體是以包的方式由服務(wù)器向客戶端進(jìn)行傳輸?shù)模襟w內(nèi)容先進(jìn)行拆包,分發(fā)到各個路由器上,傳輸?shù)浇K端后再按照規(guī)則合并,這就造成了無法形成“源源不斷”的播放。因此,人們想出了應(yīng)用于互聯(lián)網(wǎng)的流式傳輸技術(shù),在這個技術(shù)中定義了專門的規(guī)則協(xié)議、文件格式和服務(wù)器,通過這些規(guī)則協(xié)議來保證媒體傳輸?shù)摹霸丛床粩唷薄?/SPAN>
這里,為了方便讀者理解,可以用一個很有意思的比方來解釋流式傳輸與分組傳輸?shù)膮^(qū)別,即當(dāng)前國際上的石油運(yùn)輸:傳統(tǒng)互聯(lián)網(wǎng)服務(wù)就好比將石油輸出國的石油分包到一艘艘油輪,然后經(jīng)過航道(航道就代表了互聯(lián)網(wǎng)絡(luò))運(yùn)送到用油國家的港口,之后再卸貨運(yùn)送到精煉廠或儲油廠;而流式技術(shù)則是在兩個國家之間建立一條輸油管,這樣石油就可以“源源不斷”流向用油國家(管道中間的關(guān)鍵控制開關(guān)以及石油精煉廠、儲油廠等設(shè)施就好比協(xié)議和服務(wù)器等要素)。流式傳輸技術(shù)存在兩種實(shí)現(xiàn)方法:順序流傳輸、實(shí)時流傳輸。
一、順序流傳輸(Progressive Streaming)
順序流傳輸也稱漸進(jìn)流式傳輸,實(shí)際上是順序下載,并在下載文件的同時可讓用戶觀看在線媒體。這種技術(shù)實(shí)現(xiàn)方式并不需要增加任何協(xié)議和新的服務(wù)器,而是沿用了互聯(lián)網(wǎng)的HTTP服務(wù)器及Web服務(wù)器,利用了現(xiàn)存的基礎(chǔ)設(shè)施。其與完全下載后播放的差別在于客戶端播放器的運(yùn)作,順序流傳輸可以在下載的同時啟動播放器播放媒體。由于標(biāo)準(zhǔn)的HTTP服務(wù)器可發(fā)送這種形式的文件,也不需要其他特殊協(xié)議,因此它經(jīng)常被稱做HTTP流式傳輸。因此,這種流式傳輸技術(shù)并沒有對傳輸通道和傳輸協(xié)議做改動,而只是在末端采用了漸進(jìn)下載播放的功能,從用戶角度看上去好像實(shí)現(xiàn)了“流”的感覺,而實(shí)際上傳輸機(jī)制并未實(shí)現(xiàn)真正意義的“源源不斷”。
因此順序流傳輸?shù)膯栴}自然浮出水面,其表現(xiàn)詳見下表1中的三個方面。于是,技術(shù)設(shè)計師們會自然而然地想到了一個新的問題:能否在互聯(lián)網(wǎng)上采用新的辦法來真正實(shí)現(xiàn)“流”的傳輸,以提供給用戶真實(shí)的“流”的感受?21世紀(jì)初,3個重量級公司Microsoft、Apple和Real Networks設(shè)計了構(gòu)思巧妙的實(shí)時流傳輸技術(shù)。
二、實(shí)時流傳輸(Realtime Streaming)
實(shí)時流傳輸通過采用一系列手段(協(xié)議、文件格式、服務(wù)器端)保證了媒體的實(shí)時性和連續(xù)性。實(shí)時流與順序流傳輸不同,它需要專用的流媒體服務(wù)器與傳輸協(xié)議。
1、流媒體服務(wù)器
流媒體服務(wù)器比當(dāng)前普遍使用的Web服務(wù)器更熟悉流媒體的特點(diǎn),擁有符合流媒體特點(diǎn)的技術(shù),采用適合流媒體特點(diǎn)的協(xié)議。這就好比一個飯店原來由魯菜廚師掌勺,但是發(fā)現(xiàn)顧客愛吃麻辣口味,初期可以讓魯菜廚師先做川菜,但是這種做法往往不能滿足顧客的胃口(魚香肉絲做出了京醬肉絲的味道),因此必須再聘請一個川菜師傅才能讓顧客滿意,因?yàn)榇ú藥煾高@個“服務(wù)器”擁有符合麻辣口味的技術(shù)。
流媒體服務(wù)器具備采用多種應(yīng)用層協(xié)議(OSI的第4層)的能力,特別是可以使用UDP(用戶數(shù)據(jù)報協(xié)議)之類的協(xié)議,這樣便能極大提高流的體驗(yàn)。UDP與TCP的差別在于,UDP是快速簡單的協(xié)議,不具有重傳和數(shù)據(jù)速率管理能力,不能恢復(fù)丟失的數(shù)據(jù),也不能應(yīng)付可變數(shù)據(jù)速率通道。但是對于實(shí)時的音頻視頻數(shù)據(jù)而言,其特點(diǎn)在于可以容忍一些數(shù)據(jù)丟失,因此采用針對這樣特點(diǎn)的UDP協(xié)議可以通過犧牲無關(guān)緊要的包來實(shí)現(xiàn)傳輸?shù)倪B貫。(相反,TCP協(xié)議在數(shù)據(jù)重傳和數(shù)據(jù)管理方面的能力就很強(qiáng),這讓我們想到了“塞翁失馬”的故事。)
2、流媒體相關(guān)協(xié)議
同時,流媒體服務(wù)器采用了專門為流式傳輸所建立的RTP、RTCP、RTSP和RSVP協(xié)議,這些協(xié)議保證了傳輸?shù)囊纛l視頻數(shù)據(jù)與傳輸控制信息分別遵守各自對應(yīng)的協(xié)議,并做到了對帶寬的匹配,同時為客戶端提供了控制能力(快進(jìn)、快倒、跳至某段、暫停)。下述協(xié)議的分層如圖1所示。
圖1:流媒體協(xié)議分層
1)實(shí)時傳輸協(xié)議(RTP)
RTP (Real-time Transport Protocol)是在Internet上針對多媒體數(shù)據(jù)流的一種傳輸協(xié)議,工作于一對一或一對多的傳輸情況,可提供時間信息和實(shí)現(xiàn)流同步。RTP與HTTP和FTP等一樣都位于應(yīng)用層。RTP與HTTP最大的不同在于RTP是基于UDP的應(yīng)用層協(xié)議。RTP并不將整個媒體文件下載到客戶端,而是在經(jīng)過初始會話和數(shù)據(jù)緩存延遲之后,以事先協(xié)商好的速率播送數(shù)據(jù)流。一旦播放器播放完數(shù)據(jù),數(shù)據(jù)就會被丟棄,這樣本地硬盤中并沒有文件保留,當(dāng)用戶需要再次收看時,只好再和服務(wù)器請求協(xié)商。RTP只保證數(shù)據(jù)傳輸,其他諸如擁塞控制、流量控制等傳輸保障一概不管,由此需要再引入RTCP來進(jìn)行控制。這種設(shè)計與當(dāng)前通信融合中的控制與承載相分離頗有幾分相像。
2)實(shí)時傳輸控制協(xié)議(RTCP)
在RTP會話期間,流媒體服務(wù)器對基于UDP的RTP協(xié)議并不放心,萬一丟包太多造成質(zhì)量嚴(yán)重惡化就會無計可施。于是設(shè)置了RTCP協(xié)議來協(xié)助RTP以提供流量控制和擁塞控制服務(wù)。RTCP讓網(wǎng)絡(luò)上的所有參與者周期性地傳送RTCP包,這些包中含有已發(fā)送數(shù)據(jù)包的數(shù)量、丟失數(shù)據(jù)包的數(shù)量等統(tǒng)計數(shù)據(jù),流媒體服務(wù)器就可根據(jù)這些信息動態(tài)地改變傳輸速率和有效載荷類型。RTP與RTCP組合成搭檔,一個負(fù)責(zé)執(zhí)行,一個負(fù)責(zé)監(jiān)控,干活的竭盡全力,監(jiān)工的毫不懈怠,保證了傳輸流的源源不斷。
3)實(shí)時流協(xié)議(RTSP)
盡管設(shè)計了近乎完美的RTP/RTCP,但仍舊存在一些缺憾。RTP/RTCP確實(shí)保證了播放的“源源不斷”,但是流媒體內(nèi)容存在明顯的時間線(開始時間、結(jié)束時間、中間段時間),于是,用戶就存在控制所收看的內(nèi)容時序的愿望,他們想在收看開始時就知道故事的結(jié)局,還想快進(jìn)或慢進(jìn)來找到自己想要的內(nèi)容。而這些都是RTP/RTCP滿足不了的。于是Real Networks、Netscape又共同設(shè)計了RTSP (Real-time Streaming Protocol)。RTSP在體系結(jié)構(gòu)上位于RTP/RTCP之上,它使用TCP完成數(shù)據(jù)傳輸。RTSP做到雙向服務(wù),在服務(wù)器與客戶端播放器之間傳遞請求和響應(yīng)。RTP/RTCP兩個協(xié)議可以把流媒體的內(nèi)容順利播放,RTSP則作為更高層的管理,保證了播放內(nèi)容的可控制性。
4)其他輔助協(xié)議:會話描述協(xié)議(SDP)和資源預(yù)留協(xié)議(RSVP)。
之所以稱為輔助協(xié)議,實(shí)際上這兩個協(xié)議對實(shí)現(xiàn)一個實(shí)時流媒體并不必要,但是針對特定的情景和問題這兩個協(xié)議會協(xié)助流媒體方便傳輸。SDP (Session Description Protocol)規(guī)定了對描述會話的必要信息進(jìn)行編碼的方法。SDP協(xié)議實(shí)際上更多地服務(wù)于“邀請類”業(yè)務(wù)(這類業(yè)務(wù)有時會用到流媒體技術(shù))。RSVP(Resource Reserve Protocol)是為了保障流媒體QoS而在互聯(lián)網(wǎng)傳輸層規(guī)定的協(xié)議,其根本作用是通過在每個傳輸流媒體的節(jié)點(diǎn)上預(yù)留資源而保證客戶側(cè)的實(shí)時“流”感受。
三、流媒體編碼格式
視頻業(yè)務(wù)的技術(shù)實(shí)現(xiàn)形式是面向通道的,但是面向源的編碼格式是流媒體通道技術(shù)可以在互聯(lián)網(wǎng)及未來的
四、流媒體播放器
流媒體播放器就是針對流媒體的客戶端。播放器的作用就是將壓縮文件解碼、呈現(xiàn)視頻和音頻(就是“播放”),因此不同類型的播放器只能解適合自身類型格式的編碼。