當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]Linux平臺在網(wǎng)絡(luò)廣告機設(shè)計中應(yīng)用

     網(wǎng)絡(luò)廣告機俗稱DIGItal signage system,是在網(wǎng)絡(luò)信息化飛速發(fā)展的時代背景下產(chǎn)生的一種新型網(wǎng)絡(luò)多媒體信息發(fā)布系統(tǒng)。基于這種系統(tǒng),用戶可以采用多種方式于公共顯示終端上發(fā)布公共信息內(nèi)容。目前,數(shù)字化、網(wǎng)絡(luò)化、信息化的多媒體網(wǎng)絡(luò)廣告機成為傳媒市場的一大亮點,然而單機版的廣告機以及單一的媒體發(fā)布形式已經(jīng)難以滿足日益增長的市場需求,國內(nèi)外正在積極投入基于多種媒體形式和多功能交互型網(wǎng)絡(luò)廣告機的研究。本文利用Linux嵌入式系統(tǒng)設(shè)計的優(yōu)越性能,使用廣大Linux系統(tǒng)支持的開源軟件和工具集,構(gòu)建了成本低、功能健全和網(wǎng)絡(luò)分布靈活的網(wǎng)絡(luò)媒體廣告機系統(tǒng)。

  1  系統(tǒng)概述

  如圖1所示,整個系統(tǒng)大體分為廣告機監(jiān)控終端、服務(wù)器控制中心、廣告機顯示終端3個部分。監(jiān)控終端通過Web瀏覽器控制頁面接收管理員輸入的控制命令,經(jīng)過網(wǎng)絡(luò)路由向服務(wù)器控制中心提交表單。服務(wù)器控制中心根據(jù)監(jiān)控終端提交的不同表單類別調(diào)用對應(yīng)的CGI例程來啟動相應(yīng)的Socket服務(wù)進程,建立與開發(fā)板Socket*服務(wù)進程之間的網(wǎng)絡(luò)通信,同時傳遞對應(yīng)的控制命令和信息。廣告機顯示終端解析相應(yīng)的控制命令和信息,來控制顯示終端設(shè)備上的媒體信息播放形式。



