当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘要:针对传统车载多媒体广告机的局限性,提出了一种基于嵌入式Liunx与Qt/Embedded的车载多媒体广告机的设计方案。该方案采用以ARM处理器S3C6410为核心的硬件平台和以嵌入式Linux系统为核心的软件平台,并在此基础上采用开放源代码的图形界面库Qt开发广告机界面,同时利用开源播放软件MPlayer作为播放器。经实验验证,该多媒体广告机具有成本较低、界面友好、反应灵敏等特点,并在跨平台性、可扩展性等方面比传统方案有显著改善。

引言

随着科学技术的发展,越来越多的多媒体广告机出现在出租车中。现有的出租车广告机大多采用移动数字电视和数字存储播放两种方式。移动数字电视只能应用在存在数字电视信号的地区,在无信号或信号较弱的地区则无法播放,对于广告的播出时段、播出内容需要和广电系统合作协商,导致效率低、成本高,而且播出的节目不能点播;数字存储播放的方式需要将节目内容先期进行制作,然后将节目内容刻录成光盘或者存储于播放设备的存储器中,这种方式目前存在的缺点是节目更新较为困难、时效性较差,而且存在软硬件成本较高的问题%

针对现有的车载广告机存在的不足,本文提出了一种新型的车载多媒体广告机的设计方案。采用嵌入式Linux系统和ARM处理器S3C6410分别构建多媒体广告机的软硬件平台,在此基础上采用开放源代码的图形界面库Qt/E设计广告机的程序界面,在Qt设计的界面上显示多媒体播放器MPlayer播放的视频,结合FrameBuffer在视频的上方和下方分别显示Log。和字幕,最终完成应用程序的开发。

1系统总体设计

车载广告机的基本设计思想是在基于ARM的嵌入式平台上完成多媒体文件的存储、解析和处理,控制LCD模块和音频模块完成多媒体广告的播放,并采用Wi-Fi无线网络完成多媒体广告机系统中视频文件的智能下载更新。基于嵌入式软、硬件环境,车载广告机系统的整体结构如图1所示:

基于嵌入式Linux的车载多媒体广告机设计

2系统硬件设计

车载广告机系统的硬件结构图如图2所示。系统的核心处理器采用基于ARM1176JZF-S核的S3C6410芯片,其主频最高可达到667MHz,内部集成了强大的多媒体处理单元,带有3D图形硬件加速器,并支持2D图形图像的平滑缩放等操作,有利于为用户提供高灵敏度的汽车状态动态显示;外接16GB的SD卡和2GBNANDFLASH,为多媒体文件的本地存储提供了充足的硬件环境;显示接口采用8寸TFT液晶显示屏,处理器内部集成的LCD控制器信号线经过驱动电路后即可连接LCD模块,为多媒体广告的显示提供了硬件平台;外接触摸屏,用户可根据需要自主选择喜爱的节目;外接音频编解码芯片CS42L50,为多媒体播放提供音频支持;外接基于Marvell8686芯片的SDWi-Fi模块,使广告机终端能够接入无线网络,连接到远端服务器,完成系统所需多媒体文件的智能下载更新。

基于嵌入式Linux的车载多媒体广告机设计

3系统软件设计

车载广告机的软件设计主要是开发基于嵌入式Linux系统的客户端应用程序。本系统采用嵌入式Linux作为操作系统,在Linux平台下编写广告机的驱动程序;利用Qt/Embedded作为图形界面解决方案实现广告机的图形界面,在此界面上显示Mplayer播放器播放的视频。

该系统软件的开发主要有4个内容:开发平台的搭建、编译Qt/Embedded库、视频播放器MPlayer的移植和广告机应用程序的实现。

3.1嵌入式Linux系统开发平台的搭建

