基於RTP協議和MPEG-4的流媒體系統分析與實現

作者:樊振萍 唐繼勇

1引言
隨着互聯網的普及和多媒體技術在互聯網上的應用,實時傳送視頻、音頻、多媒體動畫等媒體文件的技術成爲了熱點,這種傳輸技術稱爲流媒體傳輸技術。簡單地說流媒體傳輸技術是由專門的流媒體服務器向用戶連續、實時地發送聲音、影像、動畫等多媒體文件,這樣用戶可以不必等到整個文件全部下載完畢,而只需要經過幾秒鐘的啓動延時就可以了,當這些多媒體數據在客戶機上播放時,文件的剩餘部分將繼續從流媒體服務器下載。
MPEG-4標準以其高壓縮率、高質量、低傳輸率成爲目前網絡多媒體傳輸的主要格式和標準,因此研究基於MPEG- 4的實時傳輸技術對於實現流媒體傳輸技術是必要和有意義的。另外音視頻文件的實時傳輸要求較低的時延和較小的丟包率,由於TCP的重發機制帶來較大的時延,UDP本身又不提供任何Qos保證,因此需要通過實時傳輸協議(RTP)和實時傳輸控制協議(RTCP)配合使用提供數據實時傳輸和Qos服務來滿足網絡音視頻數據實時傳輸的時延和丟包要求。

綜上所述,開發基於RTP及MPEG-4的流媒體系統已成爲滿足日新月異的互聯網多媒體技術發展非常重要的一種手段。

2系統原理
2.1 MPEG-4壓縮標準
MPEG-4是1998年12月正式發佈的,旨在爲視、音頻數據的通信、存取與管理提供一個靈活的框架及一套開發的編碼工具,它用在64Kbit/s以下的低速率視音頻編碼十分有效。MPEG- 4與MPEG-1、MPEG-2相比,最重要的特徵有:(1)編碼是基於對象的。它把圖像和視頻分割成不同的對象,對每一個對象的編碼形成一個對象碼流層,該碼流中包含着對象的形狀、位置、紋理及其他方面的屬性。對一幅圖像編碼所形成的碼流由一系列對象層碼流構成,用戶可直接對“對象層”進行存取操作,這樣就使得操作、控制對象成爲可能,而傳統的編碼都是基於幀的,無法對對象進行操作。(2)MPEG-4可根據現場帶寬和誤碼率的客觀條件在時域和空域有靈活的可擴展性。時域擴展是在帶寬允許時在基本層上的增強層中增加幀率,在帶寬窄時在基本層中減少幀率;空域擴展是指對基本層中的圖像進行插值,增加或減少空間分辨率,以達到充分利用帶寬,使圖像質量更好。
爲了實現上面所說的功能,MPEG-4將音視頻碼流的語法層次分爲視頻會話VS、視頻對象VO、視頻對象層VOL和視頻對象平面VOP。一個完整的視頻序列由若干個VS構成。VO是給定場景中的一些具體對象,是用戶能夠存取和操作的實體。若干個VO構成一個VS;VOL是表明VO的空間和時間分辨率的一個類型,與空間和時間分級性密切相關。每個VO可有多層VOL;VOP是VO在某一時刻的表象,即某一幀VO,MPEG-4對每個VOP獨立進行編解碼,如圖1所示。
圖1MPEG-4語法結構

