王棟財+梁隆愷+韓改寧+王凡+王煬
摘 要:在嵌入式系統中,多媒體的應用變得越來越廣泛,因此,開發一款功能齊全、便于跨平臺使用的媒體播放器得非常迫切。本文以嵌入式ARM9開發平臺為基礎,利用開源Linux系統和跨平臺Qt開發工具。在音頻開發中采用Qt提供的Phonon多媒體框架,讓應用程序更易于開發了;在視頻開發中利用MPlayer作為其后端程序,加快了對媒體的處理速度。該播發器是以一個集音頻,視頻播放于一體的一款多媒體影音娛樂軟件。該軟件可以移植在汽車、飛機以及個人手持設備上使用。
關鍵詞:嵌入式;媒體播放器;ARM9;Linux;Qt
中圖分類號:TP311 文獻標識碼:A
The Research and Development of Media Player Based on Embedded System
WANG Dongcai,LIANG Longkai,HAN Gaining,WANG Fan,WANG Yang
(Information Engineering Department Xianyang Normal Universty,Xianyang 712000,China)
Abstract:In embedded systems,the application of multimedia is becoming more and more widely,therefore,developing a complete function,easy to use cross-platform media player is very urgent.In this paper,based on embedded ARM9 development platform,using open source Linux system and Qt cross-platform development tools.In audio development program,using Phonon multimedia framework,in order to make applications easier to develop,and using MPlayer,in the video development,to accelerate the processing speed of the media.This is a collection of audio,video play in the integration of a multimedia entertainment software.The software can be transplanted in cars,planes,handheld devices,and personal to use.
Keywords:embedded;media player;ARM9;Linux;Qt
1 引言(Introduction)
隨著計算機技術、媒體編碼技術和嵌入式技術的不斷發展,用戶對媒體娛樂終端需求的不斷提高,嵌入式設備的不斷功能強大和逐漸成熟的市場,嵌入式軟件的開發與設計越來越受到專業技術人員的重視。隨著MP4、數字網絡電視、3G、4G通訊等相關技術的成熟,許多嵌入式產品中都包含媒體播放器,在未來幾年內都將會得到快速發展。因此,基于嵌入式媒體播放器的開發具有一定的實用價值。
2 系統設計(System design)
本設計基于ARM9的S3C2410處理器為核心,采用LCD顯示技術及觸摸屏技術,利用Qt作為GUI來提供強大的用戶界面,實現嵌入式媒體播放器的設計與開發。
2.1 軟硬件平臺
根據對嵌入式視頻播放的分析,為了實現圖像顯示和音頻系統的功能,硬件選擇ARM9處理器,LCD顯示屏及常用的接口電路。
嵌入式音視頻系統開發,基于嵌入式Linux系統,利用Qt/Embedded用戶界面,調用Qt/Embedded提供的類庫進行開發,該軟件功能包括音視頻文件的打開、刪除、顯示等信息,并提供播放列表和播放控制窗口等。另外,利用幀緩沖數據進行輸出,取消對硬件架構的依賴,保證系統的可移植性。該媒體播放器屬于嵌入式系統上層應用程序開發,占用Linux用戶空間區域,為應用程序移植奠定基礎,結構框圖如圖1所示。
圖1 嵌入式軟硬件系統結構
Fig.1 Embedded hardware and software system structure
2.2 音頻接口模塊設計
該模塊主要利用Qt提供的Phonon多媒體框架,Phonon多媒體庫是由KDE的開發人員建立的,其讓多媒體應用程序更易于編寫。Phonon有兩個窗口部件,通用多媒體API的前端和API提供實際多媒體服務的后端[1]。對于使用該模塊開發項目來說,必須在.pro文件加上QT+=phonon才能正常使用該Phonon庫。
Phonon模塊不支持對媒體流中的數據進行操作,但它能夠提供一種間接的方法來操作音頻流,即效果處理器。這些處理器屬于Phonon::Effect類,它們能被加載到源和匯點之間的路徑上,在此之間傳輸數據,可用的效果依賴于Phonon的后端,通過onon::BackendCapabilities::availableAudioEffects()函數獲得,效果大致包括放大,立體全景圖中的媒體流定位,均衡補償和重采樣。
創建一個新的Phonon::Effect實例,假設取得Phonon::createPath()方法返回Phonon::Path指針,下來就可以使用它調用Phonon::Path::insertEffect(),并把剛剛創建的Phonon::Effect實例傳給它。數據的傳遞通過匯點節點,它是數據最終傳遞的物理設備,比如聲卡、耳機或視頻設備,由Phonon::AudioOutput媒體節點或者Phonon::VideoPlayer以及類似媒體節點的Phonon::VideoWidget窗口部件來表示,如圖2所示。endprint
圖2 媒體物理流結構
Fig.2 Media flow physical structure
2.3 視頻接口模塊設計
本模塊使用利用一個開源的視頻播放器MPlayer作為其后端程序[2]。MPlayer具有良好的移植性,可以移植到許多非X86平臺上,MPlayer軟件包中含有針對ARM架構的優化代碼,這些代碼利用ARM的特性加快了對媒體的處理速度[3]。
在liunx系統下,利用Qt做一個應用界面,包括:播放、停止、快進、快退、上/下一曲等功能模塊;并通過交叉編譯器編譯應用程序,然后移植到ARM平臺上。具體操作如下:使用popen()來打開Mplayer播放文件;利用process->write(“pause”)實現會暫停功能;最后利用connect()函數連接信號與槽函數,實現視頻模塊設計。
3 嵌入式媒體播放器系統實現( Embedded media
player system)
對于嵌入式開發,最終都要將做好的應用程序下載到開發板,然后再開發板上運行應用程序,這樣就實現了整個開發的流程。
(1)開發板環境配置
以博創科技UP-TECH 2410經典平臺為基礎,移植LINUX 2.6.24系統具體過程如下:移植LINUX操作系統需要移植四個文件vivi、kernek、root和fs,這四個文件分別是:
Vivi—linux操作系統啟動的bootloader;
ZImage—linux操作系統內核;
root.cramfs—根文件系統;
yaffs.tar.bz2—應用程序壓縮包;
具體移植操作可見文獻[4,5]。
(2)在上位機上編譯好可執行文件,通過Qmake和make工具,本系統最終編譯的程序為project。
(3)通過NFS服務或者U盤將生成的文件移植到開發板上,當然,開發板上的環境已經搭建好了,里面有所需要的庫文件。NFS服務這種方式比較慢,而用U盤的方式很快的。
(4)查看開發板上環境變量的設置,環境變量設置非常重要,如果這個設置不正確,則應用程序不能再開發板上運行。通過命令:Vi/etc/profile
(5)運行該程序:./ project -qws
運行界面如圖3和圖4所示。
圖3 視頻模塊 圖4 音頻模塊
Fig.3 Video module Fig.4 Audio module
4 結論(Conclusion)
本設計以嵌入式Linux為操作系統,基于ARM9的平臺開發,利用Qt進行圖形界面設計,再通過相關環境配置及LCD和觸摸屏的驅動開發設計,使得開發應用程序運行在ARM9開發板。該系統開發為嵌入式系統應用開發提供一定的思路,而且應用程序移植性好,可廣泛應用各類嵌入式音視頻系統中。
參考文獻(References)
[1] 王建民,張宏壯.基于Qt的嵌入式媒體播放器的設計與實現
[J].微計算機信息,2009,(4):8-9.
[2] Kim J,et al.Efficient Metadata Management for Flash File
Systems.11th IEEE International Symposium on Object
Oriented Real- Time Distributed Computing,2008:535-540.
[3] 任亞飛,唐濤.基于嵌入式Linux的列控系統人機界面的實現
[J].鐵路計算機應用,2005,(4):23-26.
[4] 陳云鶴,徐晶.基于QT/Embedded的媒體播放器的設計與實
現[J].微型電腦應用,2006,8(22):33-34;52.
[5] 馬勇,等.嵌入式多媒體播放器的系統設計與實現[J].杭州電
子科技大學學報,2006,2(26):60-63.
作者簡介:
王棟財(1990-),男,學士.研究領域:計算機應用.
梁隆愷(1991-),男,學士,研究領域:計算機應用.
韓改寧(1977-),女,碩士,講師.研究領域:嵌入式系統應用,
智能機器人.
王 凡(1989-),男,學士.研究領域:軟件開發.
王 煬(1990-),男,學士.研究領域:計算機應用.endprint
圖2 媒體物理流結構
Fig.2 Media flow physical structure
2.3 視頻接口模塊設計
本模塊使用利用一個開源的視頻播放器MPlayer作為其后端程序[2]。MPlayer具有良好的移植性,可以移植到許多非X86平臺上,MPlayer軟件包中含有針對ARM架構的優化代碼,這些代碼利用ARM的特性加快了對媒體的處理速度[3]。
在liunx系統下,利用Qt做一個應用界面,包括:播放、停止、快進、快退、上/下一曲等功能模塊;并通過交叉編譯器編譯應用程序,然后移植到ARM平臺上。具體操作如下:使用popen()來打開Mplayer播放文件;利用process->write(“pause”)實現會暫停功能;最后利用connect()函數連接信號與槽函數,實現視頻模塊設計。
3 嵌入式媒體播放器系統實現( Embedded media
player system)
對于嵌入式開發,最終都要將做好的應用程序下載到開發板,然后再開發板上運行應用程序,這樣就實現了整個開發的流程。
(1)開發板環境配置
以博創科技UP-TECH 2410經典平臺為基礎,移植LINUX 2.6.24系統具體過程如下:移植LINUX操作系統需要移植四個文件vivi、kernek、root和fs,這四個文件分別是:
Vivi—linux操作系統啟動的bootloader;
ZImage—linux操作系統內核;
root.cramfs—根文件系統;
yaffs.tar.bz2—應用程序壓縮包;
具體移植操作可見文獻[4,5]。
(2)在上位機上編譯好可執行文件,通過Qmake和make工具,本系統最終編譯的程序為project。
(3)通過NFS服務或者U盤將生成的文件移植到開發板上,當然,開發板上的環境已經搭建好了,里面有所需要的庫文件。NFS服務這種方式比較慢,而用U盤的方式很快的。
(4)查看開發板上環境變量的設置,環境變量設置非常重要,如果這個設置不正確,則應用程序不能再開發板上運行。通過命令:Vi/etc/profile
(5)運行該程序:./ project -qws
運行界面如圖3和圖4所示。
圖3 視頻模塊 圖4 音頻模塊
Fig.3 Video module Fig.4 Audio module
4 結論(Conclusion)
本設計以嵌入式Linux為操作系統,基于ARM9的平臺開發,利用Qt進行圖形界面設計,再通過相關環境配置及LCD和觸摸屏的驅動開發設計,使得開發應用程序運行在ARM9開發板。該系統開發為嵌入式系統應用開發提供一定的思路,而且應用程序移植性好,可廣泛應用各類嵌入式音視頻系統中。
參考文獻(References)
[1] 王建民,張宏壯.基于Qt的嵌入式媒體播放器的設計與實現
[J].微計算機信息,2009,(4):8-9.
[2] Kim J,et al.Efficient Metadata Management for Flash File
Systems.11th IEEE International Symposium on Object
Oriented Real- Time Distributed Computing,2008:535-540.
[3] 任亞飛,唐濤.基于嵌入式Linux的列控系統人機界面的實現
[J].鐵路計算機應用,2005,(4):23-26.
[4] 陳云鶴,徐晶.基于QT/Embedded的媒體播放器的設計與實
現[J].微型電腦應用,2006,8(22):33-34;52.
[5] 馬勇,等.嵌入式多媒體播放器的系統設計與實現[J].杭州電
子科技大學學報,2006,2(26):60-63.
作者簡介:
王棟財(1990-),男,學士.研究領域:計算機應用.
梁隆愷(1991-),男,學士,研究領域:計算機應用.
韓改寧(1977-),女,碩士,講師.研究領域:嵌入式系統應用,
智能機器人.
王 凡(1989-),男,學士.研究領域:軟件開發.
王 煬(1990-),男,學士.研究領域:計算機應用.endprint
圖2 媒體物理流結構
Fig.2 Media flow physical structure
2.3 視頻接口模塊設計
本模塊使用利用一個開源的視頻播放器MPlayer作為其后端程序[2]。MPlayer具有良好的移植性,可以移植到許多非X86平臺上,MPlayer軟件包中含有針對ARM架構的優化代碼,這些代碼利用ARM的特性加快了對媒體的處理速度[3]。
在liunx系統下,利用Qt做一個應用界面,包括:播放、停止、快進、快退、上/下一曲等功能模塊;并通過交叉編譯器編譯應用程序,然后移植到ARM平臺上。具體操作如下:使用popen()來打開Mplayer播放文件;利用process->write(“pause”)實現會暫停功能;最后利用connect()函數連接信號與槽函數,實現視頻模塊設計。
3 嵌入式媒體播放器系統實現( Embedded media
player system)
對于嵌入式開發,最終都要將做好的應用程序下載到開發板,然后再開發板上運行應用程序,這樣就實現了整個開發的流程。
(1)開發板環境配置
以博創科技UP-TECH 2410經典平臺為基礎,移植LINUX 2.6.24系統具體過程如下:移植LINUX操作系統需要移植四個文件vivi、kernek、root和fs,這四個文件分別是:
Vivi—linux操作系統啟動的bootloader;
ZImage—linux操作系統內核;
root.cramfs—根文件系統;
yaffs.tar.bz2—應用程序壓縮包;
具體移植操作可見文獻[4,5]。
(2)在上位機上編譯好可執行文件,通過Qmake和make工具,本系統最終編譯的程序為project。
(3)通過NFS服務或者U盤將生成的文件移植到開發板上,當然,開發板上的環境已經搭建好了,里面有所需要的庫文件。NFS服務這種方式比較慢,而用U盤的方式很快的。
(4)查看開發板上環境變量的設置,環境變量設置非常重要,如果這個設置不正確,則應用程序不能再開發板上運行。通過命令:Vi/etc/profile
(5)運行該程序:./ project -qws
運行界面如圖3和圖4所示。
圖3 視頻模塊 圖4 音頻模塊
Fig.3 Video module Fig.4 Audio module
4 結論(Conclusion)
本設計以嵌入式Linux為操作系統,基于ARM9的平臺開發,利用Qt進行圖形界面設計,再通過相關環境配置及LCD和觸摸屏的驅動開發設計,使得開發應用程序運行在ARM9開發板。該系統開發為嵌入式系統應用開發提供一定的思路,而且應用程序移植性好,可廣泛應用各類嵌入式音視頻系統中。
參考文獻(References)
[1] 王建民,張宏壯.基于Qt的嵌入式媒體播放器的設計與實現
[J].微計算機信息,2009,(4):8-9.
[2] Kim J,et al.Efficient Metadata Management for Flash File
Systems.11th IEEE International Symposium on Object
Oriented Real- Time Distributed Computing,2008:535-540.
[3] 任亞飛,唐濤.基于嵌入式Linux的列控系統人機界面的實現
[J].鐵路計算機應用,2005,(4):23-26.
[4] 陳云鶴,徐晶.基于QT/Embedded的媒體播放器的設計與實
現[J].微型電腦應用,2006,8(22):33-34;52.
[5] 馬勇,等.嵌入式多媒體播放器的系統設計與實現[J].杭州電
子科技大學學報,2006,2(26):60-63.
作者簡介:
王棟財(1990-),男,學士.研究領域:計算機應用.
梁隆愷(1991-),男,學士,研究領域:計算機應用.
韓改寧(1977-),女,碩士,講師.研究領域:嵌入式系統應用,
智能機器人.
王 凡(1989-),男,學士.研究領域:軟件開發.
王 煬(1990-),男,學士.研究領域:計算機應用.endprint