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

          新聞中心

          EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于DirectShow的MPEG-4視頻傳輸系統(tǒng)的研究與實(shí)現(xiàn)

          基于DirectShow的MPEG-4視頻傳輸系統(tǒng)的研究與實(shí)現(xiàn)

          作者: 時(shí)間:2009-03-24 來源:網(wǎng)絡(luò) 收藏


          在網(wǎng)絡(luò)帶寬比較低的情況下(如十幾KBps),數(shù)據(jù)丟幀現(xiàn)象比較嚴(yán)重,這對(duì)于圖像質(zhì)量有很大的影響。我們采用拆幀(拆成1400個(gè)字節(jié))以后再發(fā)送的方法,來降低丟幀率。接收端收到數(shù)據(jù)后,再把屬于同一幀的數(shù)據(jù)再組起來。
          網(wǎng)絡(luò)發(fā)送接收程序流程圖如圖3所示:


          圖3 網(wǎng)絡(luò)發(fā)送接收程序流程圖


          對(duì)程序流程圖的說明如下:
          (1)發(fā)送端拆幀的算法如下:

          然后把屬于同一幀的數(shù)據(jù)組好,發(fā)送到解碼Filter。
          經(jīng)過測試(在CDMA1.X網(wǎng)絡(luò)下),采用拆幀方法傳輸數(shù)據(jù)比直接發(fā)送丟包率更低,傳輸質(zhì)量有了很大的提高。
          3.3 數(shù)據(jù)解碼及回放的
          解碼Filter使用的是Divx提供的開源解碼器,在接收Filter的后面接上該解碼Filter即可,最后接上Renderer Filter就可以把接收到的數(shù)據(jù)回放出來。
          3.4 幀率控制功能
          通過在采集設(shè)備和編碼Filter(DivX Pro(tm) 5.1.1 Codec)之間加入一個(gè)幀率控制Filter來幀率的控制,該Filter相當(dāng)于一個(gè)視頻幀數(shù)計(jì)數(shù)器,每接收到一幀,并不立即把該幀發(fā)給下游的編碼Filter,而是把計(jì)數(shù)器的值加1,當(dāng)計(jì)數(shù)器的值達(dá)到最大值時(shí)才把當(dāng)前收到的幀發(fā)出去。在接收端發(fā)控制幀率命令給采集端可以很方便的實(shí)現(xiàn)幀率的遠(yuǎn)端控制。
          程序片斷如下:

          加了幀率控制Filter的發(fā)送端 Filter Graph 如圖4所示:


          圖4 實(shí)現(xiàn)了幀率控制的Filter Graph

          4 總結(jié)

          該系統(tǒng)采用了技術(shù)實(shí)現(xiàn)了視頻數(shù)據(jù)的傳輸,視頻數(shù)據(jù)的傳輸采用了RTP協(xié)議。而且還實(shí)現(xiàn)了遠(yuǎn)端幀率的控制,該系統(tǒng)可以很方便的移植到未來3G網(wǎng)絡(luò)的圖像中。對(duì)進(jìn)行,采用H.264技術(shù)實(shí)現(xiàn)編解碼Filter是下一步要完成的工作,當(dāng)然在傳輸質(zhì)量(QoS)方面也要深入進(jìn)行


          上一頁 1 2 3 下一頁

          評(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); })();