Server 2008中流媒體服務器的部署與應用
原創【51CTO獨家特稿】如果要我說Windows Server 2008上的Media Services有多么強大的功能,那么就更像“王婆”了。事實上,從拿到BETA版到現在手上所拿到的正式版本,當安裝完 Windows Server 2008時得到的都是一種結果:怎么都沒有Windows Media Services?不過這也似乎印證了 Windows Server 2008 的用意:為了強化系統安全與穩定只安裝所需要的組件……
流媒體應用與生活
由于俺家共同使用4~5臺電腦的時代到來了(我自己就有3個筆記本),在“帶寬”的誘惑下,終于換上了更高速的ADSL網絡,這改變了家人的上網習慣,現在,他們直接使用網絡點播軟件收看大片和電視臺直播,55寸的液晶電視算是白買了,唉~~ 。如圖1所示,那么這種直接收看視頻或音頻節目的技術叫什么呢?它們又是靠什么軟件來實現的呢?
圖 1 MSN Video 網站
對嘍!這就是流媒體(Streaming Media)技術。相對于傳統的網絡傳輸音視頻等多媒體信息播放的方式是完全不同的,之前我們必須要等視頻或這音頻文件完全下載到本地后再播放,下載常常要花數分鐘甚至數小時(http或ftp下載使用標準的http和ftp協議)。而采用流媒體技術,就可實現流式傳輸,將聲音、影像或動畫由服務器向用戶計算機進行連續、不間斷傳送,用戶不必等到整個文件全部下載完畢,而只需經過幾秒或十幾秒的啟動延時(此時,你在播放器的界面上可能會出現非常熟悉的名字:緩沖)即可進行觀看。當聲音視頻等在用戶的機器上播放時,文件的剩余部分還會從服務器上繼續下載。
關于“媒體”二字就沒有什么好解釋的了,我們舉一個例子說明一下“流”的含義:
如果將文件傳輸看作是你生病之后用藥的過程,過去的傳輸方式就像是“打針”,必須等到打完一針再打一針(哈哈,疼死你),這個等待的時間自然要看你醫生給你的藥量和身體素質了,如果你是一個未成年人當然藥量就小一些,但也不能連著給你打針。而流式傳輸則像“輸液”,等待一小會兒,藥液流到管子里面,就可以給你扎一針了,因為有一部份藥液在下方的管子里,所以即使每次都只有一小滴流下來,藥液還是源源不斷地流進你的身體。從這個意義上看,流媒體這個詞是非常形象的。
實際上流媒體技術是網絡音視頻技術發展到一定階段的產物,是一種解決多媒體播放時帶寬的“軟技術”。它會涉及到流媒體數據的采集、壓縮、存儲、傳輸、負載均衡以及網絡通信等多項技術。不過對于用戶來講,觀看流媒體與觀看傳統的音視頻文件在操作上幾乎沒有任何的差別,唯有的區別在于影音品質上,由于帶寬保證(輸液的管子上的那個調節器)是第一位的,因此具有了“不平等的條約”,可以在服務器上為不同帶寬的用戶分配不同壓縮比的文件,所以當我升級了家里帶寬的時候,老婆會說:“現在網站上的電影比原來清楚多了”。
流媒體協議與傳輸
IETF中的一個名為“Integrated Services”(綜合服務)的工作組開發了一個同名的Internet增強服務模型,包括“best-effort”(盡力傳輸)服務和“real-time”服務。其中“real-time”服務就是為在IP網絡中傳輸多媒體數據提供質量保證的,它包括“RSVP”(資源預留協議)、“RTP”(實時傳輸協議)、“RTCP”(實時傳輸控制協議)、“RTSP”(實時流協議),這四種協議構成了“real-time”服務的基礎。圖2 顯示了流媒體協議棧的結構。
圖 2 流媒體協議棧的結構
另外,實現流式傳輸有兩種方法:實時流式傳輸(Real-time Streaming)和順序流式傳輸(Progressive Streaming),在我們使用這兩種方法來構建流媒體服務的時候,首先要考慮到的就是它倆的區別。一般說來,如視頻為實時廣播(央視的春節聯歡晚會),或使用流式傳輸媒體服務器,或應用如RTSP的實時協議,即為實時流式傳輸。如使用HTTP服務器(BMW汽車的宣傳片),文件即通過順序流發送。當然采用那種傳輸方法,依賴你的需求而定。
順序流式傳輸
順序流式傳輸是順序下載,在下載文件的同時用戶可觀看在線媒體,用戶只能觀看已下載的那部分,而不能跳到還未下載的前頭部分,順序流式傳輸不像實時流式傳輸在傳輸期間根據用戶連接的速度做調整。由于標準的HTTP服務器可發送這種形式的文件,也不需要其他特殊協議,它經常被稱作HTTP流式傳輸。順序流式傳輸比較適合高質量的短片段,如片頭、片尾和廣告,由于該文件在播放前觀看的部分是無損下載的,這種方法保證影片片段播放的最終質量。盡管有延遲,畢竟是你想發布較高質量的視頻片段嗎。順序流式文件可以放在標準HTTP 或 FTP服務器上,易于管理,基本上與防火墻無關。不過,順序流式傳輸不適合長片段和有隨機訪問要求的視頻,如:講座、演說與演示。它也不支持現場廣播,嚴格說來,它是一種點播技術。
實時流式傳輸
實時流式傳輸指保證媒體信號帶寬與網絡連接配匹,使媒體可被實時觀看到。實時流與HTTP流式傳輸不同,他需要專用的流媒體服務器與傳輸協議。實時流式傳輸總是實時傳送,特別適合現場事件,也支持隨機訪問,用戶可快進或后退以觀看前面或后面的內容。理論上,實時流一經播放就可不停止,但實際上,可能發生周期暫停。實時流式傳輸必須配匹連接帶寬,這意味著在以56~128kbps連接時圖象質量較差。而且,由于出錯丟失的信息被忽略掉、網絡擁擠、或出現其它流量異常問題時,視頻質量會很差,有時也會斷斷續續的。
實時流式傳輸需要特定服務器,如QuickTime Streaming Server、Real Server等,而本文重點介紹的Windows Media Server,這些服務器允許你對媒體發送進行更多級別的控制,因而系統設置、管理方面比標準HTTP服務器更復雜一些。
流媒體站點的結構
流媒體的數據文件也很特別,例如ASF(Advanced Streaming Format)文件,它將媒體文件分為眾多小數據包,媒體服務器在特定的時間將用戶播放所需的數據包發送給用戶。在網絡擁擠的時候,流媒體服務器就不會發送用戶收不到的數據包,在用戶通過媒體播放器對播放進行控制,比如快進、快退和跳躍到文件中某一時間點時,媒體服務器就會發送出相關內容的數據包。流媒體服務器和用戶端的流媒體播放器之間的交流是雙向的,在用戶端文件播放結束之前,雙方的聯系是一直保持的。
能夠實現這樣的功能,就需要特定的服務器進行支撐,那么Web服務器就不能勝任了。Web服務器通常被比喻成“無狀態化”,從一般的意義上來講,Web服務器和用戶端的聯系是單向而且是不連續的。當Web服務器接收到用戶的請求信息后,它以盡可能快的速度將網頁數據“推出門外”,然后就中斷了與用戶的聯系而開始處理下一個用戶的請求,不管用戶端是否接收到完整的數據。在用戶端,Web瀏覽器接收到網頁數據,在屏幕上顯示網頁,同時也中斷了和服務器端的聯系,直到你點擊鏈接,再次向服務器發出請求為止。這種數據傳輸和接收方式在處理HTML文本和圖片等一些體積較小而且不具有時間特性的文件時,效果應該說是不錯的,但如果我們想要構建得視頻服務時就沒戲了。
那么怎么來設計一個流媒體系統呢?這就需要將Web角色和流媒體服務器角色分開來。 Web服務器用于Web頁面的訪問,這可以交給開發人員,而流媒體服務器在后臺中出現,用于管理和存儲聲音、影視文件,其結構見圖4所示。采用這種結構,開發人員可以將包含媒體播放器的插件嵌入到Web瀏覽器頁面中,而向流媒體服務器請求傳送文件,Web服務器實際上就是一個“中間人”而已,最后的數據流并不經過它。
圖3 流媒體架構圖
基于Windows Media Technologies的流媒體系統通常由運行Windows Media Encoder的計算機、運行Windows Media Services的服務器和許多運行Windows Media Player 的客戶端組成。編碼器將直播和預先錄制的音頻和視頻內容轉換為Windows Media格式。在圖4的具體方案中,用戶單擊網頁上的鏈接即可請求內容,然后 Web服務器將請求重定向到Windows Media服務器,并啟動用戶計算機上的播放器,Windows Media 服務器與播放器建立了直接連接,并開始將內容直接傳輸給用戶。
【51CTO獨家特稿,合作站點轉載請注明原文譯者和出處。】
【編輯推薦】
- windows server 2008 R2安全性能總攬
- Windows Server 2008 R2中的DirectAccess功能詳解
- Windows Server 2008 R2中托管服務帳號的方法
- 解讀Windows Server 2008 R2安全性和高可靠性