<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于網(wǎng)絡(luò)的多通道超寬視頻系統(tǒng)的研究

          基于網(wǎng)絡(luò)的多通道超寬視頻系統(tǒng)的研究

          作者: 時(shí)間:2007-08-31 來源:網(wǎng)絡(luò) 收藏
          引言

            近年來隨著數(shù)字壓縮技術(shù)、計(jì)算機(jī)及技術(shù)不斷成熟和發(fā)展,人們對(duì)視頻和有了更多的需求。現(xiàn)在的數(shù)字視頻顯示畫面一般太小,無法適合眾多觀眾的觀看,而多就是一種從實(shí)時(shí)切割輸出、同步播放顯示的網(wǎng)絡(luò)的不同PC間同步播放多媒體文件的技術(shù)體系,是使用一組單的顯示系統(tǒng)橫向拼接起來的多比例的特殊顯示系統(tǒng)。它的拼接數(shù)目可以自由選擇。本系統(tǒng)的多通道播放控制軟件平臺(tái)是在XP操作系統(tǒng)下VC++.net的編譯環(huán)境中調(diào)試通過的。下面闡述其實(shí)現(xiàn)過程和方法。

          系統(tǒng)方案

            本系統(tǒng)的控制方式采用了如圖1所示的星型總線拓?fù)浣Y(jié)構(gòu),它不僅可以方便地進(jìn)行多臺(tái)PC的集中控制,而且還可方便地進(jìn)行數(shù)據(jù)的傳輸及通過局域網(wǎng)連接進(jìn)行控制,更好地實(shí)現(xiàn)了用戶的一些特殊要求,例如結(jié)合Windows的其他軟件實(shí)現(xiàn)對(duì)多臺(tái)客戶計(jì)算機(jī)的遠(yuǎn)程控制。

          網(wǎng)絡(luò)集成管理方案示意圖
          圖1 網(wǎng)絡(luò)集成管理方案示意圖

          多媒體系統(tǒng)中的同步

            多媒體系統(tǒng)的同步是指兩個(gè)或多個(gè)多媒體事件按一定的時(shí)間順序關(guān)系播放,同時(shí)也是一種用于協(xié)調(diào)多個(gè)媒體事件在時(shí)間域中播放的機(jī)制或過程。同步操作可以協(xié)調(diào)和控制兩個(gè)或多個(gè)媒體事件在并行播放過程中由用戶指定的或由其內(nèi)在本質(zhì)所決定的進(jìn)展和聯(lián)系。按時(shí)間關(guān)系,同步可分為3類:媒體對(duì)象之間的同步,媒體流之間的同步,媒體流內(nèi)的同步。這3類同步構(gòu)成多媒體同步的3個(gè)層次,最高層是多媒體對(duì)象之間同步,最低層是媒體流內(nèi)的同步。其中媒體流內(nèi)的同步在一個(gè)時(shí)間相關(guān)媒體流內(nèi)(主要是等時(shí)媒體流內(nèi))進(jìn)行,因此,與時(shí)間無關(guān)的媒體,如文字、圖像等不存在這種同步問題。媒體對(duì)象之間同步要解決的是多媒體合成時(shí)的高層同步問題。圖2給出了一個(gè)多媒體系統(tǒng)中各個(gè)媒體對(duì)象之間的時(shí)序關(guān)系。

          媒體對(duì)象之間的時(shí)序關(guān)系

          圖2 媒體對(duì)象之間的時(shí)序關(guān)系

            媒體流之間同步的主要任務(wù)是保證不同媒體流之間的時(shí)間關(guān)系,例如視頻和音頻之間的時(shí)態(tài)關(guān)系、音頻和文本之間的時(shí)態(tài)關(guān)系等。流間同步的復(fù)雜性與需要同步的媒體數(shù)目有關(guān)。媒體流內(nèi)同步主要針對(duì)等時(shí)媒體(音頻和視頻)而言。本系統(tǒng)中的同步最重要的是對(duì)象間同步。

            因?yàn)槎嗝襟w系統(tǒng)引入了許多時(shí)間相關(guān)性數(shù)據(jù)類型,而這些多媒體數(shù)據(jù)的時(shí)間相關(guān)性可能隱含在建立過程中(如活動(dòng)視頻圖像序列),也可能是由用戶定義的。時(shí)間相關(guān)性必須體現(xiàn)在多媒體系統(tǒng)中。另外在數(shù)據(jù)演示過程中。由于存儲(chǔ)、通信和計(jì)

          算會(huì)導(dǎo)致系統(tǒng)延遲,所有這些特定要求,都需要引進(jìn)同步技術(shù)才能加以解決。傳統(tǒng)的幾種同步方法或模型有分層同步法、時(shí)間軸同步法和參考點(diǎn)同步法。本系統(tǒng)采用的是全局時(shí)間軸的同步方法。

            全局時(shí)間軸的同步是通過把相互獨(dú)立的對(duì)象依附到一個(gè)時(shí)間軸上來描述,丟掉或更改一個(gè)對(duì)象不影響其他對(duì)象的同步。這種描述要維持一個(gè)全局時(shí)間 (world time)軸。每個(gè)對(duì)象可將此全局時(shí)間映射到局部時(shí)間,并沿此局部時(shí)間前進(jìn)。當(dāng)全局時(shí)間和局部時(shí)間誤差超出一個(gè)給定范圍時(shí),則要求與全局時(shí)間重新進(jìn)行同步。時(shí)間軸同步能較好地表達(dá)源于媒體對(duì)象內(nèi)部結(jié)構(gòu)的抽象定義。在這方面,它優(yōu)于分層同步法,它定義了一個(gè)與視頻流中某圖像相關(guān)的說明文字的演示的起始位置,而不再要求有相關(guān)視頻幀的知識(shí)。由于同步僅能基于固定的時(shí)間點(diǎn)定義,若媒體對(duì)象無確定的演示時(shí)間,這種方法就能力有限了。

            在本系統(tǒng)中,由于我們采用時(shí)間軸同步法,所以需要在不同PC間通過網(wǎng)絡(luò)傳送播放時(shí)間的數(shù)據(jù)。我們采用了基于C/S(客戶機(jī)/服務(wù)器)模式,其功能模塊圖如圖3所示。

          系統(tǒng)功能模塊框圖

          圖3 系統(tǒng)功能模塊框圖

            服務(wù)端功能模塊主要有視頻處理模塊、服務(wù)器網(wǎng)絡(luò)功能模塊、用戶管理模塊等控制模塊,它們都通過服務(wù)器應(yīng)用程序被統(tǒng)一管理調(diào)用??蛻舳斯δ苣K主要有客戶機(jī)網(wǎng)絡(luò)功能模塊、視頻處理顯示模塊、用戶管理模塊等,它們都通過客戶機(jī)應(yīng)用程序被統(tǒng)一管理調(diào)用。服務(wù)器和客戶機(jī)之間通過網(wǎng)絡(luò)進(jìn)行相互通信控制和數(shù)據(jù)傳輸。

            網(wǎng)絡(luò)功能模塊分為服務(wù)器網(wǎng)絡(luò)功能模塊和客戶機(jī)網(wǎng)絡(luò)功能模塊。服務(wù)器網(wǎng)絡(luò)功能模塊主要負(fù)責(zé)監(jiān)控前端視頻播放時(shí)間數(shù)據(jù)的網(wǎng)上發(fā)送、對(duì)客戶機(jī)請(qǐng)求的偵聽及響應(yīng)和對(duì)客戶機(jī)控制信息的接收及處理等;客戶機(jī)網(wǎng)絡(luò)功能模塊主要負(fù)責(zé)對(duì)服務(wù)器傳來的視頻播放時(shí)間數(shù)據(jù)的接收、對(duì)服務(wù)器請(qǐng)求連接和控制信息的發(fā)送等。這些都由軟件實(shí)現(xiàn),本軟件使用VC++.Net,采用Windows套節(jié)字(WinSock),利用TCP/IP協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)編程。在編程中,還利用了套節(jié)字的異步I/O模型及Windows多線程機(jī)制進(jìn)行循環(huán)內(nèi)存隊(duì)列管理等方法。通過這些手段,較好地解決了實(shí)時(shí)視頻播放時(shí)間數(shù)據(jù)傳輸中的各種問題。

          實(shí)時(shí)視頻處理

            無論在服務(wù)器還是客戶機(jī)應(yīng)用程序中都有視頻處理模塊,其主要的功能是使多媒體系統(tǒng)能實(shí)時(shí)進(jìn)行視頻圖像切割并顯示出來。其實(shí)現(xiàn)方法如下:

            在Windows系統(tǒng)中我們將使用微軟提供的一些方法和類來實(shí)現(xiàn)實(shí)時(shí)視頻圖像切割播放的算法。首先將使用設(shè)備環(huán)境作為幀讀取的緩沖區(qū)。設(shè)備環(huán)境是一個(gè)由圖形設(shè)備接口管理的包含有設(shè)備信息的數(shù)據(jù)結(jié)構(gòu),所有對(duì)繪圖函數(shù)的調(diào)用都要通過使用設(shè)備環(huán)境對(duì)象來完成。它封裝了Windows的繪畫函數(shù),并允許在視窗中以設(shè)備的獨(dú)立性來繪制圖形。支持設(shè)備獨(dú)立性的軟件包括兩個(gè)動(dòng)態(tài)鏈接庫:圖形設(shè)備接口Gdi.dll和設(shè)備驅(qū)動(dòng)程序。系統(tǒng)要將圖像輸出到對(duì)話框,就要得到對(duì)話框的設(shè)備環(huán)境,方法大體有兩種:①在對(duì)話框類的函數(shù)中,用函數(shù)GetDC()得到一個(gè)對(duì)話框設(shè)備的指針;②以對(duì)話框的指針為參數(shù)生成一個(gè)設(shè)備環(huán)境對(duì)象,如CDChdc(this)。微軟還提供了一些播放視頻的函數(shù)(如DrawDibDraw函數(shù)),實(shí)現(xiàn)了將文件中讀出的視頻圖像數(shù)據(jù)輸出到顯示緩沖區(qū)的某個(gè)區(qū)域,利用此函數(shù)可以將每幀圖像切割,顯示我們所要顯示的畫面(原來視頻畫面的一部分);而顯示的圖像數(shù)據(jù)可以以CBitmap的形式從顯示器的設(shè)備環(huán)境中獲得,其中CBitmap是微軟提供的一個(gè)位圖類,它封裝了視窗的圖形設(shè)備接口,并且提供了操縱位圖的成員函數(shù)。

            系統(tǒng)是在CPU為P4117GHz、VideoCard為NVIDIAQua

          dro2MXR/EX的情況下,在Windows系統(tǒng)中用VC++.net實(shí)現(xiàn)了AVI視頻無停頓實(shí)時(shí)切割播放。

            其具體程序如下:

          CDC hdc;
          LONG 1 Frame;
          BYTE abFormat[1024];
          LPBITMAPINFOHEADER 1pbi;
          1pbi=(LPBITMAPINFOHEADER)abFormat;
          1Frame=AVIStream Time To Sample(m_Pstream,1Time);
          //從當(dāng)前媒體流中得到當(dāng)前時(shí)間為1Time的樣本
          1pbi=(LPBITMAPINFOHEADER)AVIStreamGetFrame
          (m_PAviStream,1Frame);
          //得到當(dāng)前幀的地址
          If (1pbi)
          {
          xwidth=lpbi->biWidth/total;
          //得到客戶機(jī)上顯示的視頻畫面的寬度
          ywidth=1pbi->biHeight;
          xSrc=x_n*xwidth;
          //得到源顯示畫面開始顯示點(diǎn)的x坐標(biāo)
          //利用DrawDibDraw函數(shù)將視頻切割顯示
          DrawDibDraw(m_hDrawDib,hdc,
          rcFrame left,rcFrame.top,
          rcFrame right-rcFrame.left,
          rcFrame bottom-rcFrame.top,
          1pbi,NULL,xSrc,0,xwidth,ywidth,
          DDF_SAME_DRAW);

          結(jié)束語

            本系統(tǒng)采用多媒體同步技術(shù),實(shí)現(xiàn)了基于網(wǎng)絡(luò)通信的不同PC間進(jìn)行同步通信播放影像文件和實(shí)時(shí)視頻圖像切割處理的功能,是一種性價(jià)比較高的解決方案。該系統(tǒng)對(duì)于網(wǎng)絡(luò)視頻、視頻切割的提供了有意義的經(jīng)驗(yàn)和借鑒。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();