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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 嵌入式Linux的網(wǎng)絡視頻流模塊設計

          嵌入式Linux的網(wǎng)絡視頻流模塊設計

          作者: 時間:2012-12-06 來源:網(wǎng)絡 收藏

          1 中流數(shù)據(jù)的操作

          本文引用地址:http://www.ex-cimer.com/article/148221.htm

          在本中,數(shù)據(jù)在整個系統(tǒng)中是以流數(shù)據(jù)的形式存在的,內核為流數(shù)據(jù)提供了一個標準的編程接口,這種接口為數(shù)據(jù)從外部設備經內核到達用戶進程提供了一個全雙工通道。

          在這個通道中,數(shù)據(jù)的處理是作為可選的中間件由用戶動態(tài)加載的,上面的視頻壓縮就是這樣的一個中間件。

          2 ASF流式文件格式

          本系統(tǒng)主要是用于實時視頻應用,所以需要系統(tǒng)提供對流式文件格式的支持,這樣在接收方利用標準的流視頻播放軟件,如MMedia Player就可以觀看實時傳輸?shù)囊曨l.在本系統(tǒng)中采用了開放的ASF流格式.壓縮后的視頻數(shù)據(jù)在傳輸前需要對其進行ASF編碼.ASF文件的基本組織單元為ASF對象,每個對象由三個域組成:對象標識符域、對象大小域和對象數(shù)據(jù)域。ASF文件的高層邏輯結構也包含三部分:頭對象、數(shù)據(jù)對象和索引對象。其中,頭對象包含了許多全局信息,數(shù)據(jù)對象則包含了所有待播放的數(shù)據(jù),頭對象必須在數(shù)據(jù)對象之間被接收方接收并解釋。

          3 流視頻協(xié)議

          流視頻協(xié)議是為了在客戶機和視頻服務器之間進行通信而和標準化的。根據(jù)它們的功能,與網(wǎng)絡上流視頻相關的協(xié)議分為三類。

          *網(wǎng)絡層協(xié)議:網(wǎng)絡層協(xié)議提供了基本的網(wǎng)絡服務支持。IP就是網(wǎng)絡上流視頻使用的網(wǎng)絡協(xié)議。

          *傳輸協(xié)議:傳輸協(xié)議為流服務提供端對端的網(wǎng)絡傳輸功能。TCP、UDP、RTP和RTCP就是網(wǎng)絡上流視頻使用的傳輸協(xié)議。

          *話路控制協(xié)議:話路控制協(xié)議定義消息和程序。RTSP就是一種話路控制協(xié)議。

          為流視頻設計的協(xié)議棧如圖4所示。在發(fā)送方的數(shù)據(jù)面,壓縮且經過ASF編碼的視頻數(shù)據(jù)被讀出并在RTP/RTCP/RTSP層上打包,以提供定時和同步信息以及包的序列號。然后把這些打包的RTP數(shù)據(jù)流發(fā)送到UDP/TCP層和IP層,得到的IP包在網(wǎng)絡上傳輸。在接收方則按照相反的方向處理。在控制面,RTCP包和RTSP包在UDP/TCP層上復用,并且被送到IP層,以便通過網(wǎng)絡傳輸。

          小結

          本文提出了一種基于Intel PXA255微處理器和網(wǎng)絡攝像機的設計方案,系統(tǒng)采用先進的MPEG-4編碼標準,得到了較高的壓縮比。經測試、在50Kbps~100Kbps的帶寬下,對CIF(352×288,30fps)格式的視頻有較好的表現(xiàn)能力。滿足了在目前寬帶環(huán)境中的會議以及視頻監(jiān)控的要求,其應用十分廣泛。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          linux相關文章:linux教程




          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();