0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)Linux主板多通道視頻采集方案簡介

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-02-12 11:00 ? 次閱讀

英創(chuàng)公司推出的ESM7100主板搭載了I.MX7DL處理器,這款處理器是雙核Cortex-A7架構(gòu),并且主頻達(dá)到1GHz,不僅有著強(qiáng)勁的處理性能,還繼承了Cortext-A7的低功耗特性,非常適用于工業(yè)應(yīng)用。進(jìn)一步,ESM7100的還配置高速PCIe接口,使其可滿足工業(yè)視頻監(jiān)控對高速數(shù)據(jù)采集的需求。本文主要介紹基于英創(chuàng)公司ESM7100的多通道視頻采集應(yīng)用方案。

ETA6869模塊是英創(chuàng)公司開發(fā)的具有標(biāo)準(zhǔn)mini PCIe尺寸,最多能夠支持8通道視頻采集模塊,核心芯片為視頻解碼芯片tw6869。ETA6869模塊通過PCIe×1接口與ESM7100相連接,保證了數(shù)據(jù)的高速傳輸。標(biāo)準(zhǔn)的mini-PCIe尺寸模塊的設(shè)計(jì),可以讓模塊方便的嵌入在底板上,如下:

ESM7100主板已經(jīng)預(yù)裝了ETA6869模塊的驅(qū)動(dòng),上電后驅(qū)動(dòng)會(huì)自動(dòng)加載,成功加載后在/dev目錄下會(huì)生成video節(jié)點(diǎn),通過操作video節(jié)點(diǎn),就能夠獲取視頻數(shù)據(jù),通過ls命令就能夠查看設(shè)備節(jié)點(diǎn),如下圖,/dev/vidoe0為ESM7100主板的顯示輸出設(shè)備節(jié)點(diǎn),系統(tǒng)顯示服務(wù)程序會(huì)調(diào)用這個(gè)設(shè)備節(jié)點(diǎn),客戶應(yīng)當(dāng)避免直接操作它,/dev/video1~/dev/video8就是生成的視頻輸入設(shè)備節(jié)點(diǎn),分別代表視頻輸入的通道1-通道8:

video節(jié)點(diǎn)

在軟件開發(fā)方面,ESM7100的文件系統(tǒng)中已經(jīng)集成了gstreamer工具,這是一種跨平臺的多媒體框架工具,而整個(gè)框架是基于模塊化設(shè)計(jì)的,在框架中將提供不同功能的模塊插件集合起來,就能夠?qū)崿F(xiàn)所需求的多媒體應(yīng)用功能。關(guān)于gstreamer的資料在官網(wǎng)中有非常詳細(xì)的文檔介紹以及例程參考,這里就不再贅述,有興趣的客戶可以查看:https://gstreamer.freedesktop.org/documentation/index.html?gi-language=c了解詳情。通過gstreamer可以方便快捷的處理視頻數(shù)據(jù),同時(shí)ESM7100板載了Qt5.8,能夠使用Qt實(shí)現(xiàn)界面的設(shè)計(jì),然后與gstreamer配合,讓gstreamer將視頻數(shù)據(jù)輸出到Qt窗口控件上,采用這種方法就能夠讓整個(gè)多通道視頻采集方案快速實(shí)現(xiàn)。

考慮到部分客戶可能對gstreamer不熟悉,英創(chuàng)公司在gstreamer提供的API函數(shù)基礎(chǔ)上重新封裝了一層,通過庫文件libemgst.so提供三個(gè)簡單的API函數(shù),利用這三個(gè)API函數(shù),客戶就可以將視頻數(shù)據(jù)顯示在Qt實(shí)現(xiàn)的界面上,而不需要使用代碼對gstreamer單獨(dú)進(jìn)行操作,客戶可以專注于Qt程序的開發(fā)。下面就詳細(xì)介紹libemgst.so的三個(gè)API函數(shù):

