0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术Linux主板多通道视频采集方案简介

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-02-12 11:00 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

英创公司推出的ESM7100主板搭载了I.MX7DL处理器,这款处理器是双核Cortex-A7架构,并且主频达到1GHz,不仅有着强劲的处理性能,还继承了Cortext-A7的低功耗特性,非常适用于工业应用。进一步,ESM7100的还配置高速PCIe接口,使其可满足工业视频监控对高速数据采集的需求。本文主要介绍基于英创公司ESM7100的多通道视频采集应用方案。

ETA6869模块是英创公司开发的具有标准mini PCIe尺寸,最多能够支持8通道视频采集模块,核心芯片为视频解码芯片tw6869。ETA6869模块通过PCIe×1接口与ESM7100相连接,保证了数据的高速传输。标准的mini-PCIe尺寸模块的设计,可以让模块方便的嵌入在底板上,如下:

ESM7100主板已经预装了ETA6869模块的驱动,上电后驱动会自动加载,成功加载后在/dev目录下会生成video节点,通过操作video节点,就能够获取视频数据,通过ls命令就能够查看设备节点,如下图,/dev/vidoe0为ESM7100主板的显示输出设备节点,系统显示服务程序会调用这个设备节点,客户应当避免直接操作它,/dev/video1~/dev/video8就是生成的视频输入设备节点,分别代表视频输入的通道1-通道8:

video节点

在软件开发方面,ESM7100的文件系统中已经集成了gstreamer工具,这是一种跨平台的多媒体框架工具,而整个框架是基于模块化设计的,在框架中将提供不同功能的模块插件集合起来,就能够实现所需求的多媒体应用功能。关于gstreamer的资料在官网中有非常详细的文档介绍以及例程参考,这里就不再赘述,有兴趣的客户可以查看:https://gstreamer.freedesktop.org/documentation/index.html?gi-language=c了解详情。通过gstreamer可以方便快捷的处理视频数据,同时ESM7100板载了Qt5.8,能够使用Qt实现界面的设计,然后与gstreamer配合,让gstreamer将视频数据输出到Qt窗口控件上,采用这种方法就能够让整个多通道视频采集方案快速实现。

考虑到部分客户可能对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);
/**
* 配置gstreamer,并显示到指定Qt窗口
*
* 函数会配置gstreamer,显示多个通道的视频到xwinid所指定的窗口,窗口的大小通过
* 参数width和height来确定,而视频的设备节点由指针devlist传入,listsize指定同时显示
* 的通道数量
*
* 参数说明:
* xwinid:Qt窗口的id号,每一个窗口类中都包含这个成员变量。
* width:显示视频数据所使用的窗口控件的宽度,单位pixel
* height:显示视频数据所使用的窗口控件的高度,单位pixel
*devlist:指向设备列表的指针,通常是一个包含设备号的数组,比如需要显示
* /dev/video1和/dev/video2,那么devlist就应该指向一个长度为2的数组,其中
* devlist[0]=1,devlist[1]=2
* listsize:显示的视频通道数。支持1,2,4,6,8这五个值,函数会按照固定模式对显
* 示进行排列
*
* 返回值说明:
* 0表示正常启动gstreamer
* -1 表示填入参数出现错误,启动gstreamer失败
*
*/
intconfig_emgst(unsignedintxwinid, intwidth,intheight, char *devlist, intlistsize);
/**
* 关闭gstreamer,释放资源
*
* 函数会关闭gstreamer输出,并释放相关资源
*
* 返回值说明:
* 无返回值
*
*/
voidrelease_emgst(void);

init_emgst函数进行gstreamer的初始化,在启动gstreamer功能之前需要调用一次,客户配合Qt使用时在main函数中调用即可:

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

config_emgst函数会配置并启动gstreamer,客户只要得到用来显示视频的窗口控件的id就可以了,在每一个Qt窗口控件类中都有对应的成员变量,可以很简单的获取到。config_emgst函数会根据width和height的值自动分配显示区域。通过devlist可以设置需要操作的设备节点索引号,listsize指定同时显示的通道数,支持的值为1、2、4、6、8,显示的方式如下图:

视频数据显示排列方式

