本文著重介紹了流媒技術(shù)及其底層傳輸技術(shù)——IP多播?;谛@網(wǎng)設(shè)計并實現(xiàn)了一個可供網(wǎng)絡(luò)現(xiàn)場直播、視頻點播等服務(wù)的視頻通信系統(tǒng),系統(tǒng)中結(jié)合了多播技術(shù)中節(jié)約帶寬、減輕服務(wù)器負載的優(yōu)勢,并采用了Real公司RealSystem流媒體系統(tǒng),在客戶端/服務(wù)器模式下完成。
1 流媒體技術(shù)
所謂流媒體是指采用流式傳輸方式在Internet播放媒體文件,即將整個音頻、視頻等連續(xù)媒體文件經(jīng)過壓縮后,由服務(wù)器向用戶計算機連續(xù)和實時傳送。用戶只需經(jīng)過幾秒或幾十秒的啟動延時即可進行播放和觀看,剩余部分將在后臺繼續(xù)下載,邊下載邊播放。實現(xiàn)流式傳輸有兩種方法:實時流式傳輸(Real times treaming)和順序流式傳輸(Progressive streaming)。其中實時流式傳輸需要專用的流媒體服務(wù)器與傳輸協(xié)議(如實時傳輸協(xié)議RTP、實時傳輸控制協(xié)議RTCP、實時流協(xié)議RTSP和媒體服務(wù)器協(xié)議MMS等)來保證媒體信號帶寬與網(wǎng)絡(luò)連接匹配,使媒體可被實時觀看到,特別適合用于現(xiàn)場直播。
目前支持流媒體技術(shù)的解決方案主要有RealNet works公司的RealSystem,Microsoft公司的Windows MediaTechnology和Apple公司的QuickTime。
2 多播技術(shù)
從底層傳輸模式看,實時流式傳輸支持單播、廣播和多播。所謂多播是指數(shù)據(jù)源將IP數(shù)據(jù)包“盡力而為”地發(fā)送到共享相同IP地址的一個主機組中,然后利用網(wǎng)絡(luò)設(shè)備進行相應(yīng)的復(fù)制和分發(fā),只有屬于該組的成員才能接收到該數(shù)據(jù)包。顯然,對于網(wǎng)上視頻直播來說,因為大部分用戶接收的數(shù)據(jù)都是相同的,使用多播傳輸模式比點對點的數(shù)據(jù)包傳輸方式——單播和一點對所有主機的數(shù)據(jù)包傳輸方式——廣播,在節(jié)約網(wǎng)絡(luò)帶寬、減輕服務(wù)器負載和分布式網(wǎng)絡(luò)應(yīng)用更容易實現(xiàn)等方面有著明顯優(yōu)勢。
多播采用IANAIP地址分類中的D類地址,即范圍為224.0.0.0~239.255.255.255。在此基礎(chǔ)上,CERNET還進一步將該地址空間劃分為4個管理域:Internet范圍、CERNET主干網(wǎng)、省網(wǎng)和校園網(wǎng),其中校園網(wǎng)的多播地址空間為239.251.192.0/18。
除此之外,要實現(xiàn)多播至少還要:(1)在主機與路由器之間部署管理組成員關(guān)系的Internet組管理協(xié)議(IGMP)。(2)在路由器之間部署轉(zhuǎn)發(fā)數(shù)據(jù)包的多播路由協(xié)議。一般來說,多播路由協(xié)議可以分為兩類:一種是密集模式,如DVMRP、PIM-DM、MOSPF等,比較適合于網(wǎng)絡(luò)帶寬充足、組成員分布密集的環(huán)境;一種是稀疏模式,如PIM-SM等,比較適合于網(wǎng)絡(luò)帶寬有限、組成員分布稀疏的情況。(3)為了有效抑制多播數(shù)據(jù)包在鏈路層的擴散,需要部署IGMPSnooping,它依靠偵聽主機與路由器之間通信的IGMP報文將同一多播組的活動成員映射為一個VLAN,在收到多播數(shù)據(jù)包后,僅向該多播組所對應(yīng)的VLAN成員轉(zhuǎn)發(fā)。
3 系統(tǒng)的設(shè)計與實現(xiàn)
系統(tǒng)采用了Real公司RealSystem的流媒體系統(tǒng),結(jié)合IP多播技術(shù),在客戶端/服務(wù)器模式下,構(gòu)建了一個可供在線直播,視頻點播等服務(wù)的流媒體通信系統(tǒng)如圖1所示。由于TCP的慢啟動特性和丟失重傳的可靠性保證,使得它并不適合流媒體傳輸,更不適合多播。當(dāng)前大多數(shù)研究均是基于UDP的Multicast,而用RTP/RTCP作為信息反饋的框架。因此IP多播(IPMulticast)成為了最好的解決方法。
3.1 RealSystem流媒體系統(tǒng)
3.1.1 RealSystem的構(gòu)成
Real公司的RealSystem流媒體系統(tǒng)是一種性能非常優(yōu)秀和非常穩(wěn)定的系統(tǒng),它在全球有很高的市場占有率。它采用的是一種高性能的自適應(yīng)壓縮算法,生成獨特的RM格式文件,可以有很高的壓縮比率,并可以適應(yīng)從56kbit/s到10Mbit/s以上帶寬的線路要求。Real公司的流媒體系統(tǒng)目前在實時網(wǎng)絡(luò)直播領(lǐng)域無人可以替代,有大量的實際方案可供選擇,而且可以適應(yīng)各個平臺的操作系統(tǒng)。目前可以選擇的平臺有NT、Linux、Solaris、UNIX、AIX及Irix系統(tǒng)等,是目前支持平臺最多的一個系統(tǒng),其工作原理如圖2所示。
3.1.2 RealSystem中使用的通道和協(xié)議
在Real公司的Server端使用兩種通道與客戶端軟件Realplayer通信:一種是控制通道,用來傳輸諸如“暫停”、“向前”等命令,使用TCP協(xié)議;另一個是數(shù)據(jù)通道,用來傳輸實際的媒體數(shù)據(jù),使用UDP協(xié)議。如圖2所示,在RealSystem中,通信過程可分為如下兩部分。
第一,當(dāng)編碼器需要向Real服務(wù)器端傳輸壓縮好的數(shù)據(jù)時,通常使用UDP協(xié)議與Real的服務(wù)器端通訊。RealProducer(是Real公司的編碼工具)可以設(shè)置成使用TCP協(xié)議的方式向服務(wù)器傳輸數(shù)據(jù)。
第二,當(dāng)用戶在瀏覽器上點擊一個指向媒體文件的鏈接時,Realplayer打開一個與Real服務(wù)器的雙路連接,通過這個連接與Real服務(wù)器之間來回傳輸信息。一旦Real服務(wù)器接受了客戶端的請求,它將通過UDP協(xié)議傳輸客戶請求的數(shù)據(jù)。
3.2 網(wǎng)絡(luò)支持
為了可以在不同VLAN間轉(zhuǎn)發(fā)多播數(shù)據(jù)包。因此,必須把交換機配置成IGMP查詢路由器,并在相應(yīng)的端口啟用PIM-DM多播路由協(xié)議,具體配置命令如下:
全局模式:ipmulticast—muting
ruterpim
在每個端口(interface)配置模式:ippim
接下來,為了降低多播流量使其只轉(zhuǎn)發(fā)收到組成員報告的IP多播組,需要開啟IGMPSnooping。具體配置命令如下:
全局模式:ip igmpsnoping vlan
mrouterinterface
其中:vlan—id為交換機所包含的虛網(wǎng)號,為上聯(lián)到多播路由器或交換機的端口。
3.3 視頻服務(wù)器
實時視頻服務(wù)器是由流服務(wù)器硬件平臺與運行其上的流服務(wù)器軟件RealServer9.0共同完成,主要功能是完成流媒體的存放、控制和發(fā)布。RealServer支持兩種多播發(fā)布方式:反向信道多播和可伸縮多播。也就是說,將一個現(xiàn)場直播流同時傳遞給多個客戶端,而無須為每一客戶的連結(jié)發(fā)送一個單獨的數(shù)據(jù)流,客戶端只需連結(jié)到這個數(shù)據(jù)流,而不是連結(jié)到服務(wù)器上,就可觀看直播了。由于反向信道多播在每一個客戶端和服務(wù)器之間還保持了一個用于統(tǒng)計和控制信息交互的控制信道,所以還不能算是真正意義上的多播。因此,我們僅討論可伸縮多播的配置。在RealSystem管理器中,單擊左邊的菜單項“可伸縮多播”,就可以配置可伸縮多播:首先指定可伸縮多播的加載點(默認(rèn)為/scalable/),然后為要轉(zhuǎn)播的實況流創(chuàng)建一個頻道(Channe1)。在本系統(tǒng)中與頻道有關(guān)的參數(shù)主要有啟用頻道(yes)、虛擬路徑(*)、端口范圍(9000~9099)、IP地址(239.251.192.0~239.251.192.99)等。
3.4 Realplayer客戶端播放器
瀏覽器通過HTTP(超文本傳輸協(xié)議)協(xié)議向Real服務(wù)器發(fā)出請求,URL請求中包含激活RAMGEN的參數(shù),指向被請求SMIL文件的URL引發(fā)RAMGEN自動產(chǎn)生一個包含SMIL文件位置的RAM文件,這個文件將被傳送給瀏覽器。RealPlayer播放軟件接受瀏覽器傳遞過來的RAM文件,然后用RTSP與RealServer進行通信,請求該RAM文件中包含的SMIL文件。根據(jù)在SMIL文件中包含的信息,Realplayer向RealSe-rver請求、接受并播放媒體元素。
客戶端播放器是提供給上網(wǎng)用戶觀看流媒體的工具軟件RealPlayer或RealOne,主要功能是播放服務(wù)器端發(fā)布的多媒體流(如視頻、音頻、圖像等)。在RealPlayer和RealOne中,訪問可伸縮多播流的URL格式如下:
http://視頻服務(wù)器的IP地址:端口號/可伸縮多播的加載點/虛擬路徑/流文件的名稱.Sdp
3.5 基于IP多播技術(shù)的優(yōu)勢及意義
通過基于標(biāo)準(zhǔn)的網(wǎng)絡(luò)平臺的IP多點映射支持(即IP多播技術(shù)),Real可只傳輸單一的數(shù)據(jù)流,就能服務(wù)高達數(shù)千計的使用者,而播放質(zhì)量不會有任何的區(qū)別,只須在支持MultiCast的網(wǎng)絡(luò)中簡單配置,就可較之與古典的UniCast在效率上有了明顯的提高。IP多播技術(shù)的應(yīng)用能夠降低占用帶寬,減輕服務(wù)器負荷,并能改善傳送數(shù)據(jù)的質(zhì)量,尤其適用于大量帶寬的多媒體應(yīng)用?;贗P多播技術(shù)的流媒體視頻系統(tǒng)的完成具有著重要的意義,優(yōu)勢表現(xiàn)如下。
(1)在帶寬方面,對于流媒體系統(tǒng)來說,大量的用戶經(jīng)常要在大致相同的時間里訪問相同的節(jié)目,顯然用IP多播來發(fā)送節(jié)目是明智的,使得網(wǎng)絡(luò)帶寬得到更有效的利用。
(2)在服務(wù)器負載方面來說,如果流媒體系統(tǒng)使用IP多播來發(fā)布媒體節(jié)目,就不需要購買越來越高性能的服務(wù)器以滿足客戶數(shù)量的增長。很明顯,IP多播的主要優(yōu)勢在于通過大大減少需要轉(zhuǎn)發(fā)和處理的數(shù)據(jù)量,降低所需服務(wù)器性能。