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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 開源視頻服務(wù)器軟件MJPG-streamer的研究和應(yīng)用

          開源視頻服務(wù)器軟件MJPG-streamer的研究和應(yīng)用

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

          摘要:針對嵌入式設(shè)備在進(jìn)行多媒體數(shù)據(jù)處理時存在的資源限制問題,采用了一種完成多媒體數(shù)據(jù)的處理及存儲,基于該的特點和體系結(jié)構(gòu),通過修改的源代碼,添加新的功能模塊,以增強(qiáng)這款的功能。并重新交叉編譯后,移植到嵌入式系統(tǒng)中,以實現(xiàn)一個可控制前端設(shè)備的基于Arm9的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)。實驗結(jié)果表明,該方法很好地增強(qiáng)了視頻數(shù)據(jù)處理的效果,并可流暢地在客戶端播放瀏覽器。
          關(guān)鍵詞:;;器;插件;嵌入式

          “MJPG-streamer”是一個輕量級的器軟件。一個可以從單一輸入組件獲取圖像并傳輸?shù)蕉鄠€輸出組件的命令行程序。
          該軟件可在基于IP協(xié)議的網(wǎng)絡(luò)中,從網(wǎng)絡(luò)攝像機(jī)中獲取并傳輸JPEG格式的圖像到瀏覽器,例如Firefox、Cambozola、Videolanclie nt,甚至是一個運(yùn)行了TCPMP播放器的Windows移動設(shè)備。
          它繼承于uvc_streamer,為在RAM和CPU上存在資源限制的嵌入式設(shè)備而寫的。因為兼容Linux-uvc的攝像機(jī)可以直接生成JPEG數(shù)據(jù),即使是運(yùn)行OpenWRT Linux的嵌入式設(shè)備也可以快速處理M-JPEG數(shù)據(jù)流。
          這款工具源代碼簡潔,注釋清晰。組件功能明確,銜接清晰。使用Linux C語言進(jìn)行開發(fā),可移植到不同的計算機(jī)平臺,也可以在根據(jù)GPL v2的條款下進(jìn)行改進(jìn)和發(fā)行。

          1 MJPG-streamer的處理流程
          MJPG-streamer主函數(shù)的定義在mjpg-streamer.c文件。主函數(shù)的處理流程如圖1所示。

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



          2 MJPG-streamer的相關(guān)組件
          MJPG-streamer采用模塊化的設(shè)計方法,以功能塊為單位進(jìn)行描述,這些功能塊被稱為plug-in(組件)。軟件中定義好了各組件的輸入、輸出,以及組件之間的銜接關(guān)系。用戶可自行根據(jù)對功能的需求,選擇需要的模塊。這種模塊化的程序設(shè)計簡化了代碼的編寫、調(diào)試、維護(hù),程序員只需要遵守設(shè)計的規(guī)范,就可以輕松地改寫軟件,或者編寫新的模塊以增強(qiáng)軟件的功能。
          MJPG-streamer最主要并且最常用的組件是input_uvc輸入組件和output_http輸出組件。其他組件包括input_control、input_file、input_testpicture、input_gspcavl、output_autofocus、output_file、out_viewer,如圖2所示。

          c語言相關(guān)文章:c語言教程


          攝像頭相關(guān)文章:攝像頭原理
          矢量控制相關(guān)文章:矢量控制原理

          上一頁 1 2 3 4 下一頁

          評論


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