国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

英創信息技術ESM6802主板支持多路網絡視頻監控簡介

英創信息技術 ? 來源:英創信息技術 ? 作者:英創信息技術 ? 2020-02-12 10:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我們已經介紹過在ESM7100主板上支持多路模擬攝像頭的方案,詳細資料可以參考《Linux主板多通道視頻采集方案》。在很多工業現場中還會使用到網絡攝像頭,它的優點是可以通過網絡獲取數據,沒有距離的限制,只需要提供一個常用的普通網絡接口就可以進行通訊,非常靈活。但是網絡攝像頭傳輸的數據都是通過了編碼(現在常見格式有 H.264、MPEG-4、MJPEG)的,在接收到數據后,如果要在主板上進行處理和顯示,就需要對數據進行解碼。實現解碼功能需要硬件的支持,依靠軟件解碼會消耗大量的CPU資源,而且性能也不理想,所以如果要連接網絡攝像頭,就只能夠使用擁有硬件編解碼功能的ESM6802這一款核心板。

ESM6802的處理器為雙核Crotex-A9,主頻1GHz的i.MX6DL,CPU內部集成了一個擁有編解碼功能的VPU(Video Processing Unit),通過VPU進行解碼不會消耗過多的CPU資源,而ESM6802內部的VPU可以支持多種格式的解碼,包括了常見的H.264、MPEG-4、MJPEG等格式,能夠支持的最大分辨率為1920x1088,同時最多可以處理4路攝像頭的數據。下面我們就以ESM6802為例,介紹如何使用在Qt界面中顯示網絡攝像頭的數據。

軟件上同樣還是使用gstreamer和Qt來實現,ESM6802的文件系統中已經集成了gstreamer和Qt5.8相關的庫和工具,并且包含了處理網絡攝像頭通訊協議rtsp和操作VPU編解碼的插件,而gstreamer能夠支持多種圖形系統包括Qt。所以利用gstreame能夠快速方便的獲取網絡攝像頭的數據并顯示到Qt界面中,關于gstreamer的詳細介紹,可以參考網站https://gstreamer.freedesktop.org/documentation/index.html?gi-language=c。

考慮到部分客戶可能對gstreamer不熟悉,英創公司在gstreamer提供的API函數基礎上重新封裝了一層,通過庫文件libemgst.so提供三個API函數和一個包含網絡攝像頭信息的結構體變量,利用這三個API函數,客戶就可以將視頻數據顯示在Qt實現的界面上,而不需要使用代碼對gstreamer單獨進行操作,客戶可以專注于Qt程序的開發。下面就詳細介紹libemgst.so的三個API函數和結構體變量:

/**
* 初始化gstreamer
*
* 本函數在C的main函數中調用,將會初始化gstreamer庫
*
* 參數說明:
* 使用main函數的兩個參數填入,gstramer初始化時需要讀取main函數的兩個參數
*
* 返回值說明:
* 無返回值
*
*/
voidinit_emgst(intargc, char **argv);
/**
* 包含網絡攝像頭設備信息的結構體
* 訪問網絡攝像頭需要有ip地址,用戶名和密碼。如果是播放錄像文件,還需要填入
* 錄像文件的地址,如果是播放實時數據,路徑填寫為NULL即可。
*
* 參數說明:
* ip:指向網絡攝像頭ip地址的指針
* user:指向網絡攝像頭的用戶名的指針
* passwd:指向網絡攝像頭密碼的指針
* file:指向錄像文件路徑的指針,如果播放實時圖像,賦值為NULL
*
*/
typedefstruct _Rtsp_config {
char *ip;
char *user;
char *passwd;
char *file;
} Rtsp_config;
/**
* 配置gstreamer,并顯示到指定Qt窗口
*
* 函數會配置gstreamer,顯示多個網絡攝像頭的數據到xwinid所指定的窗口,窗口的大
* 小通過參數width和height來確定,而網絡攝像頭的信息由指針rtsp_config傳入,listsize
* 指定同時顯示的通道數量。因為要動態建立網絡攝像頭的連接,函數不會退出,所以
* 需要在線程中調用。
*
* 參數說明:
* xwinid:Qt窗口的id號,每一個窗口類中都包含這個成員變量。
* width:顯示視頻數據所使用的窗口控件的寬度,單位pixel
* height:顯示視頻數據所使用的窗口控件的高度,單位pixel
*rtsp_config:指向設備信息結構體的指針,通常是一組包含設備信息的結構體指針。
* 詳細解釋可以查看對結構體Rtsp_config的說明
* listsize:顯示的視頻通道數最多支持同時顯示4路。支持1,2,4這三個值,函數會按
* 照固定模式對顯示進行排列
*
* 返回值說明:
* 0表示正常退出gstreamer
* -1 表示填入參數出現錯誤,啟動gstreamer失敗
*
*/
intconfig_emrtsp(unsignedintxwinid, intwidth,intheight, Rtsp_config *rtsp_config, intlistsize);
/**
* 關閉gstreamer,釋放資源
*
* 函數會關閉gstreamer輸出,并釋放相關資源
*
* 返回值說明:
* 無返回值
*
*/
voidrelease_emrtsp(void);

