當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 《物聯(lián)網(wǎng)技術(shù)》雜志
[導(dǎo)讀]摘要:針對傳統(tǒng)車載多媒體廣告機的局限性,提出了一種基于嵌入式Liunx與Qt/Embedded的車載多媒體廣告機的設(shè)計方案。該方案采用以ARM處理器S3C6410為核心的硬件平臺和以嵌入式Linux系統(tǒng)為核心的軟件平臺,并在此基礎(chǔ)上采用開放源代碼的圖形界面庫Qt開發(fā)廣告機界面,同時利用開源播放軟件MPlayer作為播放器。經(jīng)實驗驗證,該多媒體廣告機具有成本較低、界面友好、反應(yīng)靈敏等特點,并在跨平臺性、可擴展性等方面比傳統(tǒng)方案有顯著改善。

引言

隨著科學(xué)技術(shù)的發(fā)展,越來越多的多媒體廣告機出現(xiàn)在出租車中?,F(xiàn)有的出租車廣告機大多采用移動數(shù)字電視和數(shù)字存儲播放兩種方式。移動數(shù)字電視只能應(yīng)用在存在數(shù)字電視信號的地區(qū),在無信號或信號較弱的地區(qū)則無法播放,對于廣告的播出時段、播出內(nèi)容需要和廣電系統(tǒng)合作協(xié)商,導(dǎo)致效率低、成本高,而且播出的節(jié)目不能點播;數(shù)字存儲播放的方式需要將節(jié)目內(nèi)容先期進(jìn)行制作,然后將節(jié)目內(nèi)容刻錄成光盤或者存儲于播放設(shè)備的存儲器中,這種方式目前存在的缺點是節(jié)目更新較為困難、時效性較差,而且存在軟硬件成本較高的問題%

針對現(xiàn)有的車載廣告機存在的不足,本文提出了一種新型的車載多媒體廣告機的設(shè)計方案。采用嵌入式Linux系統(tǒng)和ARM處理器S3C6410分別構(gòu)建多媒體廣告機的軟硬件平臺,在此基礎(chǔ)上采用開放源代碼的圖形界面庫Qt/E設(shè)計廣告機的程序界面,在Qt設(shè)計的界面上顯示多媒體播放器MPlayer播放的視頻,結(jié)合FrameBuffer在視頻的上方和下方分別顯示Log。和字幕,最終完成應(yīng)用程序的開發(fā)。

1系統(tǒng)總體設(shè)計

車載廣告機的基本設(shè)計思想是在基于ARM的嵌入式平臺上完成多媒體文件的存儲、解析和處理,控制LCD模塊和音頻模塊完成多媒體廣告的播放,并采用Wi-Fi無線網(wǎng)絡(luò)完成多媒體廣告機系統(tǒng)中視頻文件的智能下載更新?;谇度胧杰?、硬件環(huán)境,車載廣告機系統(tǒng)的整體結(jié)構(gòu)如圖1所示:

基于嵌入式Linux的車載多媒體廣告機設(shè)計

2系統(tǒng)硬件設(shè)計

車載廣告機系統(tǒng)的硬件結(jié)構(gòu)圖如圖2所示。系統(tǒng)的核心處理器采用基于ARM1176JZF-S核的S3C6410芯片,其主頻最高可達(dá)到667MHz,內(nèi)部集成了強大的多媒體處理單元,帶有3D圖形硬件加速器,并支持2D圖形圖像的平滑縮放等操作,有利于為用戶提供高靈敏度的汽車狀態(tài)動態(tài)顯示;外接16GB的SD卡和2GBNANDFLASH,為多媒體文件的本地存儲提供了充足的硬件環(huán)境;顯示接口采用8寸TFT液晶顯示屏,處理器內(nèi)部集成的LCD控制器信號線經(jīng)過驅(qū)動電路后即可連接LCD模塊,為多媒體廣告的顯示提供了硬件平臺;外接觸摸屏,用戶可根據(jù)需要自主選擇喜愛的節(jié)目;外接音頻編解碼芯片CS42L50,為多媒體播放提供音頻支持;外接基于Marvell8686芯片的SDWi-Fi模塊,使廣告機終端能夠接入無線網(wǎng)絡(luò),連接到遠(yuǎn)端服務(wù)器,完成系統(tǒng)所需多媒體文件的智能下載更新。

