基于嵌入式媒体播放器的设计与开发
2014-09-24王栋财梁隆恺韩改宁王凡王炀
王栋财+梁隆恺+韩改宁+王凡+王炀
摘 要:在嵌入式系统中,多媒体的应用变得越来越广泛,因此,开发一款功能齐全、便于跨平台使用的媒体播放器得非常迫切。本文以嵌入式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