/**
* 初始化gstreamer
*
* 本函數(shù)在C的main函數(shù)中調(diào)用,將會(huì)初始化gstreamer庫
*
* 參數(shù)說明:
* 使用main函數(shù)的兩個(gè)參數(shù)填入,gstramer初始化時(shí)需要讀取main函數(shù)的兩個(gè)參數(shù)
*
* 返回值說明:
* 無返回值
*
*/
voidinit_emgst(intargc, char **argv);
/**
* 配置gstreamer,并顯示到指定Qt窗口
*
* 函數(shù)會(huì)配置gstreamer,顯示多個(gè)通道的視頻到xwinid所指定的窗口,窗口的大小通過
* 參數(shù)width和height來確定,而視頻的設(shè)備節(jié)點(diǎn)由指針devlist傳入,listsize指定同時(shí)顯示
* 的通道數(shù)量
*
* 參數(shù)說明:
* xwinid:Qt窗口的id號,每一個(gè)窗口類中都包含這個(gè)成員變量。
* width:顯示視頻數(shù)據(jù)所使用的窗口控件的寬度,單位pixel
* height:顯示視頻數(shù)據(jù)所使用的窗口控件的高度,單位pixel
*devlist:指向設(shè)備列表的指針,通常是一個(gè)包含設(shè)備號的數(shù)組,比如需要顯示
* /dev/video1和/dev/video2,那么devlist就應(yīng)該指向一個(gè)長度為2的數(shù)組,其中
* devlist[0]=1,devlist[1]=2
* listsize:顯示的視頻通道數(shù)。支持1,2,4,6,8這五個(gè)值,函數(shù)會(huì)按照固定模式對顯
* 示進(jìn)行排列
*
* 返回值說明:
* 0表示正常啟動(dòng)gstreamer
* -1 表示填入?yún)?shù)出現(xiàn)錯(cuò)誤,啟動(dòng)gstreamer失敗
*
*/
intconfig_emgst(unsignedintxwinid, intwidth,intheight, char *devlist, intlistsize);
/**
* 關(guān)閉gstreamer,釋放資源
*
* 函數(shù)會(huì)關(guān)閉gstreamer輸出,并釋放相關(guān)資源
*
* 返回值說明:
* 無返回值
*
*/
voidrelease_emgst(void);

init_emgst函數(shù)進(jìn)行g(shù)streamer的初始化,在啟動(dòng)gstreamer功能之前需要調(diào)用一次,客戶配合Qt使用時(shí)在main函數(shù)中調(diào)用即可:

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

config_emgst函數(shù)會(huì)配置并啟動(dòng)gstreamer,客戶只要得到用來顯示視頻的窗口控件的id就可以了,在每一個(gè)Qt窗口控件類中都有對應(yīng)的成員變量,可以很簡單的獲取到。config_emgst函數(shù)會(huì)根據(jù)width和height的值自動(dòng)分配顯示區(qū)域。通過devlist可以設(shè)置需要操作的設(shè)備節(jié)點(diǎn)索引號,listsize指定同時(shí)顯示的通道數(shù),支持的值為1、2、4、6、8,顯示的方式如下圖:

視頻數(shù)據(jù)顯示排列方式

函數(shù)調(diào)用后gstreamer會(huì)將對應(yīng)通道數(shù)的視頻顯示在指定的Qt窗口控件中,每一個(gè)區(qū)域所顯示的視頻數(shù)據(jù)是通過指針devlist指定的,下面是部分參考代碼,將graphicsView控件的id傳給gstreamer,并顯示/dev/video1的數(shù)據(jù):

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//初始化設(shè)備列表
devlist = (char*)malloc(sizeof(char));
devlist[0] = 1;
//獲取窗口控件id,并賦值給成員變量xwinid
xwinid = ui->graphicsView->winId();
//將參數(shù)傳入函數(shù)中初始化gstreamer,并開始輸出視頻數(shù)據(jù)
config_emgst(xwinid, 640, 480, devlist, 1);
}

