專利名稱:無線視頻點(diǎn)播系統(tǒng)、方法及avi文件解析、流化方法
技術(shù)領(lǐng)域:
本發(fā)明涉及提供信息服務(wù)的系統(tǒng)和方法,實(shí)現(xiàn)了一套無線異構(gòu)局域網(wǎng)環(huán)境下的視頻點(diǎn)播系統(tǒng),并提出若干優(yōu)化無線異構(gòu)局域網(wǎng)條件下的流媒體播放效果的方法。
背景技術(shù):
隨著計(jì)算機(jī)多媒體技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,流媒體播放技術(shù)已得到了廣泛的應(yīng)用。這項(xiàng)技術(shù)允許觀眾在線收看多媒體節(jié)目,從而可以實(shí)現(xiàn)視頻點(diǎn)播、視頻會(huì)議等一系列的功能。在用于視頻服務(wù)器的開放源代碼軟件中,RealNetworks公司的Helix Server和Apple公司的Darwin Stream Server,使用廣泛,穩(wěn)定性較高,性能優(yōu)秀,但代碼量大,結(jié)構(gòu)復(fù)雜,不適合作結(jié)構(gòu)上的改進(jìn),可擴(kuò)展性相對(duì)較差;而采用LGPL協(xié)議開放源代碼的LIVE.COMStreaming Media,提供了對(duì)多種流媒體和視頻壓縮格式的支持、對(duì)RTP/RTCP協(xié)議的支持,具有較強(qiáng)的穩(wěn)定性、實(shí)用性,封裝成庫,結(jié)構(gòu)清晰,適于在其基礎(chǔ)上搭建服務(wù)器。LIVE.COM Streaming Media同樣可用于客戶端。
另一方面,無線通信技術(shù)在近年來高速發(fā)展。手機(jī)在幾年內(nèi)得到普及,掌上電腦(包括Pocket PC和Palm)也走進(jìn)了千家萬戶。Pocket PC2003操作系統(tǒng)不支持DirectX,因此在PDA上開發(fā)播放器時(shí)DirectShow、DirectDraw、DirectSound等多媒體開發(fā)庫無法使用;Pocket PC本身提供了一套開源播放器——PocketMVP,可以用于開發(fā)。
無線局域網(wǎng)與同級(jí)別的有線網(wǎng)相比,帶寬和數(shù)據(jù)傳輸速率總要低一些,在傳輸多媒體流這樣高帶寬需求的數(shù)據(jù)時(shí)會(huì)帶來一定限制。Pocket PC的主頻和內(nèi)存都不能和臺(tái)式機(jī)相比。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于無線異構(gòu)局域網(wǎng)的視頻點(diǎn)播系統(tǒng),該系統(tǒng)將流媒體技術(shù)中的視頻點(diǎn)播與無線通信結(jié)合起來,能讓PDA通過無線網(wǎng)絡(luò)播放流媒體數(shù)據(jù),而且系統(tǒng)效率高。
為實(shí)現(xiàn)上述目的,本發(fā)明基于無線異構(gòu)局域網(wǎng)的視頻點(diǎn)播系統(tǒng),包括接入無線局域網(wǎng)的流媒體服務(wù)器和至少一個(gè)客戶端,流媒體服務(wù)器和各客戶端采用RTP、RTCP和RTSP協(xié)議通信;其中,所述流媒體服務(wù)器采用單線程并發(fā)服務(wù)器,它包括RTSP服務(wù)器和任務(wù)管理器,該任務(wù)管理器用以監(jiān)聽RTSP協(xié)議的連接端口并負(fù)責(zé)調(diào)度各路媒體流,當(dāng)流媒體服務(wù)器接到點(diǎn)播指令后,在其任務(wù)管理器中注冊(cè)所點(diǎn)播的媒體流,使任務(wù)管理器每隔一定時(shí)間調(diào)用RTSP服務(wù)器,將該媒體流的媒體數(shù)據(jù)讀入緩沖區(qū)、封裝成RTP數(shù)據(jù)報(bào)發(fā)送給客戶端;所述客戶端采用PDA,每個(gè)客戶端均包括一個(gè)任務(wù)管理器,每個(gè)客戶端通過其任務(wù)管理器的調(diào)度,完成該客戶端RTP數(shù)據(jù)報(bào)的接收和RTCP報(bào)告的收發(fā)。
上述視頻點(diǎn)播系統(tǒng)的點(diǎn)播方法,包括以下步驟流媒體服務(wù)器創(chuàng)建一個(gè)RTSP服務(wù)器的實(shí)例并初始化,流媒體服務(wù)器建立一個(gè)任務(wù)管理器實(shí)例用以監(jiān)聽RTSP協(xié)議的連接端口,并負(fù)責(zé)調(diào)度各路媒體流;客戶端通過無線局域網(wǎng)向流媒體服務(wù)器發(fā)出連接請(qǐng)求,當(dāng)接到客戶端連接請(qǐng)求后,RTSP服務(wù)器新建一個(gè)RTSPClientSession對(duì)象,RTSPClientSession對(duì)象與所述客戶端進(jìn)行RTSP協(xié)議規(guī)定的對(duì)話,并從MediaSession和MediaSubsession類對(duì)象實(shí)例中獲取流的信息,調(diào)用GroupSock類對(duì)象實(shí)例將所獲取的流的信息發(fā)送給所述客戶端。
其中,RTSPClientSession對(duì)象與所述客戶端進(jìn)行的RTSP對(duì)話至少包括流媒體服務(wù)器在接到SETUP指令后,建立FramedSource類對(duì)象實(shí)例,從文件讀入媒體數(shù)據(jù)到FramedBuffer緩沖區(qū),建立RTPSink類對(duì)象實(shí)例,將FramedBuffer緩沖區(qū)的媒體數(shù)據(jù)進(jìn)行RTP封裝并發(fā)送,建立MediaSession和MediaSubSession類對(duì)象實(shí)例,描述會(huì)話和媒體流;以及,流媒體服務(wù)器接到PLAY指令后,在其任務(wù)管理器中注冊(cè)待播放的媒體流。
上述視頻點(diǎn)播系統(tǒng)的AVI文件解析和流化方法,包括以下步驟解析AVI文件,分成音頻流和視頻流兩路;解析所述視頻流,抽取出視頻幀,封裝為RTP數(shù)據(jù)報(bào)的格式后發(fā)送到客戶端;同時(shí),解析所述音頻流,抽取出音頻塊,封裝為RTP數(shù)據(jù)報(bào)的格式后發(fā)送到客戶端。
在將視頻幀封裝為RTP數(shù)據(jù)報(bào)前,還可包括對(duì)該視頻幀進(jìn)行編碼轉(zhuǎn)換的步驟,編碼轉(zhuǎn)換的方式采用下述三種方式中的至少一種提高壓縮比例、采用解碼算法較簡(jiǎn)單的編碼方法和降低視頻分辨率。
本發(fā)明將流媒體技術(shù)中的視頻點(diǎn)播與無線通信結(jié)合起來,讓PDA能通過無線網(wǎng)絡(luò)播放流媒體數(shù)據(jù),具有廣泛的商用、軍用和民用價(jià)值。其流媒體服務(wù)器采用單線程模型,通過計(jì)時(shí)器控制,由一個(gè)線程負(fù)責(zé)包括連接客戶端、進(jìn)行RTSP會(huì)話、讀取流媒體文件、發(fā)送RTP和RTCP包等所有的工作,徹底避免了多線程間反復(fù)切換需要消耗大量系統(tǒng)資源的缺陷。
流媒體服務(wù)器是采用LIVE.COM Streaming Media流媒體軟件開發(fā)庫實(shí)現(xiàn)的,其結(jié)構(gòu)清晰,具有較強(qiáng)的穩(wěn)定性、實(shí)用性,并且支持多種流媒體和視頻壓縮格式。
流媒體服務(wù)器將視頻幀封裝為RTP數(shù)據(jù)報(bào)前,還對(duì)視頻幀進(jìn)行編碼轉(zhuǎn)換、碼率控制等優(yōu)化,來減少通過無線網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量和PDA上的解碼運(yùn)算量,從而使得在無線局域網(wǎng)帶寬和數(shù)據(jù)傳輸速率低,PDA主頻和內(nèi)存較低的情況下,在PDA上能夠還原出流暢的視頻畫面。
圖1為本發(fā)明中流媒體服務(wù)器所采用的單線程并發(fā)模型的架構(gòu)圖示;圖2為RTSP服務(wù)器的內(nèi)部結(jié)構(gòu)圖示;圖3為客戶端和RTSP服務(wù)器的RTSPClientSession進(jìn)行典型的RTSP會(huì)話的圖示;圖4為流媒體服務(wù)器對(duì)AVI格式媒體流的處理過程的圖示;圖5為播放器網(wǎng)絡(luò)端完成音頻、視頻接受和RTCP控制報(bào)告的收發(fā)工作的整體架構(gòu)圖示。
具體實(shí)施例方式
本實(shí)施例通過實(shí)現(xiàn)一套臺(tái)式PC機(jī)上的流媒體服務(wù)器,來向Pocket PC上的流媒體播放器提供視頻點(diǎn)播服務(wù)。目標(biāo)是完成基本的服務(wù)器,并對(duì)平臺(tái)擴(kuò)展,PDA在視頻采集后,可利用對(duì)稱編碼技術(shù)完成傳輸;同時(shí)允許將碼率控制、編碼轉(zhuǎn)換(Transcoding)、應(yīng)用層組播等功能添加到服務(wù)器上,并完成代理服務(wù)器。服務(wù)器和播放器之間的通信,采用基于RTP、RTCP、RTSP的通信協(xié)議;其中,RTSP協(xié)議中通過SDP協(xié)議來傳輸流媒體的格式信息。此套視頻點(diǎn)播系統(tǒng),向流媒體播放器RealPlayer兼容,即用戶可以使用普通的IBM PC兼容機(jī)上的RealPlayer與流媒體服務(wù)器通信。為此,服務(wù)器仿照Real系列產(chǎn)品之間的通信協(xié)議進(jìn)行工作。
本實(shí)施例視頻點(diǎn)播系統(tǒng)中,流媒體服務(wù)器和客戶端采用802.11b協(xié)議的無線局域網(wǎng)連接,其理論帶寬為11Mbps,覆蓋范圍要求較小,局限在幾個(gè)AP之內(nèi)。
流媒體服務(wù)器采用臺(tái)式PC機(jī),配置如下硬件配置Pentium 4 1.8GHz CPU,128 Mb SDram,IDE硬盤;操作系統(tǒng)Windows 2000或Windows XP;服務(wù)器軟件用Microsoft Visual C++6.0開發(fā)。
客戶端采用HP iPAQ Pocket PC h2210掌上電腦,配置如下硬件配置400MHz Intel XScale處理器、64Mb內(nèi)存(56Mb主存)、CF 802.11無線網(wǎng)卡;操作系統(tǒng)Microsoft Pocket PC 2003;客戶端的播放器用Microsoft Embedded Visual C++4.0開發(fā)。
下面以流化AVI文件為例,并結(jié)合附圖,介紹一下流媒體服務(wù)器的工作流程和設(shè)計(jì)實(shí)現(xiàn)。
圖1描述了本發(fā)明中流媒體視頻服務(wù)器所采用的單線程模型,通過計(jì)時(shí)器控制,由一個(gè)線程負(fù)責(zé)包括連接客戶端、進(jìn)行RTSP會(huì)話、讀取流媒體文件、發(fā)送RTP和RTCP包等工作。服務(wù)器啟動(dòng)時(shí)創(chuàng)建一個(gè)RTSP服務(wù)器的實(shí)例并初始化,建立一個(gè)任務(wù)管理器(TaskScheduler)實(shí)例用以監(jiān)聽RTSP協(xié)議的連接端口并負(fù)責(zé)調(diào)度各路媒體流。
圖2描述了RTSP服務(wù)器的內(nèi)部結(jié)構(gòu)。當(dāng)接到客戶端連接請(qǐng)求時(shí),RTSP服務(wù)器(RTSPServer)新建一個(gè)RTSPClientSession對(duì)象與客戶端進(jìn)行RTSP協(xié)議規(guī)定的對(duì)話,并從MediaSession和MediaSubsession類對(duì)象實(shí)例中獲取流的信息。網(wǎng)絡(luò)部分封裝在Groupsock類及其相關(guān)類中。
圖3描述了客戶端和RTSPClientSession進(jìn)行典型的RTSP會(huì)話的過程。流媒體服務(wù)器接到SETUP指令后建立FramedSource類對(duì)象實(shí)例用于從文件讀入媒體數(shù)據(jù),F(xiàn)ramedBuffer緩沖區(qū)以及RTPSink類對(duì)象實(shí)例用于將媒體數(shù)據(jù)進(jìn)行RTP封裝并發(fā)送;建立MediaSession和MediaSubsession類對(duì)象實(shí)例用以描述會(huì)話和媒體流。服務(wù)器接到PLAY指令后,在任務(wù)管理器(TaskScheduler)中注冊(cè)待播放的媒體流,使得TaskScheduler每隔一定時(shí)間調(diào)用MediaSubsession類的函數(shù),將文件讀入緩沖區(qū),并發(fā)送RTP數(shù)據(jù)報(bào)。
圖4描述了服務(wù)器對(duì)AVI格式媒體流的處理過程。AVI格式音頻、視頻封裝在一起,流化前由服務(wù)器通過AVIDemux類和AVIProgramStreamParser類將兩路流分開。隨后,再通過處理視頻流的AVIVideoStreamFramer、AVIVideoStreamParser和處理音頻流的AVIAudioStreamFramer、AVIAudioStreamParser等類將視頻幀和音頻塊的數(shù)據(jù)抽取出來,送往VideoRTPSink和AudioRTPSink,封裝為RTP數(shù)據(jù)報(bào)的格式后發(fā)送到客戶端。
為使服務(wù)器與RealPlayer兼容,要采用RTP和RTSP與RealOnePlayer通信,必須遵守RealNetworks公司自己的通信協(xié)議細(xì)節(jié),但細(xì)節(jié)內(nèi)容沒有公開。服務(wù)器響應(yīng)針對(duì)AVI文件的DESCRIBE指令時(shí),AVI文件頭的信息(特別是編碼方式的信息)并未直接發(fā)送到客戶端,而是加密后以“OpaqueData”形式發(fā)送至播放器。其中的加密解密算法是不公開的。服務(wù)器的具體作法是通過一個(gè)程序和Real Server模擬連接,截獲“OpaqueData”后保存為文件,供流媒體服務(wù)器使用。
解析AVI文件時(shí),采用了兩級(jí)解析。首先把AVI文件解析成兩路流,一路音頻,一路視頻;再分別解析這兩路流,分解成音頻塊和視頻幀,再分別封裝成數(shù)據(jù)報(bào)發(fā)送出去。
流化傳輸時(shí),采用RealNetworks公司系列產(chǎn)品的RTP封裝格式,對(duì)視頻幀增加8個(gè)字節(jié)的附加頭,標(biāo)記數(shù)據(jù)報(bào)在一個(gè)數(shù)據(jù)幀中的位置。
實(shí)現(xiàn)VCR操作中的快進(jìn)、快退時(shí),服務(wù)器接收到播放器通過RTSP連接連續(xù)發(fā)出的兩條指令——“PAUSE”和“PLAY”。接到“PAUSE”指令后,服務(wù)器停止RTP數(shù)據(jù)報(bào)的發(fā)送,同時(shí)停止從文件讀取媒體流;接到“PLAY”指令后,從頭開始讀取媒體流,并且根據(jù)跳躍到的位置計(jì)算需要跳過的幀數(shù)和字節(jié)數(shù),再跳至響應(yīng)位置讀取數(shù)據(jù),讀入緩沖區(qū),網(wǎng)絡(luò)部分同時(shí)也重新開始封裝并發(fā)送RTP數(shù)據(jù)報(bào)。
為了在PDA上能夠還原出流暢的視頻畫面,流媒體服務(wù)器在將視頻幀封裝為RTP數(shù)據(jù)報(bào)前,還對(duì)視頻幀進(jìn)行編碼轉(zhuǎn)換,具體可采用以下方式可以提高壓縮比例,減小與客戶端通信時(shí)的帶寬占用;或者采用解碼算法較簡(jiǎn)單的編碼方法,減輕客戶端的解碼壓力;或者針對(duì)手持設(shè)備,即根據(jù)手持設(shè)備屏幕分辨率較小的特點(diǎn),將原來分辨率較高的視頻轉(zhuǎn)換為低分辨率視頻,以節(jié)省網(wǎng)絡(luò)帶寬和解碼資源。
下面以AVI格式文件為例,并結(jié)合附圖,介紹一下播放器的實(shí)現(xiàn)細(xì)節(jié)。
播放器的網(wǎng)絡(luò)端與服務(wù)器結(jié)構(gòu)類似,采用任務(wù)管理器(TaskScheduler)機(jī)制進(jìn)行調(diào)度,完成音頻、視頻的接收和RTCP控制報(bào)告的收發(fā)工作,如圖5所示。
播放器在Pocket PC自身的開源播放器——PocketMVP基礎(chǔ)上開發(fā)。
PocketMVP本身具有細(xì)致的模塊化封裝,播放AVI格式文件采用了以下模塊PocketMVP.exe是主程序,調(diào)用各模塊,建立播放線程并完成播放功能;PlaylistEditor.exe是設(shè)置播放列表的程序;AVIStream.dll用于從中層緩沖區(qū)讀取AVI流;Divx.dll是Divx的解碼器;GetFileName.dll負(fù)責(zé)彈出對(duì)話框得到用戶請(qǐng)求播放的文件或URL;init.dll用于初始化;InputMediaBuffering.dll從文件讀取媒體流的內(nèi)容并存入緩沖區(qū);InputMediaHTTP.dll通過HTTP協(xié)議下載文件并存入緩沖區(qū);InputMediaRTSP.dll通過RTSP協(xié)議連接流媒體服務(wù)器并接受RTP流媒體數(shù)據(jù)報(bào),存入緩沖區(qū);MP12LibCE.dll是mp1、mp2的解碼器;MP3LibCE.dll是mp3的解碼器。
PocketPC工作流程是利用TaskScheduler進(jìn)行調(diào)度,從Source讀入媒體數(shù)據(jù),經(jīng)過處理后交由Sink處理。
PocketPC中從文件讀取媒體數(shù)據(jù)并存入緩沖區(qū)是一個(gè)單獨(dú)的工程,并生成了單獨(dú)的DLL文件,因此要重新建立一個(gè)從網(wǎng)絡(luò)讀取數(shù)據(jù)的緩沖區(qū)并替換掉原有的DLL文件。為此,運(yùn)用或創(chuàng)建了以下相關(guān)類MultiFramedRTPSource類,繼承自RTPSource類,成員函數(shù)networkReadHandler從網(wǎng)絡(luò)讀取RTP數(shù)據(jù)報(bào),正確驗(yàn)證、排序、組裝之后存入緩沖區(qū),再由成員函數(shù)doGetNextFrame經(jīng)過數(shù)據(jù)完整性驗(yàn)證、數(shù)據(jù)報(bào)附加頭處理后得到一個(gè)視頻幀或音頻塊;AVIAudioRTPSource類,繼承自MultiFramedRTPSource類,將從網(wǎng)絡(luò)收到的RTP音頻數(shù)據(jù)以特定格式存入緩沖區(qū),主要成員函數(shù)是processSpecialHeader;AVIVideoRTPSource類,繼承自MultiFramedRTPSource類,將從網(wǎng)絡(luò)收到的RTP視頻數(shù)據(jù)以特定格式存入緩沖區(qū),主要成員函數(shù)是processSpecialHeader;BufferPacket類,描述一塊緩沖區(qū),網(wǎng)絡(luò)上接收到的RTP數(shù)據(jù)報(bào)直接存儲(chǔ)在該緩沖區(qū)中,成員函數(shù)fillinData調(diào)用RTPInterface類的handleRead成員函數(shù)完成網(wǎng)絡(luò)讀取并保存到緩沖區(qū)的操作,成員函數(shù)use將緩沖區(qū)中的數(shù)據(jù)復(fù)制到另一個(gè)緩沖區(qū)中,以完成數(shù)據(jù)報(bào)的排序、組合;Reordering類,是客戶端中間層次的緩沖區(qū),分配塊狀緩沖區(qū),向下接收RTP數(shù)據(jù)報(bào)并排序、組裝、緩存,向上提供一個(gè)單獨(dú)、完整、經(jīng)過組裝的視頻幀或音頻塊,成員函數(shù)storePacket把收到的RTP數(shù)據(jù)報(bào)按一定的順序和位置組裝起來,緩存在一起,成員函數(shù)getNextCompletedPacket將返回已組裝好的一個(gè)視頻幀或音頻塊,若組成該幀的RTP數(shù)據(jù)報(bào)還未全部到達(dá),則會(huì)根據(jù)時(shí)間域值等待一段時(shí)間,或者返回不完整的幀。
權(quán)利要求
1.基于無線異構(gòu)局域網(wǎng)的視頻點(diǎn)播系統(tǒng),其特征在于包括接入無線局域網(wǎng)的流媒體服務(wù)器和至少一個(gè)客戶端,流媒體服務(wù)器和各客戶端采用RTP、RTCP和RTSP協(xié)議通信;其中,所述流媒體服務(wù)器采用單線程并發(fā)服務(wù)器,它包括RTSP服務(wù)器和任務(wù)管理器,該任務(wù)管理器用以監(jiān)聽RTSP協(xié)議的連接端口并負(fù)責(zé)調(diào)度各路媒體流,當(dāng)流媒體服務(wù)器接到點(diǎn)播指令后,在其任務(wù)管理器中注冊(cè)所點(diǎn)播的媒體流,使任務(wù)管理器每隔一定時(shí)間調(diào)用RTSP服務(wù)器,將該媒體流的媒體數(shù)據(jù)讀入緩沖區(qū)、封裝成RTP數(shù)據(jù)報(bào)發(fā)送給客戶端;所述客戶端采用PDA,每個(gè)客戶端均包括一個(gè)任務(wù)管理器,每個(gè)客戶端通過其任務(wù)管理器的調(diào)度,完成該客戶端RTP數(shù)據(jù)報(bào)的接收和RTCP報(bào)告的收發(fā)。
2.根據(jù)權(quán)利要求1所述的基于無線異構(gòu)局域網(wǎng)的視頻點(diǎn)播系統(tǒng),其特征在于所述流媒體服務(wù)器是采用LIVE.COM Streaming Media流媒體軟件開發(fā)庫實(shí)現(xiàn)的。
3.基于權(quán)利要求1所述視頻點(diǎn)播系統(tǒng)的點(diǎn)播方法,其特征在于包括以下步驟流媒體服務(wù)器創(chuàng)建一個(gè)RTSP服務(wù)器的實(shí)例并初始化,流媒體服務(wù)器建立一個(gè)任務(wù)管理器實(shí)例用以監(jiān)聽RTSP協(xié)議的連接端口,并負(fù)責(zé)調(diào)度各路媒體流;客戶端通過無線局域網(wǎng)向流媒體服務(wù)器發(fā)出連接請(qǐng)求,當(dāng)接到客戶端連接請(qǐng)求后,RTSP服務(wù)器新建一個(gè)RTSPClientSession對(duì)象,RTSPClientSession對(duì)象與所述客戶端進(jìn)行RTSP協(xié)議規(guī)定的對(duì)話,并從MediaSession和MediaSubsession類對(duì)象實(shí)例中獲取流的信息,調(diào)用GroupSock類對(duì)象實(shí)例將所獲取的流的信息發(fā)送給所述客戶端。
4.根據(jù)權(quán)利要求3所述的點(diǎn)播方法,其特征在于所述RTSPClientSession對(duì)象與所述客戶端進(jìn)行的RTSP對(duì)話至少包括,流媒體服務(wù)器在接到SETUP指令后,建立FramedSource類對(duì)象實(shí)例,從文件讀入媒體數(shù)據(jù)到FramedBuffer緩沖區(qū),建立RTPSink類對(duì)象實(shí)例,將FramedBuffer緩沖區(qū)的媒體數(shù)據(jù)進(jìn)行RTP封裝并發(fā)送,建立MediaSession和MediaSubSession類對(duì)象實(shí)例,描述會(huì)話和媒體流;以及,流媒體服務(wù)器接到PLAY指令后,在其任務(wù)管理器中注冊(cè)待播放的媒體流。
5.基于權(quán)利要求1所述視頻點(diǎn)播系統(tǒng)的AVI文件解析和流化方法,其特征在于包括以下步驟解析AVI文件,分成音頻流和視頻流兩路;解析所述視頻流,抽取出視頻幀,封裝為RTP數(shù)據(jù)報(bào)的格式后發(fā)送到客戶端;同時(shí),解析所述音頻流,抽取出音頻塊,封裝為RTP數(shù)據(jù)報(bào)的格式后發(fā)送到客戶端。
6.根據(jù)權(quán)利要求5所述的AVI文件解析和流化方法,其特征在于在將視頻幀封裝為RTP數(shù)據(jù)報(bào)前,還包括對(duì)該視頻幀進(jìn)行編碼轉(zhuǎn)換的步驟,編碼轉(zhuǎn)換的方式采用下述三種方式中的至少一種提高壓縮比例、采用解碼算法較簡(jiǎn)單的編碼方法和降低視頻分辨率。
全文摘要
本發(fā)明涉及基于無線異構(gòu)局域網(wǎng)的視頻點(diǎn)播系統(tǒng)及方法,該系統(tǒng)包括接入無線局域網(wǎng)的流媒體服務(wù)器和至少一個(gè)客戶端,流媒體服務(wù)器和各客戶端采用RTP、RTCP和RTSP協(xié)議通信;其中,所述流媒體服務(wù)器采用單線程并發(fā)服務(wù)器;所述客戶端采用PDA,每個(gè)客戶端均包括一個(gè)任務(wù)管理器,每個(gè)客戶端通過其任務(wù)管理器的調(diào)度,完成該客戶端RTP數(shù)據(jù)報(bào)的接收和RTCP報(bào)告的收發(fā)。本發(fā)明將流媒體技術(shù)中的視頻點(diǎn)播與無線通信結(jié)合起來,讓PDA能通過無線網(wǎng)絡(luò)播放流媒體數(shù)據(jù),具有廣泛的商用、軍用和民用價(jià)值。其流媒體服務(wù)器采用單線程模型,徹底避免了多線程間反復(fù)切換需要消耗大量系統(tǒng)資源的缺陷。
文檔編號(hào)H04N7/26GK1972439SQ20061015744
公開日2007年5月30日 申請(qǐng)日期2006年12月8日 優(yōu)先權(quán)日2006年12月8日
發(fā)明者袁春, 楊溢欣, 鐘玉琢 申請(qǐng)人:清華大學(xué)深圳研究生院