为了开发满足要求的应用程序,本文采用的软件开发环境是VmwareWorkstation7虚拟机和Fedora9操作系统,在此环境中安装交叉编译器ARM-linux-gcc4.3.2,用来完成包含相关驱动程序的虚拟仪表系统内核、QT库和应用程序的编译;在Fedora9系统中安装QtCreator软件,用于完成虚拟仪表系统应用程序的开发;移植嵌入式设备的系统引导程序U-boot;编写硬件平台中音频模块、Wi-Fi模块和SD卡等设备的驱动,然后裁剪编译Linux2.6.29内核并在其中加载已编译的相关驱动[5],制作硬件平台需要的根文件系统。

3.2编译Qt/Embedded库

Qt是一个跨平台的C++图形用户界面应用程序框架,其对象容易扩展,可移植性较好,支持多个GUI平台的交互开发。Qt/EmbeddedLinux是为嵌入式Linux优化过的Qt版本,被广泛应用于各种嵌入式产品和设备当中,其实现结构如图3所示。为了减少系统内存占用量、提高系统性能,可以对Qt/EmbeddedLinux进行重新裁剪编译,去掉不需要的特性。

下载tslib1.4.tar.gz,在搭建好的开发平台内解压后执行配置、编译和安装命令,编译安装Tslib库,添加触摸屏支持。然后通过./configure裁剪、配置Qt/Embedded库。配置完成后采用make命令编译,用makeinstall命令安装Qt/EmbeddedLinux到指定的位置。

基于嵌入式Linux的车载多媒体广告机设计

3.3移植视频播放器MPlayer

MPlayer是一款开源的多媒体播放器,遵循GPL规范。该播放器可以在多种操作系统上运行。MPlayer自带的音频、视频解码器可以支持许多流行的音频和视频格式。相对于其他播放器,MPlayer运行过程中资源占用非常少,对系统硬件的配置要求比较低,故本系统采用MPlayer作为多媒体播放器。直接使用MPlayer作为播放器还可以节约开发成本,同时也增加了系统的可靠性[6]。

下载libmad后解压,使用./configure配置libmad,然后分别使用make命令和makeinstall命令安装libmad。下载解压MPlayer源文件,使用./configure命令进行配置,注意一定要添加一target=arm-linux,标明为ARM平台配置,然后使用make命令进行编译,使用makeinstall命令安装至当前目录。生成的可执行文件Mplayer即为MPlayer播放器,将其拷贝至开发板/bin目录下,完成MPlayer的移植。

3.4设计广告机应用程序

3.4.1广告机界面的实现

广告机界面的实现较为简单,只需要在屏幕的右侧显示一排可以点击的图形按钮,左侧用于广告视频的显示。对于图形按钮的设计,需要首先准备好每一个按钮未点击和点击后的图片素材并将他们添加到程序的资源文件advertise.qrc中,程序运行时会加载这些图片到内存中,然后在窗口的paintEvent()函数中进行按钮的绘制,在用户点击图形按钮时,在mousePressEvent()函数中处理按钮的点击事件;视频采用全屏显示,需要在main函数中,用showFullScreen()函数显示窗口即可实现全屏;为了在视频播放的同时显示Log。和字幕,应用程序使用了4个FrameBuffer,分别用于显示Qt程序界面、MPlayer视频图像、Log。和字幕,实现四者的叠加显示。

3.4.2实现视频的播放

要实现广告视频文件在Qt窗口上播放,需要使用户界面通过QProcess类启动一个新程序来实现对MPlayer的控制,如图4所示。QProcess类使应用程序在Qt程序中调用另外一个进程。其实现代码如下:

mplayerProcess=newQProcess(this);//创建一个QProcess对象

connect(mplayerProcess,SIGNAL(finished(int,QProcess::ExitStatus)),this,SLOT(mplayerEnded(int,QProcess::ExitStatus)));//finished信号在MPlayer程序结束时发射,标志着一个视频已播放完成,用此信号可通知程序自动播放下一个视频,实现视频的循环播放

基于嵌入式Linux的车载多媒体广告机设计

3.4.3界面与MPlayer的交互

MPlayer与Qt4程序之间使用管道方式进行通信,QProcess类隐藏了具体的通信细节,将新建立的进程当做主程序的一个I/O设备,因此需要使用QProcess类提供的read()/write()函数来调用这个进程的标准输入/输出[7],如下所示:

mplayerProcess->write(“quit\nv);//通知MPlayer退出

当QProcess启动MPlayer后,应用程序可以将控制命令写入MPlayer的标准输入,MPlayer从标准输入读到数据后会执行相应的功能。其实现代码如下:

QStringListargs;

args<<v-framebuffer-indexv<<”1”;//MPlayer不支持将视频显示在Qt/E的串口上,而是直接显示在FrameBuffer上,在这里结合多FrameBuffer特性,以及screenrect参数,将视频定位到Qt绘制的窗口的划定区域上面

QStringscreenRect=QString("%1,%2,%3,%4").arg(m_videoWindowRect.left()).arg(m_videoWindowRect.top()).arg(m_videoWindowRect.width()).arg(m_videoWindowRect.height。);//计算显示视频的区域

args<<screenRect;//位置传递

args<<"-slave";//使用MPlayer的slave模式,在此模式下,MPlayer在运行过程中能够接收用户的输入命令。

m_mplayerProcess->start(MPLAYER_PATH,args);//写入命令

3.4.4视频文件的更新

应用程序通过广告机内置的无线网卡访问远程服务器即可实现广告视频文件的更新。广告机终端在系统开机运行时通过QThread类新建一个线程,通过无线网卡定期向远程服务器查询是否需要更新视频文件,在广告机准备好更新时,服务器通过无线网可将封装后的视频发送到无线局域网中去。接收端系统通过驱动程序接收数据包,进行解封装得到需要更新的视频目录和视频数据,终端则根据更新目录进行视频文件的删除或下载等操作。其实现代码如下:

classDownLoad:publicQThread

{Q_OBJECTprotected:voidrun();//开机即开启一个QTimer定时器,定时向远程服务器查询是否需要更新视频文件。

signals:voidupDates();//在需要进行视频更新时,以信号与槽(signals/slot)的方式,通知主程序进行视频文件的更新。

3.4.5画面闪烁问题的解决

画面的动态刷新显示,会使屏幕出现闪烁。本设计釆用双缓冲机制解决画面闪烁的问题,将整个窗口部件在屏幕外的像素映射中绘制,然后把这个像素映射复制到显示窗口中叫其实现代码如下:

voidMainwidow::paintEvent(QPaintEvent*event)

{••••••

QsizenewSize=rect.size().expandedTo(pixmap.size());//创建至少和所绘区域一样大的绘图缓冲

QPainterpainter(&pixmap,this);//创建操作像素映射的QPainter

Painter.translate.(-rect.x(),-rect.y());//对像素映射中绘制矩形的画笔进行坐标转换

bitBlt(this,rect.x(),rect.y(),&pixmap,0,0,rect.width(),rect.height());//利用bitBlt()把像素映射复制到显示窗口部件上}

4运行发布程序

将裁剪、编译过的内核与制作的带QT库的文件系统烧写到开发板。在开发环境内交叉编译编写的应用程序,得到可执行二进制文件,将此文件移植到开发板,即可实现应用程序的发布。重新开机,运行应用程序即可启动广告机,其启动后的画面如图5所示。

基于嵌入式Linux的车载多媒体广告机设计

5结语

本文提出了一种新型的车载多媒体广告机的设计方案,以ARM和嵌入式Linux为基础平台,通过定制移植QT和MPlayer并设计应用程序实现多媒体广告机系统的设计。通过本设计方案设计的广告机,采用开放源代码软件设计,使系统的成本降低,同时采用双缓冲技术消除页面闪烁,使其更具有市场竞争力;采用Qt插件的方式设计系统的各个模块,增强了系统的可扩展性和可定制性;通过Wi-Fi与服务器交互实现视频文件的更新,解决了大批量设备同时进行大容量视频数据更新的问题,提高了更新速度。经实验测试,该系统所有功能模块都能正常运行,达到了预期的效果,随着信息化的发展,有着广阔的前景。

20211120_6197d6ce9384e__基于嵌入式Linux的车载多媒体广告机设计

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