基于MPlayer的嵌入式媒体播放器设计Word下载.docx
- 文档编号:17647510
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:14
- 大小:268.88KB
基于MPlayer的嵌入式媒体播放器设计Word下载.docx
《基于MPlayer的嵌入式媒体播放器设计Word下载.docx》由会员分享,可在线阅读,更多相关《基于MPlayer的嵌入式媒体播放器设计Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
整个课程设计共3周折合48学时,具体进度如下:
第1周掌握构建嵌入式Linux开发环境及开发应用程序的基本方法;
理解所选题目要求,学习相关知识,搭建相应软件和硬件环境;
第2周完成基本要求,移植MPlayer,播放本地视频文件,并实现流媒体播放功能;
第3周进一步完善功能并进行扩展要求设计,现场检查、答辩;
课程设计期间的其它时间实验室也一直开放,需要实验的同学在遵守实验室管理规定的条件下可以随时进行实验。
课程设计报告要求在课程设计结束后一周内提交。
课程设计开始日期
2009.12.7
课程设计完成日期
2009.12.18
课程设计实验室名称
嵌入式网络系统实验室
地点
实验楼503-1
课程设计专题网站
http:
//59.64.74.100/
资料和软件下载地址
ftp:
目录
摘要4
第一章概述5
1.1嵌入式Linux的特点及应用5
1.2嵌入式中使用Linux的优缺点6
1.3开发平台简介7
1.3.1嵌入式Linux开发平台简介7
1.3.2UP-TechPXA270实验仪器介绍8
第二章嵌入式Linux开发流程9
2.1建立开发环境9
2.2引导装载程序(BOOTLOADER)的建立与烧写、配置10
2.3移植LINUX内核并烧写11
2.4建立根文件系统并烧写12
第三章基于MPlayer的嵌入式媒体播放器的设计过程13
3.1下载源码并解压缩13
3.2对mplayer进行参数设置并进行编译13
3.3挂载和执行程序16
第四章实验结果和分析18
第五章结束语19
参考文献19
摘要
本文主要介绍了针对IntelXScale平台的嵌入式视频通信终端的设计开发过程。
设计采用研兴科技公司推出的PXA270开发板作为终端的硬件平台,采用目前Linux下最优秀的媒体播放器Mplayer作为播放器软件的核心。
文章结合实际的开发过程,对嵌入式软件开发环境的搭建和Mplayer的移植都作了较为详细的介绍。
本设计所采用的方案在嵌入式流媒体通信终端的设计中是比较新颖的。
其独到之处在于将X86平台下的Mplayer移植到XScale平台,实现了多格式、多协议的嵌入式流媒体通信终端。
文章最后通过对嵌入式平台下Mplayer的各个性能指标的测试对比,提出了最终可行的方案。
关键词:
嵌入式MplayerPXA270Linux
第一章概述
1.1嵌入式Linux的特点及应用
目前Linux已广泛应用于信息家电、数据网络、工业控制、医疗卫生航空航天等众多领域。
在嵌入式领域,随着价格低廉、结构小巧的各种微处理器的产生为外设连接提供了稳定可靠的硬件架构,限制嵌入式系统发展的瓶颈就突出表现在软件方面。
尽管从八十年代末开始,陆续出现了一些嵌入式操作系统,比较著名的有Vxwork、pSOS、Neculeus和WindowsCE。
但这些专用操作系统都是商业化产品,其高昂的价格使许多低端产品的小公司望而却步,并且其源代码的封闭性也大大限制了开发者的积极性。
结合中国实情,当前国家对自主操作系统的大力支持,为源码开放的LINUX的推广提供的广阔的发展前景。
对上层应用开发者而言,嵌入式系统需要的是一套高度简练、界面友善、质量可靠、应用广泛、易开发、多任务,并且价格低廉的操作系统。
Linux对厂商不偏不倚而且成本极低,能够很快成为用于各种设备的操作系统。
如今,业界已经达成共识:
即嵌入式linux是大势所趋,其巨大的市场潜力与酝酿的无限商机必然会吸引众多的厂商进入这一领域。
由于Linux开放源码,经过这些年的发展,已经成为一个健壮的可靠的高性能的操作系统。
愈来愈多的嵌入式系统设计员发现Linux可以成为一个优秀的嵌入式操作系统。
而Linux的最大的优势还在于它是一个开放的操作系统。
由于Linux开放源码,操作系统的一切对用户都是透明的,用户可以最大限度地控制系统开发的进度和造价。
在开发过程中遇到的各种各样的硬件设备,可以方便地在网上找到这些设备的驱动程序,得到支持。
Linux内置网络支持,用户可以轻松地使自己的嵌入式具有网络功能。
Linux是模块化的操作系统,提供了优秀的可缩放功能,用户可以方便地删除不需要的模块,大多数嵌入式系统对操作系统的体积非常敏感,Linux的可以根据自己的需要,选择特定的功能模块,自主地搭建嵌入式操作系统。
Linux支持绝大多数CPU,包括Intel、ARM、MIPS、ASIC、ALPHA、68K、POWERPC等。
这使Linux几乎可以嵌入到各种硬件设备上,成为各家厂商极力发展的操作系统。
嵌入式Linux已经有了一些成功的产品,而且新的产品还在不断涌现。
国外已经推出了多款以Linux为内核的高端PDA,还有电视节目录放机、数码音频播放器、网络摄相机等等,除了这些已经商业化的产品以外还有许多研究项目,例如NASA(美国国家宇航局)使用的飓风数据采集系统。
可以说嵌入式Linux具有广阔的前景。
1.2嵌入式中使用Linux的优缺点
虽然大多数Linux系统运行在PC平台上,但Linux也可以作为嵌入式系统的可靠主力。
Linux的安装和管理比UNIX更加简单灵活,这对于那些UNIX专家们来说又是一个优点,因为Linux中有许多命令和编程接口同传统的UNIX一样。
但是对于习惯于WINDOWS操作系统的人来说,需要记忆大量的命令行参数却是一个缺点。
随着LINUX社团的不断努力,linux的人机界面开发环境正在不断完善。
典型的Linux系统经过打包,在拥有硬盘和大容量内存的PC机上运行,嵌入式系统不需要这么高的配置。
一个功能完备的Linux内核要求大约1MB内存。
而Linux微内核只占用其中很小一部分内存,包括虚拟内存和所有核心的操作系统功能在内,只需占用系统约100K内存。
只要有500K的内存,一个有网络栈和基本实用程序的完全的Linux系统就可以在一台8位总线(SX)的Intel386微处理器上运行的很好了。
由于内存要求常常是需要的应用所决定的,比如Web服务器或者SNMP代理,Linux系统甚至可以仅使用256KBROM和512KBRAM进行工作。
因此它是一个瞄准嵌入式市场的轻量级操作系统。
与传统的实时操作系统相比(RTOS),采用象嵌入式Linux这样的开放源码的操作系统的另外一个好处是Linux开发团体看来会比RTOS的供应商更快地支持新的IP协议和其它协议。
例如,用于Linux的设备驱动程序要比用于商业操作系统的设备驱动程序多,如网络接口卡(NIC)驱动程序以及并口和串口驱动程序。
核心Linux操作系统本身的微内核体系结构相当简单。
网络和文件系统以模块形式置于微内核的上层。
驱动程序和其它部件可在运行时作为可加载模块编译到或者是添加到内核。
这为构造定制的可嵌入系统提供了高度模块化的构件方法。
而在典型情况下该系统需结合定制的驱动程序和应用程序以提供附加功能。
嵌入式系统也常常要求通用的功能,为了避免重复劳动,这些功能的实现运用了许多现成的程序和驱动程序,它们可以用于公共外设和应用。
Linux可以在外设范围广泛的多数微处理器上运行,并早已经有了现成的应用库。
Linux用于嵌入式的因特网设备也是很合适的,原因是它支持多处理器系统,该特性使Linux具有了伸缩性。
因而设计人员可以选择在双处理器系统上运行实时应用,提高整体的处理能力。
例如,您可以在一个处理器运行GUI,同时在另一个处理器上运行Linux系统。
在嵌入式系统上运行Linux的一个缺点是Linux体系提供实时性能需要添加实时软件模块。
而这些模块运行的内核空间正是操作系统实现调度策略、硬件中断异常和执行程序的部分。
由于这些实时软件模块是在内核空间运行的,因此代码错误可能会破坏操作系统从而影响整个系统的可靠性,这对于实时应用将是一个非常严重的弱点。
已经有许多嵌入式Linux系统的示例;
可以有把握地说,某种形式的Linux能在几乎任一台执行代码的计算机上运行。
1.3开发平台简介
1.3.1嵌入式Linux开发平台简介
嵌入式LINUX可以运行的硬件平台十分广泛,从X86、MIPS、POWERPC到
ARM,以及其他许多硬件体系结构,目前在世界范围,ARM体系结构的SOC逐渐占领32位嵌入式微处理器市场,并且在国内市场上很容易购买到ARM核的嵌入式处理器,我们实验所采用的硬件平台也是基于ARM体系结构,
Intel的XscalePXA270处理器,由北京博创兴业科技有限公司开发的UP-TechPXA270实验仪器。
UP-TECHPXA270基于IntelXSCALE架构最新的PXA270嵌入式微处理器。
PXA270最高主频可达624MHz,加入了WirelessMMX技术,大大提升了多媒体处理能力;
同时PXA270还加入了IntelSpeedStep动态电源管理技术,在保证CPU性能的情况下,最大限度地降低移动设备功耗。
PXA270可以广泛应用于PDA、智能手机、PMP产品中。
博创科技UP-TECHPXA270教学科研平台主要是面向计算机、软件专业的高端平台,微处理器主频稳定运行在520MHz,采用13×
13mmVFBGA封装,内部集成iwmmx指令,加速处理器对多媒体数据的处理速度。
可运行Linux2.4.x和Linux2.6.x内核,支持QT/E、miniGUI等嵌入式图形界面,提供完整的驱动和应用程序。
既适合作为计算机、软件等专业开设嵌入式软件课程的教学平台,又适合广大从事PMP、PDA、智能手机的厂商和科研单位作为参考设计平台。
UP-TECHPXA270教学科研平台由处理器核心板、主板及LCD三部份组成。
核心板和主板的接口设计充分考虑了升级产品的兼容性,核心板可以升级到PXA271、PXA272微处理器,而主板资源不变。
此外,除了具有丰富的接口资源,良好的可扩展性也是UP-TECHPXA270平台的一大特色。
UP-TECHPXA270预留了32位扩展总线接口,与博创UP-NetARM2410、UP-NetARM2410-S平台兼容,从而大大减轻了用户扩展新功能的负担。
1.3.2UP-TechPXA270实验仪器介绍
UP-TechPXA270的开发平台逻辑框图如下图
第二章嵌入式Linux开发流程
2.1建立开发环境
(1)用虚拟机VMware虚拟Linux操作系统,好在windows下进行操作
(2)配置minicom的参数
(3)安装可用的arm-linux-gcc交叉编译工具
因为实验室的电脑上均具备上诉系统软件条件,我们仅需要进行对其参数进行正确的设置。
2.2引导装载程序(BOOTLOADER)的建立与烧写、配置
(1)打开虚拟机下的Linux的终端输入minicom,然后点击回车,可看到如下界面:
(2)重置pxa270开发板后,立即按ctrl+c,进入blob
(3)配置blob:
由于开发板出厂时MAC地址均相同,需要修改开发板的MAC地址才能避免地址冲突。
在blob下使用下面的命令修改MAC地址:
blob>
ifconfigmac08:
00:
3E:
XX:
XX
上述命令配置开发板的MAC地址,08:
XX即为的开发板的MAC地址,一定要更改得与别的开发板不同,只需要改后面的3个字节即可,注意是16进制数。
为开发板设置IP参数
ifconfigserver192.168.0.XX
其中192.168.0.XX为你的tftp服务器(即PC机)的IP地址。
ifconfigip192.168.0.YY
将配置参数烧写进FLASH芯片中
再用下面的命令将MAC地址保存到Flash中,以便复位或断电重启的情况下这些参数仍然有效,不用重新更改:
flashparamsave
配置完以后用ping测试是否两个IP地址是否可达。
2.3移植LINUX内核并烧写
已经移植好的Linux内核压缩包为/up-techpxa270/exp/kernel/up-linux-2.6.9-release-2006-6-9.tar.bz2。
(1)解压内核包
localhost>
cd
localhost>
mkdirkernel
cdkernel
tarjxvf/up-techpxa270/exp/kernel/up-linux-2.6.9-release-2006-6-9.tar.bz2
(2)编译内核
cdlinux-2.6.9-release
makeclean
makezImage
生成的二进制文件为arch/arm/boot/zImage,把它拷贝到PC机的tftp服务目录:
cparch/arm/boot/zImage/tftpboot/
(3)烧写内核
①运行minicom.
②启动pxa270开发板,按ctl+c组合键进入blob
③可以输入help查看blob下的命令,输入help“command”查看命令参数。
④按照以下命令烧写zImage到Ram:
tdownloadkernel
⑤按照以下命令烧写zImage到flash:
flashkernel
2.4建立根文件系统并烧写
(1)解压根文件系统,生成root目录
cd/up-techpxa270/exp/root/
tarjxvf/up-techpxa270/exp/root/up-techpxa270-root-2006-05-31.tar.bz2
(2)生成JFFS2文件系统
先改变mkfs.jffs2文件权限,使该文件可以执行,命令如下:
chmod755mkfs.jffs2
再按下面命令生成文件系统镜像:
./mkfs.jffs2-rroot-orootfs.img-e0x20000--pad=0xd00000
选项说明:
-r:
--root=DIR,由目录生成镜像文件
-e:
Flash擦除扇区大小,默认为64KB,此处指定为128KB
--pad:
指定创建的根文件系统的大小
生成的映像文件为rootfs.img,把它拷贝到PC机的tftp服务目录:
cprootfs.img/tftpboot/
(3)按照以下命令烧写rootfs.img到Ram:
blob>
tdownloadramdisk
(4)按照以下命令烧写rootfs.img到flash:
flashramdisk
(5)在blob下启动Linux:
boot
到此环境的配置算是基本完成了,下面就要对实验进行设计了
第三章基于MPlayer的嵌入式媒体播放器的设计过程
3.1下载源码并解压缩
首先我们要在学校的
//59.64.74.100/嵌入式信息系统课程设计/MPlayer/MPlayer-1.0rc2.tar.bz2
下载MPlayer-1.0rc2.tar.bz2的代码包并把代码包放在nfsroot目录下
在nfsroot目录下解压缩
Localhost>
cd/
cdnfsroot
tar-jxvfMPlayer-1.0rc2.tar.bz2
如图为将压缩文件放在0632331文件夹中并解压得到MPlayer-1.0rc2文件
3.2对mplayer进行参数设置并进行编译
进入nfsroot目录下的MPlayer-1.0rc2文件夹对Mplayer进行设置
cd/nfsroot/MPlayer-1.0rc2
./configure--enable-linux-devfs--disable-rtc--disable-dvdnav--disable-dvdread--disable-dvdread-internal--disable-libdvdcss-internal--disable-win32dll--disable-mp3lib--disable-mad--enable-fbdev--enable-cross-compile--cc=arm-linux-gcc--host-cc=gcc--as=arm-linux-as--ar=arm-linux-ar--ranlib=arm-linux-ranlib--target=arm-armv4l-linux--enable-static--enable-armv5te--enable-iwmmxt--enable-tv-v4l1--with-extraincdir=up-techpxa270/exp/kernel/linux-2.6.9-release/include/--enable-debug--language=zh_CN
如图将设置参数敲入回车即可
下面是对其中部分指令的解释:
--enable-linux-devfs启动支持linux挂载
--cc=arm-linux-gcc设置交叉编译器
--host-cc=gcc是用来编译一些需要在host上执行的中间文件的,如codec-cfg
--enable-cross-compile允许交叉编译
--enable-static是设定静态连接
--language=zh_CN支持中文简体界面
其他的一些指令是关闭一些这次暂时不使用的功能
进行make指令进行编译并且生成可执行文件mplayer:
make
如图为实际操作时的情况
此时你的MPlayer-1.0rc2文件夹下会已经生成一个可执行文件mplayer,把执行文件拷贝nfsroot目录下:
如图为将生成的mplayer文件copy到nfsroot文件夹下
cpmplayer/nfsroot
在将一个已经准备好的视频文件拷贝到nfsroot目录下,我准备的是44.wmv视频文件
cp44.Wmv/nfsroot
3.3挂载和执行程序
开发板上,挂接宿主机的根目录。
成功之后在开发板上进入/mnt目录,便相应进入宿主机NFS目录,再进入开发程序目录运行刚刚编译好的mplayer的执行程序,查看运行结果。
如果该程序不具有可执行属性,需要用chmod命令修改,使其可以执行。
pxa270>
mount-onolock192.168.0.XX:
/nfsroot/mnt/nfs
pxa270>
cd/mnt/nfs
chmod755mplayer
./mplayer
如图为实际操作截图
执行之后会出现下面的图像,可以进行mplayer的播放设置
第四章实验结果和分析
现在对程序进行测试,在开发板上播放刚才拷贝到nfsroot目录下的视频44.Wmvpxa270>
cd/mnt/nfs
Pxa270>
./mplayer44.Wmv
这时会看见开发板上开始播放44.Wmv的视频,但是画面一卡一卡的,声音也是一顿一顿的。
然后我又用无声模式进行了播放。
./mplayer-nosound44.Wmv
这次的画面相当流畅,说明问题是出现了声音的编码上,后来查了查,发现声音使用比较大的方式进行编码的,所以开发板进行解码计算时会出现卡的现象,进行修改的方法是用别的编码方式进行编码以保证视频的流畅性。
在设计的过程中出现了不少问题,一开始我使用的交叉编译的工具的版本是gcc3.4.3,虽然编译和make都能顺利进行,但是在开发版上运行时却无法播放视频。
多次尝试之后发现可能是编译器的问题,于是我换了交叉编译的版本,才顺利的在开发板上播放。
版本改动的方式是:
在根目录下找到.bash_profile,对其进行编辑,把编译器的路径修改为你所要使用的版本的路路径,然后执行reboot命令。
复位之后,可以对gcc版本进行查询:
Localhos
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MPlayer 嵌入式 媒体播放器 设计