函数调用后gstreamer会将对应通道数的视频显示在指定的Qt窗口控件中,每一个区域所显示的视频数据是通过指针devlist指定的,下面是部分参考代码,将graphicsView控件的id传给gstreamer,并显示/dev/video1的数据:

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//初始化设备列表
devlist = (char*)malloc(sizeof(char));
devlist[0] = 1;
//获取窗口控件id,并赋值给成员变量xwinid
xwinid = ui->graphicsView->winId();
//将参数传入函数中初始化gstreamer,并开始输出视频数据
config_emgst(xwinid, 640, 480, devlist, 1);
}

release_emgst函数会停止gstreamer输出,并释放资源,在程序退出或者需要切换显示的时候调用,下面的代码是通过检测Qt按钮控件的点击事件,实现切换显示通道数:

voidMainWindow::on_channel_4_released()
{
//初始化设备列表,填入四个通道的值
devlist = (char *)malloc(4*sizeof(char));
devlist[0] = 1;
devlist[1] = 2;
devlist[2] = 3;
devlist[3] = 4;
//关闭原来的输出并释放资源
release_emgst();
//将参数传入函数中初始化gstreamer,并开始输出视频数据
config_emgst(xwinid, 640, 480, devlist, 4);
}

库文件libemgst.so已经预装在ESM7100主板的文件系统中了,客户不需要针对主板再做任何设置。在开发程序的时候,Qt工程中需要将英创公司提供的emgst.h头文件和libemgst.so库文件添加进去。头文件添加的方法十分简单,增加一个新的头文件即可。关于外部库的添加,Qt的开发工具QtCreator提供了非常简便的方法,客户只需要将libemgst.so拷贝到工程目录下,然后在QtCreator中的项目栏用鼠标右键单击工程,选择添加库(外部库),如下图:

添加库操作界面

选择外部库后,点击下一步,按照下图设置,在库文件一栏中选择到工程下的libemgst.so文件,如下图:

选择库文件

这样就完成了外部库的设置,客户可以在代码中调用libemgst.so提供的API函数了。英创公司提供了一个通过按钮切换显示视频通道数的例程,效果如下:

例程截图

