《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于IP多播視頻系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于IP多播視頻系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
摘要: 本文著重介紹了流媒技術(shù)及其底層傳輸技術(shù)——IP多播。基于校園網(wǎng)設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)可供網(wǎng)絡(luò)現(xiàn)場(chǎng)直播,、視頻點(diǎn)播等服務(wù)的視頻通信系統(tǒng),,系統(tǒng)中結(jié)合了多播技術(shù)中節(jié)約帶寬、減輕服務(wù)器負(fù)載的優(yōu)勢(shì),,并采用了Real公司RealSystem流媒體系統(tǒng),在客戶(hù)端/服務(wù)器模式下完成。
Abstract:
Key words :

本文著重介紹了流媒技術(shù)及其底層傳輸技術(shù)——IP多播,。基于校園網(wǎng)設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)可供網(wǎng)絡(luò)現(xiàn)場(chǎng)直播,、視頻點(diǎn)播等服務(wù)的視頻通信系統(tǒng),,系統(tǒng)中結(jié)合了多播技術(shù)中節(jié)約帶寬、減輕服務(wù)器負(fù)載的優(yōu)勢(shì),,并采用了Real公司RealSystem流媒體系統(tǒng),,在客戶(hù)端/服務(wù)器模式下完成,。


1 流媒體技術(shù)

所謂流媒體是指采用流式傳輸方式在Internet播放媒體文件,即將整個(gè)音頻,、視頻等連續(xù)媒體文件經(jīng)過(guò)壓縮后,,由服務(wù)器向用戶(hù)計(jì)算機(jī)連續(xù)和實(shí)時(shí)傳送。用戶(hù)只需經(jīng)過(guò)幾秒或幾十秒的啟動(dòng)延時(shí)即可進(jìn)行播放和觀看,,剩余部分將在后臺(tái)繼續(xù)下載,,邊下載邊播放。實(shí)現(xiàn)流式傳輸有兩種方法:實(shí)時(shí)流式傳輸(Real times treaming)和順序流式傳輸(Progressive streaming),。其中實(shí)時(shí)流式傳輸需要專(zhuān)用的流媒體服務(wù)器與傳輸協(xié)議(如實(shí)時(shí)傳輸協(xié)議RTP,、實(shí)時(shí)傳輸控制協(xié)議RTCP、實(shí)時(shí)流協(xié)議RTSP和媒體服務(wù)器協(xié)議MMS等)來(lái)保證媒體信號(hào)帶寬與網(wǎng)絡(luò)連接匹配,,使媒體可被實(shí)時(shí)觀看到,,特別適合用于現(xiàn)場(chǎng)直播。


目前支持流媒體技術(shù)的解決方案主要有RealNet works公司的RealSystem,,Microsoft公司的Windows MediaTechnology和Apple公司的QuickTime,。

2 多播技術(shù)

從底層傳輸模式看,實(shí)時(shí)流式傳輸支持單播,、廣播和多播,。所謂多播是指數(shù)據(jù)源將IP數(shù)據(jù)包“盡力而為”地發(fā)送到共享相同IP地址的一個(gè)主機(jī)組中,然后利用網(wǎng)絡(luò)設(shè)備進(jìn)行相應(yīng)的復(fù)制和分發(fā),,只有屬于該組的成員才能接收到該數(shù)據(jù)包,。顯然,對(duì)于網(wǎng)上視頻直播來(lái)說(shuō),,因?yàn)榇蟛糠钟脩?hù)接收的數(shù)據(jù)都是相同的,,使用多播傳輸模式比點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)包傳輸方式——單播和一點(diǎn)對(duì)所有主機(jī)的數(shù)據(jù)包傳輸方式——廣播,在節(jié)約網(wǎng)絡(luò)帶寬,、減輕服務(wù)器負(fù)載和分布式網(wǎng)絡(luò)應(yīng)用更容易實(shí)現(xiàn)等方面有著明顯優(yōu)勢(shì),。


多播采用IANAIP地址分類(lèi)中的D類(lèi)地址,即范圍為224.0.0.0~239.255.255.255,。在此基礎(chǔ)上,,CERNET還進(jìn)一步將該地址空間劃分為4個(gè)管理域:Internet范圍、CERNET主干網(wǎng),、省網(wǎng)和校園網(wǎng),,其中校園網(wǎng)的多播地址空間為239.251.192.0/18。