圖1  系統(tǒng)原理圖

  1.1  硬件環(huán)境

  廣告機監(jiān)控終端和服務(wù)器控制中心的設(shè)備為普通PC機。廣告機顯示終端采用的是芯勝嵌入式VT8430開發(fā)板。該開發(fā)板的處理器是芯晟科技推出的數(shù)字音視頻多標(biāo)準(zhǔn)多媒體處理芯片CSM1200。該芯片采用ARM9內(nèi)核,支持MPEG2、H.264、AVS的高清和標(biāo)清解碼/輸出,視頻輸出支持PAL/NTSC/480p/576p/720p/1080i。同時,CSM1200是一個有著豐富的外圍設(shè)備和強大媒體能力的嵌入式平臺SoC,可以靈活地選擇多種LCD或者其他顯示設(shè)備,作為廣告機信息發(fā)布節(jié)點的媒體播放設(shè)備。

  1.2  軟件環(huán)境

  監(jiān)控終端和服務(wù)器控制中心的采用Linux系統(tǒng)平臺。監(jiān)控終端只需能夠提供正常的Web頁面瀏覽功能便可以借助瀏覽器實現(xiàn)信息的交互。服務(wù)器控制中心和顯示終端是多媒體信息發(fā)布的關(guān)鍵的部分,需要配置相關(guān)的環(huán)境如下:

 ?、?構(gòu)建CGI模塊。CGI用來設(shè)計基于Web瀏覽器的B/S(Browser/Server)系統(tǒng)架構(gòu),可以在無客戶端(client)的情況下,廣泛地使用Web瀏覽器提供的按鈕、輸入框、字體和顏色等界面元素。通過不同平臺瀏覽器監(jiān)控終端遞交的表單就可以控制信息的交互。在官網(wǎng)下載源碼包libcgi?1.0.tar.gz后,解壓、編譯和安裝即可。

 ?、?創(chuàng)建和配置httpd服務(wù)。官網(wǎng)下載httpd?2.2.4.tar.gz,解壓、配置、編譯和安裝后,設(shè)置相應(yīng)CGI程序以及html服務(wù)路徑和目錄,以提供Web瀏覽器監(jiān)控端不同的控制頁面目錄和CGI例程集存儲目錄。

 ?、?配置數(shù)據(jù)庫。安裝Sqlite3數(shù)據(jù)庫來提供對于各種媒體信息的查詢、插入和刪除等控制操作。SQLite是存儲在單一磁盤文件中的一個完整的數(shù)據(jù)系統(tǒng),尤其適合于嵌入式系統(tǒng)設(shè)計。在Ubuntu10.04服務(wù)器系統(tǒng)平臺上,使用aptitude安裝libsqlite3?0、libsqlite3?dev、libsqlite3和libsqlite3?doc開源軟件包即可。

 ?、?定制顯示終端Linux系統(tǒng)。顯示系統(tǒng)采用基于ARM9的CSM1200處理芯片,因此使用arm?9tdmi?linux?gun 交叉編譯工具,基于Linux2.6.27內(nèi)核源碼包定制針對顯示開發(fā)板環(huán)境平臺的Linux操作系統(tǒng),詳見參考文獻[1]。編譯好內(nèi)核之后進行uboot的燒寫、根文件系統(tǒng)的制作,并設(shè)置相應(yīng)的啟動方式來加載制作的Linux內(nèi)核。詳細的步驟見參考文獻[2]。[!--empirenews.page--]

 ?、?搭建顯示終端Qt環(huán)境。顯示終端通過Qt圖形界面播放各種媒體信息,首先獲取Qt開源軟件包qtopia?core?opensource?src?4.2.2.tar.gz,解壓后設(shè)置arm?9tdmi?linux?gun為編譯器環(huán)境,編譯安裝Qt軟件包后,拷貝所需資源到開發(fā)板文件系統(tǒng)。

  上述環(huán)境搭建的大部分內(nèi)容都可以從相應(yīng)的官網(wǎng)獲取開源源碼包和詳細的配置安裝信息。

  2  系統(tǒng)功能模塊設(shè)計

  系統(tǒng)功能模塊原理圖如圖2所示。監(jiān)控終端由Qt控制頁面、Mplayer控制頁面和文件更新控制頁面組成。在不同的監(jiān)控控制頁面觸發(fā)相應(yīng)的控制操作,將通過Web功能訪問服務(wù)器控制中心并向服務(wù)器遞交不同的表單??刂浦行闹黧w部分由服務(wù)器Web httpd 站點、CGI控制模塊、數(shù)據(jù)庫Sqlite3和TCP Socket Client 端組成。根據(jù)監(jiān)控終端遞交的不同的表單,相應(yīng)的CGI控制程序?qū)?zhí)行,CGI程序進行的相應(yīng)的錄入、刪除和更新Sqlite3數(shù)據(jù)庫操作,同時調(diào)用并開啟對應(yīng)的Socket Client 進程,將對應(yīng)的控制命令和數(shù)據(jù)庫信息通過網(wǎng)絡(luò)Socket 遞交到顯示終端TCP Socket Server *服務(wù)器。顯示終端的TCP Socket Server *接收TCP Client 端傳來的控制命令,通過解析控制命令的類別,將空控制命令和相關(guān)的信息寫入到Qt本地或者Mplayer 本地套接字服務(wù)器,并存儲在本地Linux 文件系統(tǒng)中。Mplayer 播放器和Qt 播放程序讀取文件系統(tǒng)中各自本地套接字的控制信息,調(diào)用相應(yīng)的音視頻驅(qū)動程序來控制音視頻文件在Qt界面和Mplayer 端的顯示和播放。