2.2RTP/RTCP協議
實時傳輸協議(Real-timeTransportProtocol,PRT)是在 Internet上處理多媒體數據流的一種網絡協議,利用它能夠在1對1(unicast,單播)或者1對多(multicast,多播)的網絡環境中實現流媒體數據的實時傳輸。RTP通常使用UDP來進行多媒體數據的傳輸,但如果需要的話可以使用TCP或者ATM等其它協議。RTP協議的設計目的是提?? 實時數據傳輸中的時間戳信息以及各數據流的同步功能。RTP協議提供序列號字段使接受方通過檢測收到的分組序列號判斷是否有分組丟失,並可重新恢復發送時的分組順序;提供時間戳字段用於重新建立原始音頻、視頻的時序,幫助接受方確定數據到達時間的一致性或變化;提供同步源標識符(SSRC)字段,在接收端爲包分組從而進行回放。RTP本身並不能爲按序傳輸數據包提供可靠的保證,也不提供流量控制和擁塞控制,這些都由實時傳輸控制協議RTCP來負責完成。通常RTCP會採用與RTP相同的分發機制,向會話中的所有成員週期性地發送控制信息,應用程序通過接收這些數據,從中獲取相關資料,從而能夠對服務質量進行控制或者對網絡狀況進行診斷。
當應用程序開始一個RTP會話時將使用兩個端口:一個給RTP,一個給RTCP。在RTP會話期間,各參與者週期性地傳送RTCP包。RTCP包中含有已發送的數據包的數量、丟失的數據包的數量等統計資料,因此,服務器可以利用這些信息動態地改變傳輸速率,甚至改變有效載荷類型。RTP和RTCP配合使用,它們能以有效的反饋和最小的開銷使傳輸效率最佳化,因而特別適合傳送網上的實時數據。

3傳輸模型
圖2是基於RTP的MPEG-4音視頻傳輸模型。MPEG4數據流分別被封裝上 RTP報頭、UDP報頭和IP報頭,然後IP數據包通過Internet向接收端發送。當發送端收到已被正常編碼壓縮的MPEG-4碼流後,按照RTP數據傳輸協議的報文格式裝入RTP報文的數據負載段,並配置RTP報文頭部的時間戳、同步信息、序列號等參數,此時數據報文已被‘流’化了;同時發送端週期性地接收RTCP包,將Qos反饋控制信息發送到視頻服務器,服務器利用這些信息動態地改變自身參數設置。接收端收到IP包後先分析RTP包頭,判斷版本、長度、負載類型等信息的有效性,更新緩衝區的RTP信息,如收到的字節數、視頻幀數、包數、序列號數等信息;按照RTP時間戳和包序列號等進行信源同步,整理RTP包順序,重構視頻幀;最後根據負載類型標識進行解碼,將數據放入緩存供解碼器解碼輸出;同時接收端根據RTP包中的信息週期性回送包含 Qos反饋控制信息的RTCP包到數據發送端以檢測發送端和接收端數據的一致性。
圖2基於RTP的MPEG-4音視頻傳輸模型