release_emgst函數(shù)會(huì)停止gstreamer輸出,并釋放資源,在程序退出或者需要切換顯示的時(shí)候調(diào)用,下面的代碼是通過檢測Qt按鈕控件的點(diǎn)擊事件,實(shí)現(xiàn)切換顯示通道數(shù):

voidMainWindow::on_channel_4_released()
{
//初始化設(shè)備列表,填入四個(gè)通道的值
devlist = (char *)malloc(4*sizeof(char));
devlist[0] = 1;
devlist[1] = 2;
devlist[2] = 3;
devlist[3] = 4;
//關(guān)閉原來的輸出并釋放資源
release_emgst();
//將參數(shù)傳入函數(shù)中初始化gstreamer,并開始輸出視頻數(shù)據(jù)
config_emgst(xwinid, 640, 480, devlist, 4);
}

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

添加庫操作界面

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

選擇庫文件

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

例程截圖

通過這種方式,英創(chuàng)公司希望能夠幫助客戶縮短開發(fā)周期,讓客戶可以專注于Qt程序的開發(fā),而不用花時(shí)間去學(xué)習(xí)并在代碼中設(shè)置gstreamer。對于例程感興趣的客戶可以和工程師聯(lián)系,索取相關(guān)代碼。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6081

    瀏覽量

    34942