基于嵌入式Linux的車載多媒體廣告機設(shè)計

3系統(tǒng)軟件設(shè)計

車載廣告機的軟件設(shè)計主要是開發(fā)基于嵌入式Linux系統(tǒng)的客戶端應(yīng)用程序。本系統(tǒng)采用嵌入式Linux作為操作系統(tǒng),在Linux平臺下編寫廣告機的驅(qū)動程序;利用Qt/Embedded作為圖形界面解決方案實現(xiàn)廣告機的圖形界面,在此界面上顯示Mplayer播放器播放的視頻。

該系統(tǒng)軟件的開發(fā)主要有4個內(nèi)容:開發(fā)平臺的搭建、編譯Qt/Embedded庫、視頻播放器MPlayer的移植和廣告機應(yīng)用程序的實現(xiàn)。

3.1嵌入式Linux系統(tǒng)開發(fā)平臺的搭建

為了開發(fā)滿足要求的應(yīng)用程序,本文采用的軟件開發(fā)環(huán)境是VmwareWorkstation7虛擬機和Fedora9操作系統(tǒng),在此環(huán)境中安裝交叉編譯器ARM-linux-gcc4.3.2,用來完成包含相關(guān)驅(qū)動程序的虛擬儀表系統(tǒng)內(nèi)核、QT庫和應(yīng)用程序的編譯;在Fedora9系統(tǒng)中安裝QtCreator軟件,用于完成虛擬儀表系統(tǒng)應(yīng)用程序的開發(fā);移植嵌入式設(shè)備的系統(tǒng)引導(dǎo)程序U-boot;編寫硬件平臺中音頻模塊、Wi-Fi模塊和SD卡等設(shè)備的驅(qū)動,然后裁剪編譯Linux2.6.29內(nèi)核并在其中加載已編譯的相關(guān)驅(qū)動[5],制作硬件平臺需要的根文件系統(tǒng)。

3.2編譯Qt/Embedded庫

Qt是一個跨平臺的C++圖形用戶界面應(yīng)用程序框架,其對象容易擴展,可移植性較好,支持多個GUI平臺的交互開發(fā)。Qt/EmbeddedLinux是為嵌入式Linux優(yōu)化過的Qt版本,被廣泛應(yīng)用于各種嵌入式產(chǎn)品和設(shè)備當(dāng)中,其實現(xiàn)結(jié)構(gòu)如圖3所示。為了減少系統(tǒng)內(nèi)存占用量、提高系統(tǒng)性能,可以對Qt/EmbeddedLinux進(jìn)行重新裁剪編譯,去掉不需要的特性。

下載tslib1.4.tar.gz,在搭建好的開發(fā)平臺內(nèi)解壓后執(zhí)行配置、編譯和安裝命令,編譯安裝Tslib庫,添加觸摸屏支持。然后通過./configure裁剪、配置Qt/Embedded庫。配置完成后采用make命令編譯,用makeinstall命令安裝Qt/EmbeddedLinux到指定的位置。

基于嵌入式Linux的車載多媒體廣告機設(shè)計

3.3移植視頻播放器MPlayer

MPlayer是一款開源的多媒體播放器,遵循GPL規(guī)范。該播放器可以在多種操作系統(tǒng)上運行。MPlayer自帶的音頻、視頻解碼器可以支持許多流行的音頻和視頻格式。相對于其他播放器,MPlayer運行過程中資源占用非常少,對系統(tǒng)硬件的配置要求比較低,故本系統(tǒng)采用MPlayer作為多媒體播放器。直接使用MPlayer作為播放器還可以節(jié)約開發(fā)成本,同時也增加了系統(tǒng)的可靠性[6]。

