摘 要: 隨著多媒體通信技術(shù)的不斷發(fā)展,,移動學(xué)習(xí)(M-Learning)在現(xiàn)代遠程教育中占據(jù)越來越重要的地位。針對流媒體服務(wù)器的傳輸系統(tǒng),,分析了流媒體傳輸協(xié)議,、RTP承載H.264壓縮視頻數(shù)據(jù)的包格式和組包策略,移植并搭建了一種基于Live555視頻點播的移動學(xué)習(xí)平臺,。轉(zhuǎn)換現(xiàn)有教學(xué)資源的視頻格式,,并部署到該平臺中,,可以滿足學(xué)習(xí)愛好者對移動學(xué)習(xí)的迫切需求。
關(guān)鍵詞: 移動學(xué)習(xí);流媒體,;H.264;實時流協(xié)議
建設(shè)浙江開放大學(xué),,是要把終身學(xué)習(xí)數(shù)字化公共服務(wù)平臺建設(shè)成為統(tǒng)一架構(gòu),、整體部署、多功能,、開放式和工具型的信息平臺,,并構(gòu)建信息系統(tǒng)運行、開發(fā),、使用和管理的良好環(huán)境,,為各類學(xué)習(xí)者提供方便、靈活,、個性化的學(xué)習(xí)環(huán)境,;為全面推進繼續(xù)教育和終身教育體系建設(shè),加快建設(shè)人人皆學(xué),、處處可學(xué),、時時能學(xué)的學(xué)習(xí)型社會提供有效的平臺技術(shù)支撐。
隨著網(wǎng)絡(luò)技術(shù)與通信技術(shù)的迅速發(fā)展,,移動數(shù)字設(shè)備(如智能手機,,平板電腦等)具備了較強的多媒體處理能力,擁有高分辨率,、高色彩數(shù)的顯示屏,,支持音視頻的播放及各種娛樂,、辦公、學(xué)習(xí)等應(yīng)用軟件擴展功能,,同時還可通過移動通信網(wǎng)絡(luò)實現(xiàn)無線網(wǎng)絡(luò)接入,。而終身學(xué)習(xí)平臺如果僅僅依靠臺式電腦和電視作傳播媒介正面臨極大的局限性,已無法滿足廣大學(xué)習(xí)者對“人人皆學(xué),、處處可學(xué),、時時能學(xué)”的需求。
針對個性化學(xué)習(xí)的需求,,移動學(xué)習(xí)應(yīng)運而生,。移動學(xué)習(xí)是指利用無線移動通信網(wǎng)絡(luò)技術(shù)以及無線移動通信設(shè)備(如移動電話、個人數(shù)字助理PDA,、Pocket PC等)獲取教育信息,、教育資源和教育服務(wù)的一種新型學(xué)習(xí)形式[1]。學(xué)習(xí)者只要擁有智能終端和無線網(wǎng)絡(luò)就能進入學(xué)習(xí)環(huán)境,,充分體現(xiàn)學(xué)習(xí)的便捷性,、教學(xué)個性化、交互豐富性等特點,。它的出現(xiàn)不僅給人們帶來觀念的轉(zhuǎn)變,,還會改變傳統(tǒng)的學(xué)習(xí)模式,教材將由紙質(zhì)書本向電子文檔,、教學(xué)視頻轉(zhuǎn)變,,學(xué)習(xí)場地也由教室向各個能連接網(wǎng)絡(luò)的場所延伸。移動學(xué)習(xí)流媒體服務(wù)器正是在這背景下的技術(shù)產(chǎn)物,,讓學(xué)習(xí)者通過智能終端網(wǎng)絡(luò)接入,,進行教學(xué)視頻資源的點播學(xué)習(xí)?;诖?,本文移植并搭建了基于Live555的開源視頻點播系統(tǒng)。由于Live555良好的設(shè)計非常容易擴展對其他格式的支持,,能快速,、有效地搭建流媒體服務(wù)器服務(wù)于移動學(xué)習(xí)平臺。該系統(tǒng)使遠程教育的接入途徑更多,、覆蓋面更廣,、提供了更便捷的學(xué)習(xí)方法,以吸引更多的學(xué)習(xí)愛好者,,激發(fā)他們的學(xué)習(xí)欲望,。
1 流媒體服務(wù)器傳輸系統(tǒng)
流媒體服務(wù)器與移動終端是通過RTSP(Real Time Streaming Protocol)建立連接,通過RTP(Real Time Protocol)網(wǎng)絡(luò)傳輸協(xié)議將多媒體數(shù)據(jù)封裝后發(fā)送到網(wǎng)絡(luò),并用RTCP(Real Time Control Protocol)協(xié)議進行QoS控制,。主要的流媒體協(xié)議棧如圖1所示,。
客戶端首先向服務(wù)器發(fā)送包含了點播文件的URL(Uniform Resource Locator),連接服務(wù)器端的RTSP端口,,建立RTSP連接,。具體交互過程如下:
?。?)客戶端發(fā)送Option消息請求,,服務(wù)器端響應(yīng)所支持的所有交互的方法信息。
?。?)客戶端發(fā)送Describe請求(主要包含流媒體名字,、解碼器類型、視頻分辨率,、解碼能力等描述),,服務(wù)器對Describe請求作出響應(yīng),發(fā)送必要的媒體參數(shù)(即SDP文件,,包括媒體名,、幀速率、編碼類型,、傳輸協(xié)議等),。響應(yīng)成功后會話進入INIT狀態(tài)。
?。?)客戶端發(fā)送Setup請求,,其中包括協(xié)議集和端口號(或者是端口號的一個范圍)。服務(wù)器從中選擇一個協(xié)議和端口,,然后作出應(yīng)答,。啟動成功后會話進入READY態(tài)。
?。?)客戶端發(fā)送Play請求,,請求消息主要是播放媒體的起始時間。服務(wù)器啟動RTP包發(fā)送線程并發(fā)送多媒體數(shù)據(jù),。此時,,會話進入PLAYING態(tài)。
?。?)在播放過程中,,客戶端可隨時發(fā)出Teardown請求關(guān)閉會話,服務(wù)器端響應(yīng)后關(guān)閉連接,,停止傳輸,。
1.2 多媒體數(shù)據(jù)傳輸
RTP協(xié)議是IETF在1996年提出的、適用于實時數(shù)據(jù)傳輸?shù)男滦蛥f(xié)議,由實時傳輸協(xié)議RTP和實時傳輸控制協(xié)議RTCP兩部分組成,。RTP為用戶提供連續(xù)媒體數(shù)據(jù)的實時傳輸服務(wù),,主要承載在UDP上,并不直接保證傳輸?shù)膶崟r性,,而依賴底層網(wǎng)絡(luò)提供的QoS服務(wù)來真正達到實時性的要求,。而RTCP協(xié)議是控制部分,用于實時監(jiān)控數(shù)據(jù)傳輸質(zhì)量,,為系統(tǒng)提供擁塞控制和流控制,。在RTP會話期間,各參與者會周期性地傳送包含數(shù)據(jù)包已發(fā)送的數(shù)量,、丟失的數(shù)量等統(tǒng)計信息的RTCP包,。
在流媒體應(yīng)用場合,流媒體服務(wù)器一方面會周期性地產(chǎn)生發(fā)送端報告,,該RTCP數(shù)據(jù)包包含不同媒體流之間的同步信息以及已經(jīng)發(fā)送的數(shù)據(jù)包和字節(jié)的計數(shù),,接收端可以根據(jù)這些信息估算出實際的數(shù)據(jù)傳輸速率;另一方面,,接收端也會向服務(wù)器發(fā)送接收端報告,,該RTCP數(shù)據(jù)包含有已接收數(shù)據(jù)報的最大序列號、丟失的數(shù)據(jù)報數(shù)目,、延時抖動和時間戳等信息,。服務(wù)器根據(jù)這些信息可以估算出往返時延,并且根據(jù)這些信息調(diào)整發(fā)送速率,,以改善網(wǎng)絡(luò)擁塞,,或者根據(jù)網(wǎng)絡(luò)狀況平滑地調(diào)整服務(wù)質(zhì)量[3]。
H.264視頻編解碼是兩大國際標準組織ITU-T視頻編碼專家組VCEG(Video Coding Experts Group)和ISO/IEC運動圖像專家組MPEG(Moving Picture Experts Group)共同制定的視頻編碼標準,。H.264最大的優(yōu)勢是具有很高的數(shù)據(jù)壓縮比率,,在同等圖像質(zhì)量的條件下,H.264的壓縮比是MPEG-2的2倍以上,,是MPEG-4的1.5~2倍,。良好的壓縮技術(shù)將大大節(jié)省用戶的下載時間和數(shù)據(jù)流量,同時還擁有高質(zhì)量流暢的圖像,。經(jīng)過H.264壓縮的視頻數(shù)據(jù),,特別適合在低延時模式下的實時通信應(yīng)用(如視頻會議)的場合和沒有延時的視頻存儲或視頻流服務(wù)器,也適用在高誤碼率傳輸?shù)臒o線網(wǎng)絡(luò)中傳輸視頻數(shù)據(jù),。當(dāng)前所有的視頻應(yīng)用都可以通過H.264獲得高質(zhì)量地實現(xiàn),,例如數(shù)字電視廣播、在線視頻的存儲和點播,、3G視頻電話等,。為了配合3G網(wǎng)絡(luò)的高傳輸速度,,開發(fā)的移動設(shè)備流媒體的視頻編碼格式3GP/MP4,就是采用了H.264視頻壓縮標準,。
H.264定義了視頻編碼層VCL(Video Coding Layer)以及網(wǎng)絡(luò)提取層NAL(Network Abstraction Layer),,以便能夠適應(yīng)不同的網(wǎng)絡(luò)結(jié)構(gòu)。VCL中包括VCL編碼器與VCL解碼器,,其主要功能是實現(xiàn)視頻數(shù)據(jù)的壓縮編碼和解碼,;NAL則用于為VCL提供一個與網(wǎng)絡(luò)無關(guān)的統(tǒng)一接口,負責(zé)對VCL處理后的視頻數(shù)據(jù)進行封裝(經(jīng)RTP,、UDP,、IP協(xié)議逐層封裝)后發(fā)送到網(wǎng)絡(luò)。RTP承載H.264視頻數(shù)據(jù)的傳輸格式如圖3所示,,可分為兩部分:RTP固定包頭和RTP載荷H.264視頻流,。RTP固定包頭為RTCP進行相應(yīng)監(jiān)測和控制提供了基礎(chǔ),,各字段含義如下:V為版本號,,P表示包是否有堵塞數(shù)據(jù),X表示是否含有擴展頭,,M表示保留字段可由用戶決定,,PT表示媒體類型。
組包格式的后半部分是RTP承載H.264視頻流數(shù)據(jù),。組包格式載荷第一字節(jié)的各字段含義如下:
F:1 bit,,默認值為0,當(dāng)網(wǎng)絡(luò)檢測到NAL單元中存在比特錯誤時可將其置1,。
NRI:2 bit,,為00表示NAL單元的內(nèi)容不用于重建幀間預(yù)測的參考圖像;非00則相反,。
TYPE:5 bit,,指示NAL單元載荷類型。接收端通過判斷RTP載荷類型字節(jié)來辨識三類不同的載荷結(jié)構(gòu):單個NAL單元分組,、聚合分組,、分片組。
流媒體服務(wù)器在RTP組包設(shè)計需考慮以下幾點:
?。?)根據(jù)IP層MTU的大小,,對大尺寸的NAL單元進行分割,可以分別在兩個層次上進行分割:視頻編碼層VCL上的分割和網(wǎng)絡(luò)提取層NAL上的分割,。
?。?)一些H.264的NAL單元的大小,如SEI NAL單元,、參數(shù)集等都非常小,,有些只有幾個字節(jié),,可以將多個這類NAL單元聚合在一個RTP分組中,以減小包頭(RTP/UDP/IP)開銷,。
?。?)一般的NAL單元封裝進一個包中,即RTP負載中只包含一個NAL單元,,NAL頭部兼作RTP頭部,。
2 Live555編譯及資源部署
Live555是一個開源、免費,、跨平臺的視頻和音頻流方案,,實現(xiàn)了對標準流媒體傳輸協(xié)議如RTP/RTCP、RTSP,、SIP等的支持,,實現(xiàn)了對多種音視頻編碼格式的音視頻數(shù)據(jù)的流化、接收和處理等支持,,包括MPEG,、H.264、DV,、JPEG視頻和多種音頻編碼,。下面介紹live555在win7環(huán)境下Microsoft Visual Studio 10.0的編譯過程。首先從 http://live555.com/liveMedia/public/live555-latest.tar.gz下載live555工程,,利用genWindowsMakefiles.cmd可生成編譯器可用的Makefile文件,。
(1)修改live\win32config文件中TOOLS32=E:\Program Files\Microsoft Visual Studio 10.0\VC為系統(tǒng)VS2010安裝路徑,,LINK_OPTS_0=$(linkdebug)msvcrt.lib,。
(2)新增Makefile設(shè)定,,修改live\groupsock\Makefile.head文件中INCLUDES=-Iinclude -I../UsageEnvironment/include-DNO_STRSTREAM,。
(3)在命令行運行l(wèi)ive\genWindowsMakefiles.cmd,,相應(yīng)文件夾下會生成VS能夠編譯的*.mak文件,,如liveMedia.mak、mediaServer.mak等,。
?。?)為方便編譯可新建live\complie.bat批處理腳本,編輯內(nèi)容如下:
call "E:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"
…
cd../mediaServer
nmake /B -f mediaServer.mak
?。?) 執(zhí)行complie.bat腳本編譯工程,,編譯完成后會在相應(yīng)文件下生成obj文件、可執(zhí)行文件和lib庫,,包括libBasicUsageEnvironment.lib,、libgroupsock.lib,、libUsage Environment. lib、libliveMedia.lib,,其中l(wèi)ive555MediaServer.exe即為流媒體服務(wù)器運行軟件,。
由于浙江電大在線學(xué)習(xí)平臺使用的視頻資源后綴都是asf,屬于Windows Media格式,,主要適用于PC機上點播播放,。為此,考慮到網(wǎng)絡(luò)傳輸帶寬和智能終端的解碼支持,,需要將asf文件格式轉(zhuǎn)換為適合流媒體傳輸?shù)囊曨l壓縮標準H.264格式,。可以使用Media Codec轉(zhuǎn)換工具來實現(xiàn),,將轉(zhuǎn)換后的文件放于live555MediaServer.exe目錄下,,客戶端即可通過RTSP URL訪問到流媒體服務(wù)器下的教學(xué)資源。
基于Live555的流媒體服務(wù)器可以迅速而有效地部署到移動學(xué)習(xí)平臺,,作為數(shù)字化學(xué)習(xí)的延伸,。通過格式處理后可重用浙江電大原有的教學(xué)視頻資源,可滿足廣大學(xué)習(xí)愛好者對移動學(xué)習(xí)的需求,。下一步的工作是擴展基于Live555的流媒體服務(wù)器的用戶登錄管理,、訪問權(quán)限控制,、資源文件管理等功能,,進一步完善移動學(xué)習(xí)平臺的穩(wěn)定性和功能完備性。
參考文獻
[1] 葉成林.移動學(xué)習(xí)研究綜述[J].電化教育研究,,2004(3):12-18.
[2] 陳國陽.基于RTSP/RTP的嵌入式流媒體服務(wù)器設(shè)計[J].科技情報開發(fā)與經(jīng)濟,,2007,17(34):226-227.
[3] 樊珊.基于RTP的H.264視頻傳輸技術(shù)的研究[D].濟南:山東大學(xué),,2008.