收藏 人收藏

    評論

    相關(guān)推薦

    梯度科技入選2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案名單

    日前,工業(yè)和信息化部網(wǎng)絡(luò)安全產(chǎn)業(yè)發(fā)展中心(工業(yè)和信息化部信息中心)在天津舉辦2024信息技術(shù)應(yīng)用創(chuàng)新發(fā)展大會(huì)暨解決方案應(yīng)用推廣大會(huì)。會(huì)上正式
    的頭像 發(fā)表于 09-09 16:29 ?271次閱讀

    通道數(shù)據(jù)采集卡各通道不獨(dú)立的原因

    通道數(shù)據(jù)采集卡(Multi-channel Data Acquisition Card,簡稱MDA)是一種用于采集、存儲(chǔ)和處理多路信號的電子設(shè)備。它廣泛應(yīng)用于工業(yè)自動(dòng)化、科研、醫(yī)療、
    的頭像 發(fā)表于 07-02 09:12 ?363次閱讀

    通道數(shù)據(jù)采集儀的作用與用途

    通道數(shù)據(jù)采集儀是一種廣泛應(yīng)用于工業(yè)、科研、教育等領(lǐng)域的高性能數(shù)據(jù)采集設(shè)備。它能夠同時(shí)采集多個(gè)通道
    的頭像 發(fā)表于 07-02 09:10 ?281次閱讀

    通道數(shù)據(jù)采集儀怎么用的

    通道數(shù)據(jù)采集儀是一種廣泛應(yīng)用于工業(yè)、科研、教育等領(lǐng)域的高精度數(shù)據(jù)采集設(shè)備。它能夠同時(shí)采集多個(gè)通道
    的頭像 發(fā)表于 07-02 09:08 ?346次閱讀

    通道數(shù)據(jù)采集器的特點(diǎn)和功能有哪些

    通道數(shù)據(jù)采集器是一種廣泛應(yīng)用于工業(yè)自動(dòng)化、科研實(shí)驗(yàn)、環(huán)境監(jiān)測等領(lǐng)域的設(shè)備,它具有多個(gè)通道,可以同時(shí)采集多個(gè)信號,實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)
    的頭像 發(fā)表于 07-02 09:05 ?407次閱讀

    通道數(shù)據(jù)采集器能采集什么

    通道數(shù)據(jù)采集器是一種廣泛應(yīng)用于工業(yè)、科研、教育等領(lǐng)域的高精度數(shù)據(jù)采集設(shè)備。它能夠同時(shí)采集多個(gè)通道
    的頭像 發(fā)表于 07-02 09:02 ?412次閱讀

    通道數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)的意義

    通道數(shù)據(jù)采集系統(tǒng)(Multi-channel Data Acquisition System, 簡稱MDAS)是一種能夠同時(shí)采集、處理和存儲(chǔ)多個(gè)信號源數(shù)據(jù)的電子設(shè)備。這種系統(tǒng)在現(xiàn)代工
    的頭像 發(fā)表于 07-02 09:00 ?377次閱讀

    通道數(shù)據(jù)采集串?dāng)_問題怎么解決

    通道數(shù)據(jù)采集系統(tǒng)在現(xiàn)代工業(yè)、科研和醫(yī)療等領(lǐng)域中有著廣泛的應(yīng)用。然而,在通道數(shù)據(jù)采集過程中,串
    的頭像 發(fā)表于 07-02 08:58 ?489次閱讀

    通道數(shù)據(jù)采集器怎么看數(shù)據(jù)

    通道數(shù)據(jù)采集器是一種廣泛應(yīng)用于工業(yè)自動(dòng)化、科研實(shí)驗(yàn)、醫(yī)療設(shè)備等領(lǐng)域的設(shè)備,它可以同時(shí)采集多個(gè)通道的模擬信號或數(shù)字信號,并將
    的頭像 發(fā)表于 07-01 16:50 ?433次閱讀

    通道數(shù)據(jù)采集系統(tǒng)有哪些典型的配置方案?各有和特點(diǎn)?

    方案及其特點(diǎn)。 一、通道數(shù)據(jù)采集系統(tǒng)的基本概念 1.1 定義 通道數(shù)據(jù)
    的頭像 發(fā)表于 07-01 16:38 ?789次閱讀

    通道數(shù)據(jù)采集系統(tǒng)的轉(zhuǎn)換誤差怎么算

    通道數(shù)據(jù)采集系統(tǒng)是一種廣泛應(yīng)用于工業(yè)、科研、醫(yī)療等領(lǐng)域的高精度數(shù)據(jù)采集設(shè)備。它通過多個(gè)通道同時(shí)采集
    的頭像 發(fā)表于 07-01 16:36 ?405次閱讀

    通道數(shù)據(jù)采集系統(tǒng)的優(yōu)缺點(diǎn)

    通道數(shù)據(jù)采集系統(tǒng)是一種廣泛應(yīng)用于工業(yè)、科研、醫(yī)療等領(lǐng)域的技術(shù),它能夠同時(shí)采集多個(gè)通道的信號,實(shí)
    的頭像 發(fā)表于 07-01 15:58 ?545次閱讀

    龍芯中科三項(xiàng)信創(chuàng)方案入圍工信部2023年信息技術(shù)應(yīng)用創(chuàng)新應(yīng)用示范案例名單

    近日,工業(yè)和信息化部通報(bào)了2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案征集遴選結(jié)果,本次共評選出典型解決方案173個(gè)、應(yīng)用示范案例83個(gè)、單項(xiàng)創(chuàng)新案例64個(gè)。
    的頭像 發(fā)表于 03-07 16:45 ?676次閱讀
    龍芯中科三項(xiàng)信<b class='flag-5'>創(chuàng)</b><b class='flag-5'>方案</b>入圍工信部2023年<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新應(yīng)用示范案例名單

    TLT507-通道AD采集開發(fā)案例

    TLT507-通道AD采集開發(fā)案例
    的頭像 發(fā)表于 01-26 11:28 ?989次閱讀
    TLT507-<b class='flag-5'>多</b><b class='flag-5'>通道</b>AD<b class='flag-5'>采集</b>開發(fā)案例

    通道脈沖信號如何快速采集和存儲(chǔ)?

    通道脈沖信號的快速采集和存儲(chǔ),并探討各種常用的方法和技術(shù)。 首先,我們將討論通道脈沖信號采集
    的頭像 發(fā)表于 11-10 15:39 ?676次閱讀