4系統實現
本系統由3個部分構成:壓縮編碼、流媒體服務器和客戶端播放軟件構成。
4.1壓縮編碼
壓縮編碼部分採用optibase公司的MPEG-4MovieMaker400實時編碼器,基於PCI視頻編碼平臺的 MPEGMovieMaker400使用BSP-15芯片Optibase視頻編碼運算法則和音頻軟件編碼,它在低碼流下提供高質量的視頻傳輸。一個 MPEGMovieMaker400編碼卡有能力去同時編碼兩路MPEG-4ISMA,而且每一路可以按3種不同的編碼流傳輸,在同一PC機中最多可插入 6塊MPEGMovieMaker400編碼卡且從12個不同的源提供36個編碼流的輸出,爲各種應用程序提供了廣闊的編碼容量和應用前景,另外只需使用板卡附帶提供的SDK就可對其進行進一步的設計和實現。在MPEG-4MovieMaker400實時編碼器中要通過RTP傳輸MPEG-4音視頻流,因此需要對MPEG-4音視頻數據進行打包,加上時間、同步等信息。由於在MPEG-4中是對每個VOP單獨進行編解碼的,因此以VOP爲單位進行打包既提高了效率又充分利用了MPEG-4的編碼特性。另外爲了不造成IP碎片,包長必須不超過該網絡路徑的MTU(MaxiumTransitUnit)。考慮到傳輸的高效性和丟包的魯棒性,取包長爲當前VOP大小與路徑MTU值的較小值,採用如下組包機制:若當前VOP能放入單個RTP包,就把此VOP單獨放入一個RTP包中;若放不下,則把VOP分段,放入多個RTP包,此時須把VOP頭部信息複製到每個RTP包,以去除包間的相關性,達到丟包的魯棒性;爲減小包數,降低開銷,一包中能放入多少宏塊就儘可能多地放入多少宏塊,但即使最後一個包中仍有剩餘空間,也不能把另一VOP中的宏塊放入此包中。
RTP包封裝MPEG-4數據的算法描述如下:
While(MPEG-4數據流結束前)
{If(發現下一個VOP起始碼)
{If(當前分段長度≤去除頭部字段長度的路徑MTU值)
{把此段數據打入RTP包}
else
{把儘可能多的宏塊打入RTP包}
}
else
{對剩餘數據打包}

另外,只要使用插件,目前MPEGMovieMaker400能夠傳輸到一般播放器中如:QuickTime,RealOne以及 WindowsMediaPlayers,因此只需客戶端安裝optibase提供的專門的MPEGMovieMaker400插件,就可以使用多種主流播放器觀看本流媒體系統提供的流媒體文件了。

4.2流媒體服務器
DARWIN流媒體服務器是Apple公司向外界提供的一個開放源代碼的流媒體服務系統軟件,用戶可以對其進行功能上的修改和擴充,它是在QuickTimeStreamingServer基礎上簡化而來的,但具有 QuickTimeStreamingServer的主要功能。DARWIN流媒體服務器的整個傳輸過程爲:當服務器收到RTSP請求,它首先產生 RTSP請求對象,然後調用特定的功能模塊;對於單播服務,客戶端向服務器請求視頻內容是通過RTSP協議,服務器通過RTSP協議的應答信息將請求的內容以流會話(streamingsession)的形式描述,內容包括數據流包括多少個流、媒體類型和編解碼格式。一個流會話由一個或多個數據流組成,如視頻流和音頻流等。實際的數據流通過RTP協議傳遞到客戶端。更爲重要的是,系統提供了基於Java語言的應用程序開發接口,利用該接口可以方便地開發客戶端播放程序,而不必使用系統提供的QuickTimePlayer播放器,減輕了客戶端對系統的依賴性,讓開發人員把Java語言和QucitTime 的優勢結合起來,開發出功能強大的多媒體處理程序。
另外流媒體信息的上載、查詢等,可採用SQLServer技術的客戶/服務器系統數據庫結構,數據存放在服務器上,客戶端界面作爲軟件系統的另一部分存在於客戶端桌面計算機上,完成顯示和應用邏輯。

5結束語
系統基於optibase公司的MPEG-4MovieMaker400實時編碼器和DARWIN流媒體服務器,充分利用帶寬而又不引起網絡阻塞,具有時延小、丟包率低、傳輸高效的特點,可廣泛應用在遠程教育、電子商務、娛樂、科研等各個領域。但由於MPEG-4MovieMaker400實時編碼器推出的時間較短,對於它的開發和應用仍有許多值得探索的地方。


參考文獻
[1]鍾玉琢,王琪,賀玉文;基於對象的多媒體數據壓縮編碼國際標準-MPEG4及其校驗模型[M];北京科學出版社,2000,10:433-435
[2]田毅柯,盧朝陽,高西全;Mpeg4視頻標準及其算法[J];現代電子技術,2002,1:38-41
[3] SrideviPalacharla,AhmedKarmouch,SamyA.Mahmoud; DesignandImplementationofaReal-timeMultimediaPresentationSystemusingRTP.IEEElectonices& CommunicationsEngineering[J];1997,8:376-380
[4]RFC1889;RTP-ATransportProtocolforReal-timeApplications[S]
[5]RFC18906;RTPProfileforAudioandVideoconferenceswithMinimalControl[S]
[6]RFC2038;RTPPayloadFormatforMPEG-4[S]
[7]ScottKeagy;語音與數據集成網絡[M];北京:電子工業出版社,2002,1
[8]樑振軍;計算機網絡通信與協議[M];北京:石油工業出版社,1990,12
[9]李向陽,卞得森;流媒體及其應用技術[J];現代電視技術,2002,4:18-27
[10]DARWIN[EB/OL];http://developer.apple.com/Darwin/.2004
[11]MPEG4MovieMaker400[EB/OL];http://www.optibase.com/html/products/MPE
G_Encoding-_Decoding_Boards/MPEG-2_ENCODING_BOARDS/MPEG_MovieMaker_400.html.2004

樊振萍(1980-),女,內蒙古烏海人,碩士研究生,主要研究方向爲網絡流媒體。
唐繼勇(1965-),男,重慶人,高級工程師,碩士生導師,主要研究方向爲模式識別與智能系統。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章