圖2  系統(tǒng)功能模塊原理圖

  3  關(guān)鍵算法設(shè)計

  3.1  數(shù)據(jù)庫設(shè)計

  根據(jù)廣告機監(jiān)控終端所監(jiān)控媒體種類的不同,使用Sqlite3 數(shù)據(jù)庫維護媒體視頻播放、圖片背景和Qt字幕的信息。數(shù)據(jù)庫原理見參考文獻[3]。對于廣告機監(jiān)控管理員以及管理者的身份,需要設(shè)計管理者的ID、登錄密碼和對應(yīng)的用戶名信息,以便對廣告機的監(jiān)控和管理。就視頻和圖片媒體而言,都涉及對相應(yīng)媒體對象的插入、刪除、更新和播放順序等控制操作,因此分別設(shè)置ID、文件名、加入時間和排序序號來進行相應(yīng)的維護和控制管理。對應(yīng)的數(shù)據(jù)庫設(shè)計原理圖如圖3所示。



圖3  數(shù)據(jù)庫設(shè)計原理圖[!--empirenews.page--]

  3.2  廣告機顯示終端

  廣告機顯示終端的Qt圖形界面原理如圖4所示。Qt界面的設(shè)計原理見參考文獻。開發(fā)板通電之后,主程序程序開始執(zhí)行,Mplayer媒體播放器讀取存儲在開發(fā)板上的視頻文件進行循環(huán)播放,同時將*自己的本地套接字。當(dāng)網(wǎng)絡(luò)通信模塊將控制終端傳來的控制命令寫到Mplayer播放程序的本地套接字之后,Mplayer將根據(jù)控制命令執(zhí)行相應(yīng)的響應(yīng),如暫停、播放下一首、重頭開始播放等。Qt圖形界面程序開始執(zhí)行時,先讀取本地圖片文件和文本文件,進行循環(huán)播放。同時,Qt圖形界面程序的*命令線程將*Qt圖形界面的本地套接字。當(dāng)接到控制命令時,Qt圖形界面程序?qū)?zhí)行相應(yīng)的操作,如關(guān)閉、打開、更新滾動字幕等。