init_emgst函數進行gstreamer的初始化,在啟動gstreamer功能之前需要調用一次,客戶配合Qt使用時在main函數中調用即可:

intmain(intargc, char *argv[])
{
//初始化英創主板gstreamer功能
init_emgst(argc, argv);
//Qt窗口初始化,由QtCreator自動生成
QApplicationa(argc, argv);
MainWindow w;
w.show();
returna.exec();
}

config_emrtsp函數會配置并啟動gstreamer,要將網絡攝像頭的數據顯示在指定的窗口中,客戶只要得到用來顯示視頻的窗口控件的id就可以了,在每一個Qt窗口控件類中都有對應的成員變量,可以很簡單的獲取到。通過rtsp_config填入網絡攝像頭的信息,包含網絡攝像頭的ip,用戶名,密碼和錄像文件路徑,如果只是播放實時圖像,錄像文件路徑填為NULL就行了,函數會動態監測網絡攝像頭的連接,只有當播放完成才會退出,比如錄像文件播放完畢或者手動關閉的情況,所以建議在線程中調用函數config_emrtsp。和網絡攝像頭的連接建立后,ESM6802主板會根據網絡攝像頭的編碼格式自行選擇合適的解碼方式,不需要客戶做任何設置,網絡攝像頭常用的H.264、MPEG-4、MJPEG編碼格式都可以支持。

config_emrtsp函數會根據width和height的值自動分配顯示區域,listsize指定同時顯示的通道數,支持的值為1、2、4,顯示的方式如下圖:

視頻數據顯示排列方式

函數調用后gstreamer會將對應通道數的視頻顯示在指定的Qt窗口控件中,每一個區域所顯示的網絡攝像頭數據是通過結構體指針rtsp_config指定的,下面是部分參考代碼,創建了一個線程,通過一個按鈕啟動,把將graphicsView控件的id傳給gstreamer,并顯示設置的網絡攝像頭數據:

//派生一個Qt線程類,用獲取config_emrtsp函數的參數,并在線程中啟動
classRtsp_pThread :publicQThread
{
Q_OBJECT
public:
voidrun();
//窗口控件的寬度
int width;
//窗口控件的高度
int height;
//顯示的通道數量
intnum_of_chan;
//窗口控件ID
WIdxwinid;
//包含網絡攝像頭信息的結構體指針
Rtsp_config *rtsp_config;
};
voidMainWindow::on_confirm_released()
{
//初始化結構體指針
rtsp_config = (Rtsp_config*)malloc(max_chan*sizeof(Rtsp_config));
//填入每一路網絡攝像頭的ip,用戶名和密碼,因為不是播放錄像文件,所以file一項填寫的NULL。示例是顯示了四路網絡攝像頭的數據,因為都是訪問的同一個攝像頭,所以填寫的信息是一致的
for(i=0; i
//網絡攝像頭的ip地址
(rtsp_config+i)->ip = (char*)malloc(20*sizeof(char));
sprintf((rtsp_config+i)->ip, "192.168.201.84");
//網絡攝像頭的用戶名
(rtsp_config+i)->user = (char*)malloc(20*sizeof(char));
sprintf((rtsp_config+i)->user, "admin");
//網絡攝像頭的密碼
(rtsp_config+i)->passwd = (char*)malloc(20*sizeof(char));
sprintf((rtsp_config+i)->passwd, "******");
(rtsp_config+i)->file = NULL;
}
//將顯示區域的寬度,高度和等信息值賦給線程類的成員變量
rtsp_thread.width = ui->graphicsView->width();
rtsp_thread.height = ui->graphicsView->height();
rtsp_thread.num_of_chan = max_chan;
rtsp_thread.rtsp_config = rtsp_config;
//啟動線程
rtsp_thread.start();
}
voidRtsp_pThread::run()
{
//在線程中調用函數config_emrtsp,啟動顯示
config_emrtsp(xwinid, width, height, rtsp_config, num_of_chan);
}
release_emgst函數會停止gstreamer輸出,并釋放資源,在程序退出或者需要切換顯示的時候調用,下面的代碼是通過檢測Qt按鈕控件的點擊事件,關閉顯示:
voidMainWindow::on_setting_released()
{
inti;
//停止顯示,并釋放相關資源
release_emrtsp();
//退出線程
rtsp_thread.quit();
}