下載libmad后解壓,使用./configure配置libmad,然后分別使用make命令和makeinstall命令安裝libmad。下載解壓MPlayer源文件,使用./configure命令進(jìn)行配置,注意一定要添加一target=arm-linux,標(biāo)明為ARM平臺配置,然后使用make命令進(jìn)行編譯,使用makeinstall命令安裝至當(dāng)前目錄。生成的可執(zhí)行文件Mplayer即為MPlayer播放器,將其拷貝至開發(fā)板/bin目錄下,完成MPlayer的移植。

3.4設(shè)計廣告機應(yīng)用程序

3.4.1廣告機界面的實現(xiàn)

廣告機界面的實現(xiàn)較為簡單,只需要在屏幕的右側(cè)顯示一排可以點擊的圖形按鈕,左側(cè)用于廣告視頻的顯示。對于圖形按鈕的設(shè)計,需要首先準(zhǔn)備好每一個按鈕未點擊和點擊后的圖片素材并將他們添加到程序的資源文件advertise.qrc中,程序運行時會加載這些圖片到內(nèi)存中,然后在窗口的paintEvent()函數(shù)中進(jìn)行按鈕的繪制,在用戶點擊圖形按鈕時,在mousePressEvent()函數(shù)中處理按鈕的點擊事件;視頻采用全屏顯示,需要在main函數(shù)中,用showFullScreen()函數(shù)顯示窗口即可實現(xiàn)全屏;為了在視頻播放的同時顯示Log。和字幕,應(yīng)用程序使用了4個FrameBuffer,分別用于顯示Qt程序界面、MPlayer視頻圖像、Log。和字幕,實現(xiàn)四者的疊加顯示。

3.4.2實現(xiàn)視頻的播放

要實現(xiàn)廣告視頻文件在Qt窗口上播放,需要使用戶界面通過QProcess類啟動一個新程序來實現(xiàn)對MPlayer的控制,如圖4所示。QProcess類使應(yīng)用程序在Qt程序中調(diào)用另外一個進(jìn)程。其實現(xiàn)代碼如下:

mplayerProcess=newQProcess(this);//創(chuàng)建一個QProcess對象

connect(mplayerProcess,SIGNAL(finished(int,QProcess::ExitStatus)),this,SLOT(mplayerEnded(int,QProcess::ExitStatus)));//finished信號在MPlayer程序結(jié)束時發(fā)射,標(biāo)志著一個視頻已播放完成,用此信號可通知程序自動播放下一個視頻,實現(xiàn)視頻的循環(huán)播放

基于嵌入式Linux的車載多媒體廣告機設(shè)計

3.4.3界面與MPlayer的交互

MPlayer與Qt4程序之間使用管道方式進(jìn)行通信,QProcess類隱藏了具體的通信細(xì)節(jié),將新建立的進(jìn)程當(dāng)做主程序的一個I/O設(shè)備,因此需要使用QProcess類提供的read()/write()函數(shù)來調(diào)用這個進(jìn)程的標(biāo)準(zhǔn)輸入/輸出[7],如下所示:

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

當(dāng)QProcess啟動MPlayer后,應(yīng)用程序可以將控制命令寫入MPlayer的標(biāo)準(zhǔn)輸入,MPlayer從標(biāo)準(zhǔn)輸入讀到數(shù)據(jù)后會執(zhí)行相應(yīng)的功能。其實現(xiàn)代碼如下:

QStringListargs;

args<<v-framebuffer-indexv<<”1”;//MPlayer不支持將視頻顯示在Qt/E的串口上,而是直接顯示在FrameBuffer上,在這里結(jié)合多FrameBuffer特性,以及screenrect參數(shù),將視頻定位到Qt繪制的窗口的劃定區(qū)域上面

QStringscreenRect=QString("%1,%2,%3,%4").arg(m_videoWindowRect.left()).arg(m_videoWindowRect.top()).arg(m_videoWindowRect.width()).arg(m_videoWindowRect.height。);//計算顯示視頻的區(qū)域

args<<screenRect;//位置傳遞

args<<"-slave";//使用MPlayer的slave模式,在此模式下,MPlayer在運行過程中能夠接收用戶的輸入命令。

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