通过这种方式,英创公司希望能够帮助客户缩短开发周期,让客户可以专注于Qt程序的开发,而不用花时间去学习并在代码中设置gstreamer。对于例程感兴趣的客户可以和工程师联系,索取相关代码。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6107

    浏览量

    36933
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    KS-PXIe638 型 8 通道视频采集板:高清同步采集,专业场景 “性能标杆”

    在航空航天的数据记录、工业测控的实时监测、交通控制的画面留存等专业场景中,通道、高保真的音视频采集是核心诉求 ——KS-PXIe638 型 8
    的头像 发表于 11-26 13:24 78次阅读
    KS-PXIe638 型 8 <b class='flag-5'>通道</b>音<b class='flag-5'>视频</b><b class='flag-5'>采集</b>板:高清同步<b class='flag-5'>采集</b>,专业场景 “性能标杆”

    OBOO鸥柏|信触摸一体机兆芯115寸Linux国产系统技术智造

    BOO鸥柏信触摸一体机:兆芯115寸Linux智造新标杆在信息技术应用创新浪潮中,【OBOO鸥柏】推出的信触摸一体机以其卓越性能和智能化设计,成为行业数字化转型的重要工具。这款搭载
    的头像 发表于 11-16 15:44 442次阅读
    OBOO鸥柏|信<b class='flag-5'>创</b>触摸一体机兆芯115寸<b class='flag-5'>Linux</b>国产系统<b class='flag-5'>技术</b>智造

    智慧新核心,龙芯主板助力信体系再升级

    信息技术飞速发展的当下,信体系的自主可控与创新升级已成为国家战略层面的关键任务。作为信产业发展的重要基础硬件支撑,国产工控主板正发挥着日益重要的作用。
    的头像 发表于 08-11 09:14 563次阅读

    LabVIEW-通道数据采集源程序资料

    使用NI-LabVIEW编写的通道数据采集程序,可供参考
    发表于 08-09 16:09 2次下载

    易华录入选国家级信息技术应用创新典型解决方案

    近日,工业和信息化部网络安全产业发展中心(工业和信息化部信息中心)公布了“2024年信息技术应用创新解决方案”评选结果。易华录申报的“基于节
    的头像 发表于 08-07 15:35 1238次阅读

    佛瑞亚如何通过信息技术推动业务增长

    在数字化、信息化的浪潮下,信息技术已经不仅是后台工具,更成为驱动企业发展的关键力量。本期Women Inspiring Mobility,我们采访了佛瑞亚中国区信息技术总监马瑛,了解她和团队如何将
    的头像 发表于 07-29 14:00 713次阅读

    飞腾主板为信产业发展提高硬实力

    信息技术飞速发展的当下,信产业已成为我国实现科技自立自强、保障国家信息安全的关键领域。信,即信息技术应用创新,其核心目标是实现
    的头像 发表于 07-22 18:20 554次阅读

    科普|信是什么?一文读懂“信息技术应用创新”战略

    什么是信?信,即“信息技术应用创新”,是国家推动IT系统自主可控、安全可控的重要战略工程。它不仅是技术层面的创新,更承载着保障国家网络安全、推动产业升级和实现数字主权的重任。简单来
    的头像 发表于 06-13 10:06 6266次阅读
    科普|信<b class='flag-5'>创</b>是什么?一文读懂“<b class='flag-5'>信息技术</b>应用创新”战略

    浪潮下,国产主板有什么新的发展机遇?

    信息技术应用创新浪潮的推动下,国产主板迎来了诸多新的发展机遇。信产业旨在实现信息技术领域的自主可控,这一战略目标为国产主板的发展提供了广
    的头像 发表于 05-09 09:24 564次阅读
    信<b class='flag-5'>创</b>浪潮下,国产<b class='flag-5'>主板</b>有什么新的发展机遇?

    国产8/16通道ADC用于通道精密采集,替换AD4115

    国产8/16通道ADC用于通道精密采集,替换AD4115
    的头像 发表于 03-31 10:22 1069次阅读
    国产8/16<b class='flag-5'>通道</b>ADC用于<b class='flag-5'>多</b><b class='flag-5'>通道</b>精密<b class='flag-5'>采集</b>,替换AD4115

    中科曙光南京研究院方案入选江苏省信息技术创新优秀解决方案

    近日,中科曙光南京研究院传来喜讯,其精心申报的《高端计算与分布式存储一体化解决方案》(以下简称“方案”)成功脱颖而出,荣耀入选“2024年江苏省信息技术应用创新优秀解决方案”名单。 这
    的头像 发表于 01-08 15:41 923次阅读

    中科曙光入选2024年江苏省信息技术应用创新优秀解决方案名单

    近日,中科曙光南京研究院申报的《高端计算与分布式存储一体化解决方案》(下称“方案”),成功入选“2024年江苏省信息技术应用创新优秀解决方案”名单。
    的头像 发表于 01-08 09:41 865次阅读

    飞腾助力首届教育信息技术应用创新大赛圆满落幕

    近日,由中国教育技术协会主办,教育部教育管理信息中心教育信实验室、公安部第三研究所、中国电子工业标准化技术协会信工委会支持,北京航空航天
    的头像 发表于 12-24 09:57 766次阅读

    深控信息技术公司:不需要点表的工业网关数据采集方案

    深控信息技术公司的 “不需要点表的工业网关” 数据采集方案,颠覆了传统依赖点表进行数据采集的模式。传统方式往往需要大量的人力和时间去配置点表,且在面对复杂多变的工业环境和设备时,容易出
    的头像 发表于 12-16 15:29 728次阅读
    深控<b class='flag-5'>信息技术</b>公司:不需要点表的工业网关数据<b class='flag-5'>采集</b><b class='flag-5'>方案</b>

    FPGA的通道数据采集传输系统

    一、系统总体方案设计 为了满足油田增压站对数据采集的需求,我们设计了一套基于FPGA的通道数据采集与传输系统。系统以FPGA作为主控制器,
    的头像 发表于 12-09 10:45 1198次阅读
    FPGA的<b class='flag-5'>多</b><b class='flag-5'>通道</b>数据<b class='flag-5'>采集</b>传输系统