庫文件libemgst.so已經預裝在ESM6802主板的文件系統中了,客戶不需要針對主板再做任何設置。在開發程序的時候,Qt工程中需要將英創公司提供的emgst.h頭文件和libemgst.so庫文件添加進去。頭文件添加的方法十分簡單,增加一個新的頭文件即可。關于外部庫的添加,Qt的開發工具QtCreator提供了非常簡便的方法,客戶只需要將libemgst.so拷貝到工程目錄下,然后在QtCreator中的項目欄用鼠標右鍵單擊工程,選擇添加庫(外部庫),如下圖:

添加庫操作界面

選擇外部庫后,點擊下一步,按照下圖設置,在庫文件一欄中選擇到工程下的libemgst.so文件,如下圖:

選擇庫文件

這樣就完成了外部庫的設置,客戶可以在代碼中調用libemgst.so提供的API函數了。英創公司提供了一個通過按鈕切換顯示視頻通道數的例程,效果如下:

通過這種方式,英創公司希望能夠幫助客戶縮短開發周期,讓客戶可以專注于Qt程序的開發,而不用花時間去學習并在代碼中設置gstreamer。對于例程感興趣的客戶可以和工程師聯系,索取相關代碼。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    88

    文章

    11760

    瀏覽量

    219045
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6107

    瀏覽量

    37080
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    國產金融主板:賦能智慧金融,驅動信產業升級

    隨著信息技術的飛速迭代,信產業已在全球范圍內崛起,成為拉動經濟增長、激活創新動能的核心力量。在信產業的關鍵布局中,智慧金融建設是重中之重,而國產金融主板的規模化應用,正為智慧金融建
    的頭像 發表于 12-31 09:03 ?174次閱讀
    國產金融<b class='flag-5'>主板</b>:賦能智慧金融,驅動信<b class='flag-5'>創</b>產業升級

    國產芯筑基,飛騰主板賦能信未來

    信息技術自主可控成為國家戰略的今天,信產業正從“政策驅動”邁向“市場驅動”的高質量發展新階段。作為信產業鏈的核心硬件基石,主板的國產化水平直接決定著整個
    的頭像 發表于 12-30 09:49 ?204次閱讀
    國產芯筑基,飛騰<b class='flag-5'>主板</b>賦能信<b class='flag-5'>創</b>未來

    龍芯中科助力2025教育信息技術應用創新大賽成功舉辦

    2025年11月13日-15日,由中國教育技術協會主辦、浙江大學與中國教育技術協會網絡安全專業委員會聯合承辦,中國電子工業標準化技術協會信息技術
    的頭像 發表于 11-21 16:23 ?792次閱讀

    誠邁科技信電腦助力2025第二屆教育信息技術應用創新大賽圓滿收官

    11月15日,由中國教育技術協會主辦、浙江大學與中國教育技術協會網絡安全專業委員會聯合承辦,中國電子工業標準化技術協會信息技術應用創新工作委
    的頭像 發表于 11-17 17:58 ?678次閱讀
    誠邁科技信<b class='flag-5'>創</b>電腦助力2025第二屆教育<b class='flag-5'>信息技術</b>應用創新大賽圓滿收官

    智慧新核心,龍芯主板助力信體系再升級

    信息技術飛速發展的當下,信體系的自主可控與創新升級已成為國家戰略層面的關鍵任務。作為信產業發展的重要基礎硬件支撐,國產工控主板正發揮著日益重要的作用。
    的頭像 發表于 08-11 09:14 ?701次閱讀

    佛瑞亞如何通過信息技術推動業務增長

    在數字化、信息化的浪潮下,信息技術已經不僅是后臺工具,更成為驅動企業發展的關鍵力量。本期Women Inspiring Mobility,我們采訪了佛瑞亞中國區信息技術總監馬瑛,了解她和團隊如何將
    的頭像 發表于 07-29 14:00 ?909次閱讀

    飛騰主板為信產業發展提高硬實力

    信息技術飛速發展的當下,信產業已成為我國實現科技自立自強、保障國家信息安全的關鍵領域。信,即信息技術應用創新,其核心目標是實現
    的頭像 發表于 07-22 18:20 ?713次閱讀

    車載終端_多路車載視頻監控方案_車載終端主板定制

    車載終端主板依托高通提供的8核高端芯片平臺,主頻高達2.0GHz,內置高性能GPU,能夠輕松應對多路視頻拍攝和復雜的圖形處理任務。其兼容4G/3G網絡制式,并
    的頭像 發表于 07-03 20:17 ?526次閱讀
    車載終端_<b class='flag-5'>多路</b>車載<b class='flag-5'>視頻</b><b class='flag-5'>監控</b>方案_車載終端<b class='flag-5'>主板</b>定制

    科普|信是什么?一文讀懂“信息技術應用創新”戰略

    什么是信?信,即“信息技術應用創新”,是國家推動IT系統自主可控、安全可控的重要戰略工程。它不僅是技術層面的創新,更承載著保障國家網絡
    的頭像 發表于 06-13 10:06 ?8329次閱讀
    科普|信<b class='flag-5'>創</b>是什么?一文讀懂“<b class='flag-5'>信息技術</b>應用創新”戰略

    明遠智睿SSD2351開發板:視頻監控領域的卓越之選

    源的開發資料讓開發者可以根據實際需求對視頻監控系統的軟件進行定制和優化,如開發個性化的視頻編碼算法、監控界面等。一對一的技術支持則為開發者解
    發表于 05-30 10:24

    浪潮下,國產主板有什么新的發展機遇?

    信息技術應用創新浪潮的推動下,國產主板迎來了諸多新的發展機遇。信產業旨在實現信息技術領域的自主可控,這一戰略目標為國產主板的發展提供了廣
    的頭像 發表于 05-09 09:24 ?728次閱讀
    信<b class='flag-5'>創</b>浪潮下,國產<b class='flag-5'>主板</b>有什么新的發展機遇?

    龍芯主板是安全可信基石,可守護信息資產

    網絡安全中,信息安全至關重要。龍芯主板內置安全啟動技術,從硬件層級構建起堅實的防護體系。同時,龍芯主板
    的頭像 發表于 04-22 09:12 ?533次閱讀

    基于RV1126開發板實現多路網絡攝像頭取流方案

    在RV1126上實現多路網絡攝像頭取流方案
    的頭像 發表于 04-21 14:39 ?49次閱讀
    基于RV1126開發板實現<b class='flag-5'>多路網絡</b>攝像頭取流方案

    基于RV1126開發板實現多路網絡攝像頭取流方案

    在RV1126上實現多路網絡攝像頭取流方案
    的頭像 發表于 04-11 15:57 ?1258次閱讀
    基于RV1126開發板實現<b class='flag-5'>多路網絡</b>攝像頭取流方案

    頂堅手持終端賦能鐵路巡檢,打造智慧鐵路網絡

    手持終端以其強大的數據采集、實時通訊與智能化分析能力,正深刻變革著鐵路巡檢模式,為構建高效、安全、智能的智慧鐵路網絡奠定了堅實基礎。通過精準捕捉設備狀態,即時傳輸巡檢信息,手持終端不僅加速了故障
    的頭像 發表于 03-10 10:30 ?796次閱讀
    頂堅手持終端賦能鐵路巡檢,打造智慧鐵<b class='flag-5'>路網絡</b>