3.4.4視頻文件的更新

應(yīng)用程序通過廣告機內(nèi)置的無線網(wǎng)卡訪問遠(yuǎn)程服務(wù)器即可實現(xiàn)廣告視頻文件的更新。廣告機終端在系統(tǒng)開機運行時通過QThread類新建一個線程,通過無線網(wǎng)卡定期向遠(yuǎn)程服務(wù)器查詢是否需要更新視頻文件,在廣告機準(zhǔn)備好更新時,服務(wù)器通過無線網(wǎng)可將封裝后的視頻發(fā)送到無線局域網(wǎng)中去。接收端系統(tǒng)通過驅(qū)動程序接收數(shù)據(jù)包,進(jìn)行解封裝得到需要更新的視頻目錄和視頻數(shù)據(jù),終端則根據(jù)更新目錄進(jìn)行視頻文件的刪除或下載等操作。其實現(xiàn)代碼如下:

classDownLoad:publicQThread

{Q_OBJECTprotected:voidrun();//開機即開啟一個QTimer定時器,定時向遠(yuǎn)程服務(wù)器查詢是否需要更新視頻文件。

signals:voidupDates();//在需要進(jìn)行視頻更新時,以信號與槽(signals/slot)的方式,通知主程序進(jìn)行視頻文件的更新。

3.4.5畫面閃爍問題的解決

畫面的動態(tài)刷新顯示,會使屏幕出現(xiàn)閃爍。本設(shè)計釆用雙緩沖機制解決畫面閃爍的問題,將整個窗口部件在屏幕外的像素映射中繪制,然后把這個像素映射復(fù)制到顯示窗口中叫其實現(xiàn)代碼如下:

voidMainwidow::paintEvent(QPaintEvent*event)

{??????

QsizenewSize=rect.size().expandedTo(pixmap.size());//創(chuàng)建至少和所繪區(qū)域一樣大的繪圖緩沖

QPainterpainter(&pixmap,this);//創(chuàng)建操作像素映射的QPainter

Painter.translate.(-rect.x(),-rect.y());//對像素映射中繪制矩形的畫筆進(jìn)行坐標(biāo)轉(zhuǎn)換

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

4運行發(fā)布程序

將裁剪、編譯過的內(nèi)核與制作的帶QT庫的文件系統(tǒng)燒寫到開發(fā)板。在開發(fā)環(huán)境內(nèi)交叉編譯編寫的應(yīng)用程序,得到可執(zhí)行二進(jìn)制文件,將此文件移植到開發(fā)板,即可實現(xiàn)應(yīng)用程序的發(fā)布。重新開機,運行應(yīng)用程序即可啟動廣告機,其啟動后的畫面如圖5所示。

基于嵌入式Linux的車載多媒體廣告機設(shè)計

5結(jié)語

本文提出了一種新型的車載多媒體廣告機的設(shè)計方案,以ARM和嵌入式Linux為基礎(chǔ)平臺,通過定制移植QT和MPlayer并設(shè)計應(yīng)用程序?qū)崿F(xiàn)多媒體廣告機系統(tǒng)的設(shè)計。通過本設(shè)計方案設(shè)計的廣告機,采用開放源代碼軟件設(shè)計,使系統(tǒng)的成本降低,同時采用雙緩沖技術(shù)消除頁面閃爍,使其更具有市場競爭力;采用Qt插件的方式設(shè)計系統(tǒng)的各個模塊,增強了系統(tǒng)的可擴展性和可定制性;通過Wi-Fi與服務(wù)器交互實現(xiàn)視頻文件的更新,解決了大批量設(shè)備同時進(jìn)行大容量視頻數(shù)據(jù)更新的問題,提高了更新速度。經(jīng)實驗測試,該系統(tǒng)所有功能模塊都能正常運行,達(dá)到了預(yù)期的效果,隨著信息化的發(fā)展,有著廣闊的前景。

20211120_6197d6ce9384e__基于嵌入式Linux的車載多媒體廣告機設(shè)計

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