除此之外,,要實(shí)現(xiàn)多播至少還要:(1)在主機(jī)與路由器之間部署管理組成員關(guān)系的Internet組管理協(xié)議(IGMP),。(2)在路由器之間部署轉(zhuǎn)發(fā)數(shù)據(jù)包的多播路由協(xié)議。一般來(lái)說(shuō),,多播路由協(xié)議可以分為兩類(lèi):一種是密集模式,,如DVMRP,、PIM-DM、MOSPF等,,比較適合于網(wǎng)絡(luò)帶寬充足,、組成員分布密集的環(huán)境;一種是稀疏模式,如PIM-SM等,,比較適合于網(wǎng)絡(luò)帶寬有限,、組成員分布稀疏的情況。(3)為了有效抑制多播數(shù)據(jù)包在鏈路層的擴(kuò)散,,需要部署IGMPSnooping,,它依靠偵聽(tīng)主機(jī)與路由器之間通信的IGMP報(bào)文將同一多播組的活動(dòng)成員映射為一個(gè)VLAN,在收到多播數(shù)據(jù)包后,,僅向該多播組所對(duì)應(yīng)的VLAN成員轉(zhuǎn)發(fā),。

3 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

系統(tǒng)采用了Real公司RealSystem的流媒體系統(tǒng),結(jié)合IP多播技術(shù),,在客戶(hù)端/服務(wù)器模式下,構(gòu)建了一個(gè)可供在線直播,,視頻點(diǎn)播等服務(wù)的流媒體通信系統(tǒng)如圖1所示。由于TCP的慢啟動(dòng)特性和丟失重傳的可靠性保證,,使得它并不適合流媒體傳輸,,更不適合多播。當(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),,它在全球有很高的市場(chǎng)占有率,。它采用的是一種高性能的自適應(yīng)壓縮算法,生成獨(dú)特的RM格式文件,,可以有很高的壓縮比率,并可以適應(yīng)從56kbit/s到10Mbit/s以上帶寬的線路要求,。Real公司的流媒體系統(tǒng)目前在實(shí)時(shí)網(wǎng)絡(luò)直播領(lǐng)域無(wú)人可以替代,,有大量的實(shí)際方案可供選擇,而且可以適應(yīng)各個(gè)平臺(tái)的操作系統(tǒng),。目前可以選擇的平臺(tái)有NT,、Linux、Solaris,、UNIX,、AIX及Irix系統(tǒng)等,是目前支持平臺(tái)最多的一個(gè)系統(tǒng),,其工作原理如圖2所示,。

3.1.2 RealSystem中使用的通道和協(xié)議
在Real公司的Server端使用兩種通道與客戶(hù)端軟件Realplayer通信:一種是控制通道,,用來(lái)傳輸諸如“暫停”、“向前”等命令,,使用TCP協(xié)議,;另一個(gè)是數(shù)據(jù)通道,用來(lái)傳輸實(shí)際的媒體數(shù)據(jù),,使用UDP協(xié)議,。如圖2所示,在RealSystem中,,通信過(guò)程可分為如下兩部分,。


第一,當(dāng)編碼器需要向Real服務(wù)器端傳輸壓縮好的數(shù)據(jù)時(shí),,通常使用UDP協(xié)議與Real的服務(wù)器端通訊,。RealProducer(是Real公司的編碼工具)可以設(shè)置成使用TCP協(xié)議的方式向服務(wù)器傳輸數(shù)據(jù)。


第二,,當(dāng)用戶(hù)在瀏覽器上點(diǎn)擊一個(gè)指向媒體文件的鏈接時(shí),,Realplayer打開(kāi)一個(gè)與Real服務(wù)器的雙路連接,通過(guò)這個(gè)連接與Real服務(wù)器之間來(lái)回傳輸信息,。一旦Real服務(wù)器接受了客戶(hù)端的請(qǐng)求,,它將通過(guò)UDP協(xié)議傳輸客戶(hù)請(qǐng)求的數(shù)據(jù)。

3.2 網(wǎng)絡(luò)支持
為了可以在不同VLAN間轉(zhuǎn)發(fā)多播數(shù)據(jù)包,。因此,,必須把交換機(jī)配置成IGMP查詢(xún)路由器,并在相應(yīng)的端口啟用PIM-DM多播路由協(xié)議,,具體配置命令如下:
全局模式:ipmulticast—muting
ruterpim
在每個(gè)端口(interface)配置模式:ippim
接下來(lái),,為了降低多播流量使其只轉(zhuǎn)發(fā)收到組成員報(bào)告的IP多播組,需要開(kāi)啟IGMPSnooping,。具體配置命令如下:
全局模式:ip igmpsnoping vlan
mrouterinterface
其中:vlan—id為交換機(jī)所包含的虛網(wǎng)號(hào),,為上聯(lián)到多播路由器或交換機(jī)的端口。