圖4  Qt圖形界面原理圖

  本地套接字與本地TCP Socket Server 端進行通信,并將相關(guān)控制命令最終上傳,而本地TCP Socket Server命令則是來源于控制中心TCP Socket Client 端對控制命令的上傳。本地Socket Server套接字的部分控制代碼如下:

  while(1){//*、解析、接收來自服務(wù)器端連接的命令

  write_domain_socket_qt( ); //Qt套接字

  ……

  write_domain_socket_player( );//播放器

  ……

  }

  3.3  服務(wù)器控制中心

  服務(wù)器控制中心通過傳遞管理員用戶的控制命令,來控制顯示終端圖片、視頻以及文字媒體的更新和播放狀態(tài)的改變。管理者用戶通過點擊Qt或者Mplayer控制頁面的各種控制按鈕和媒體更新文件操作,觸發(fā)監(jiān)控中心的各種CGI例程,因此監(jiān)控終端的各種控制操作便與相應(yīng)的CGI控制操作例程一一對應(yīng)。CGI例程通過TCP Socket網(wǎng)絡(luò)通信向顯示終端服務(wù)器遞交相應(yīng)的控制命令和相關(guān)控制信息,就可以完成對各種媒體信息的操作控制。Linux 系統(tǒng)網(wǎng)絡(luò)套接字編程見參考文獻[6]。

  由圖2可知,顯示終端分為Qt和Mplayer模塊。其中,Qt模塊用來播放媒體圖片和字幕信息,Mplayer負(fù)責(zé)播放各種視頻文件。對于媒體視頻和圖片文件信息,控制的方式基本上分為兩種:一種是不帶上傳內(nèi)容的單純媒體運行方式的控制操作(如視頻文件的播放暫停、視頻播放調(diào)序等),只需要點擊相關(guān)的控制按鈕即可完成;另一種是基于文件上傳的媒體更新的操作,例如視頻文件、圖片庫的更新等操作。因此,將結(jié)合上述不同的控制方式給出廣告機字幕滾動、純命令控制和文件上傳的關(guān)鍵算法設(shè)計。[!--empirenews.page--]

  Qt更新顯示終端滾動字幕的表單部分如下所示:


  ""<form action=?qt_change_list.cgi? method=?post?>""

  ""<input type=?hidden?name=order

  value=?chang_list?>""

  ""<input type=?submit? nAME=?action?

  value=?更新文字?>"" ""<TEXTAREA

  name=?up_txt?cols=?30?rows=?8?wrap="">

  </TEXTAREA>""  ""</form>""

  用戶通過Qt控制頁面添加更新的文字內(nèi)容,點擊更新字幕按鈕會觸發(fā)改變字幕的CGI例程。qt_change_list.cgi例程將創(chuàng)建從本地到顯示開發(fā)板上的TCP Socket Server 端的TCP套接字連接,并將控制命令“更新文字”與文字內(nèi)容一起上傳到TCP Socket Server端服務(wù)器。

  廣告機控制命令的控制表單部分設(shè)計如下:

  對于單純的控制命令,廣告機終端的設(shè)計比較簡單,對于每一種控制命令均對應(yīng)有不同的CGI例程和命令宏定義,每個例程將對應(yīng)的控制命令通過Socket 上傳就可以實現(xiàn)。


  ""<form action=?***_ctl_cmd.cgi? method=?post?>""

  ""<input type=?hidden? name=order value=?start?>""

  ""<input type=?submit? name=?action?

  value=?控制命令?>""


  上傳文件關(guān)鍵表單部分設(shè)計:


  ""<form action=?add_***.cgi? method=?post?>""

  ""<input name=?filename? type=?FILE?

  size=?25? maxlength=?100?>""

  ""<input type=?submit? name=?action? value=?***?>""


  文件上傳將根據(jù)Qt圖片和視頻文件的不同調(diào)用相應(yīng)的上傳例程。這里除了要將圖片或者視頻文件上傳到開發(fā)板顯示終端外,還要向服務(wù)器監(jiān)控中心的Sqlite3 數(shù)據(jù)庫中添加相應(yīng)的資源信息和狀態(tài)信息,根據(jù)前面數(shù)據(jù)庫對不同媒體類別的設(shè)計屬性域添加相應(yīng)的相關(guān)信息,以便后續(xù)的插入、排序、刪除和更新操作。其中,使用多線程傳輸模型設(shè)計上傳程序my_scp實現(xiàn)對較大視頻和圖片文件的快速傳輸,關(guān)于多線程編程見參考文獻[7]。上傳文件的部分代碼如下所示:

  sqlite3_mprintf( ); //向數(shù)據(jù)庫中添加相關(guān)信息

  sqlite3_exec( ); //向數(shù)據(jù)庫中添加上傳記錄

  3.4  監(jiān)控終端

  為了提升安全性能,需要設(shè)置用戶密碼功能。管理員通過用戶名和密碼的匹配輸入后,就可以獲得廣告機的控制權(quán)限。根據(jù)廣告機媒體類型的不同,分別設(shè)計了Qt控制頁面、Mplayer控制頁面和文件更新控制頁面。通過控制不同的控制頁面,即可控制廣告機的不同媒體播放操作。

  4 結(jié)語

  本項目設(shè)計使用Linux開源系統(tǒng)和軟件工具集,構(gòu)建了基于嵌入式多網(wǎng)絡(luò)節(jié)點、性能優(yōu)越的廣告機系統(tǒng),最終獲得了滿意的效果。本系統(tǒng)的設(shè)計不但涵蓋了Linux系統(tǒng)開發(fā)的軟件和硬件技術(shù),也涵蓋了嵌入式產(chǎn)品設(shè)計的各種綜合素質(zhì)和多項技能,具有一定的實用價值。

 

 

本站聲明: 本文章由作者或相關(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ù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

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