3.3 視頻服務(wù)器
實(shí)時(shí)視頻服務(wù)器是由流服務(wù)器硬件平臺(tái)與運(yùn)行其上的流服務(wù)器軟件RealServer9.0共同完成,,主要功能是完成流媒體的存放,、控制和發(fā)布。RealServer支持兩種多播發(fā)布方式:反向信道多播和可伸縮多播,。也就是說(shuō),,將一個(gè)現(xiàn)場(chǎng)直播流同時(shí)傳遞給多個(gè)客戶(hù)端,而無(wú)須為每一客戶(hù)的連結(jié)發(fā)送一個(gè)單獨(dú)的數(shù)據(jù)流,,客戶(hù)端只需連結(jié)到這個(gè)數(shù)據(jù)流,,而不是連結(jié)到服務(wù)器上,就可觀看直播了,。由于反向信道多播在每一個(gè)客戶(hù)端和服務(wù)器之間還保持了一個(gè)用于統(tǒng)計(jì)和控制信息交互的控制信道,,所以還不能算是真正意義上的多播,。因此,我們僅討論可伸縮多播的配置,。在RealSystem管理器中,,單擊左邊的菜單項(xiàng)“可伸縮多播”,就可以配置可伸縮多播:首先指定可伸縮多播的加載點(diǎn)(默認(rèn)為/scalable/),,然后為要轉(zhuǎn)播的實(shí)況流創(chuàng)建一個(gè)頻道(Channe1),。在本系統(tǒng)中與頻道有關(guān)的參數(shù)主要有啟用頻道(yes)、虛擬路徑(*),、端口范圍(9000~9099),、IP地址(239.251.192.0~239.251.192.99)等。

3.4 Realplayer客戶(hù)端播放器
瀏覽器通過(guò)HTTP(超文本傳輸協(xié)議)協(xié)議向Real服務(wù)器發(fā)出請(qǐng)求,,URL請(qǐng)求中包含激活RAMGEN的參數(shù),,指向被請(qǐng)求SMIL文件的URL引發(fā)RAMGEN自動(dòng)產(chǎn)生一個(gè)包含SMIL文件位置的RAM文件,這個(gè)文件將被傳送給瀏覽器,。RealPlayer播放軟件接受瀏覽器傳遞過(guò)來(lái)的RAM文件,,然后用RTSP與RealServer進(jìn)行通信,請(qǐng)求該RAM文件中包含的SMIL文件,。根據(jù)在SMIL文件中包含的信息,,Realplayer向RealSe-rver請(qǐng)求、接受并播放媒體元素,。


客戶(hù)端播放器是提供給上網(wǎng)用戶(hù)觀看流媒體的工具軟件RealPlayer或RealOne,,主要功能是播放服務(wù)器端發(fā)布的多媒體流(如視頻、音頻,、圖像等),。在RealPlayer和RealOne中,訪問(wèn)可伸縮多播流的URL格式如下:
http://視頻服務(wù)器的IP地址:端口號(hào)/可伸縮多播的加載點(diǎn)/虛擬路徑/流文件的名稱(chēng).Sdp

3.5 基于IP多播技術(shù)的優(yōu)勢(shì)及意義
通過(guò)基于標(biāo)準(zhǔn)的網(wǎng)絡(luò)平臺(tái)的IP多點(diǎn)映射支持(即IP多播技術(shù)),,Real可只傳輸單一的數(shù)據(jù)流,,就能服務(wù)高達(dá)數(shù)千計(jì)的使用者,而播放質(zhì)量不會(huì)有任何的區(qū)別,,只須在支持MultiCast的網(wǎng)絡(luò)中簡(jiǎn)單配置,,就可較之與古典的UniCast在效率上有了明顯的提高。IP多播技術(shù)的應(yīng)用能夠降低占用帶寬,,減輕服務(wù)器負(fù)荷,并能改善傳送數(shù)據(jù)的質(zhì)量,尤其適用于大量帶寬的多媒體應(yīng)用,?;贗P多播技術(shù)的流媒體視頻系統(tǒng)的完成具有著重要的意義,優(yōu)勢(shì)表現(xiàn)如下,。


(1)在帶寬方面,,對(duì)于流媒體系統(tǒng)來(lái)說(shuō),,大量的用戶(hù)經(jīng)常要在大致相同的時(shí)間里訪問(wèn)相同的節(jié)目,顯然用IP多播來(lái)發(fā)送節(jié)目是明智的,,使得網(wǎng)絡(luò)帶寬得到更有效的利用,。
(2)在服務(wù)器負(fù)載方面來(lái)說(shuō),如果流媒體系統(tǒng)使用IP多播來(lái)發(fā)布媒體節(jié)目,,就不需要購(gòu)買(mǎi)越來(lái)越高性能的服務(wù)器以滿(mǎn)足客戶(hù)數(shù)量的增長(zhǎng),。很明顯,IP多播的主要優(yōu)勢(shì)在于通過(guò)大大減少需要轉(zhuǎn)發(fā)和處理的數(shù)據(jù)量,,降低所需服務(wù)器性能,。
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。