基于嵌入式技术的视频媒体播放器的设计_第1页
基于嵌入式技术的视频媒体播放器的设计_第2页
基于嵌入式技术的视频媒体播放器的设计_第3页
基于嵌入式技术的视频媒体播放器的设计_第4页
基于嵌入式技术的视频媒体播放器的设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 本科毕业论文题目: 基于嵌入式技术的 视频媒体播放器的设计 学院: 班级: 姓名: 王帅 指导教师: 李怀繁 职称: 副教授 完成日期: 2014 年 6 月 5 日基于嵌入式技术的视频媒体播放器的设计摘要:随着用户需求的日趋多样化,单一功能的视频媒体播放器功能已经渐渐强大起来。嵌入式设备以其强大的功能、低廉的价格等优点成为了开发视频媒体播放器首选设备。本文设计的播放器将视频媒体技术与嵌入式技术完美结合起来,不仅实现了音视频的播放,而且采用mini2440开发板,搭载Linux内核,使其具有强大的潜力,可开发实现多种功能,满足用户多变的需求。该视频媒体播放器支持多种格式的音、视频文件的播放,

2、可实现媒体文件播放的暂停、音量调节等播放功能,并且由于其应用于Linux内核之上,比其他播放器有更广阔的发展空间。关键词:mini2440开发板;视频媒体播放器;Linux内核;嵌入式技术;目 录1.引言(1)1.1 研究背景与目的(1)1.2 研究方法(2)2. 系统分析(3)2.1 概要分析(3)2.2 开发环境(3)3. 系统设计(4)3.1 构建基本环境(4)3.2 配置相关服务器(5)3.3 移植应用程序(6)4. 系统实现(8)4.1 运行流程(8)5 系统测试(9)5.1 测试流程(9)5.2 功能测试(10)结 论(13)参考文献(14)附 录(16)1 引言 1.1 研究背景

3、与目的在现代信息化社会,视频媒体在信息产业和媒体技术的发展和在人类社会的应用等方面产生的影响和作用越来越明显,且越来越重要1。视频媒体技术的发展和应用,使得文化教育、科技、娱乐等诸多行业的飞速发展与相互渗透,同时,正在逐步改变着整个人类社会的生活方式与工作结构。不言而喻,媒体产业的产生和发展,不仅会引发计算机工业的革命,而且也将会推动人类社会发生巨大变革。嵌入式操作系统是计算机技术发展到一定阶段的中间产物,它无法与功能全面的计算机操作系统相比,但却凭借自身体积小、功能专用、稳定性高、价格低廉等优点正迅猛发展。目前,具有知识产权保护的嵌入式系统在中国逐渐形成了一个热门领域,嵌入式系统的稳步发展使

4、嵌入式软件的研发的重要性与日俱增。优秀的平台需要配合相应的应用才能充分发挥最大潜力,所以,视频媒体技术的嵌入式发展已成为视频媒体技术发展的必然。近年来,随着嵌入式技术的飞速发展,越来越多的企业开始开发嵌入式软件,并取得了一定的成果,开发了许多产品,其中包括了一些类型的嵌入式视频播放器。但是却没有一款产品能够垄断嵌入式视频播放器的市场。究其原因,现今的视频媒体播放器大部分是由计算机上通用的媒体播放器移植而来的,忽视了嵌入式设备的特殊性,其播放器在实用功能、视频显示和操作方便上不能媲美于计算机,而且也没有发挥嵌入式系统的潜力2。在世界的其他国家,对视频媒体技术的研究和媒体产业的发展非常重视,投入了

5、大量的人力、物力,开发出了一些体积小、易用性好的媒体播放器,并且产品不断更新换代,发展上升空间巨大,功能日趋完善。随着计算机的发展和影视行业以及数据处理等技术的日趋成熟,为视频媒体技术的起步奠定了坚实的基础,并为各个行业的相互渗透与大融合提供了可靠保证。同时,视频媒体是人类可直接接受的最丰富和最全面的信息来源,对于推动当今社会的发展和文明的进步起着重要作用,视频媒体技术的需求与日俱增。 在日益信息化的现代社会中,计算机和网络已经渗透了我们日常生活的方方面面。作为一个现实,一个新的嵌入式设备中各种应用的数量正在稳步上升,人们可以有各种嵌入式设备,甚至一个人有多种,如手机,MP3或智能电器3,嵌入

6、式技术正在飞速地发展。将嵌入式技术与视频媒体技术的结合,将使得二者的功能更加强大。一种具有体积小、反应快、扩展性强等优点的视频媒体播放器正是融合了嵌入式技术与视频媒体技术,将改变人类的生活,推动社会的发展。1.2 研究方法视频媒体的出现使计算机具有了强大的综合处理文字、声音、图像以及视频的能力,依靠形象丰富的图、文等信息以及便利的交互性,改善了人机交互界面,人们使用电脑的方式发生了很大的变化,因此为计算机进入生产和生活的人打开新的领域。同时,媒体技术也是继承与变革传统产业,尤其是印刷、出版、广告行业等产业的新兴技术。还可以利用多媒体技术实现电子化,达到提高生产力的目的。由此来看,发展视频媒体技

7、术将对我国国民经济、文化教育和科技进步方面产生深远的影响。该嵌入式视频媒体播放器采用探索性研究法,应用嵌入式设备开发的一般流程,主要步骤包括概要设计,详细设计,编码实现以及系统测试。该播放器采用了性价比较高的mini2440型开发板,通过剪裁Linux内核并将其配置后移植到开发板上,同时,移植了libmad库及mplayer播放器,编写按键驱动代码,最后,在开发板上配置相关参数,实现视频媒体播放器。2 系统分析2.1 概要分析 视频媒体播放器的设计预期应满足如下需求:实现音视频文件的播放、暂停、切换等功能;可以播放指定目录下的媒体文件;响应快,播放流畅,运行稳定,播放视频文件时满足音视频同步的

8、要求;具有良好的用户界面,较好的易用性。2.2 开发环境硬件环境为: Mini2440嵌入式开发板。软件环境:编译工具:GCC,交叉编译工具:ARM Linux GCC 4.4.3,共享库:libmad-0.15.2b。Linux系统是一种类似于UNIX的操作系统,也是当前颇具发展潜力的计算机用操作系统4。Linux之所以能在短短的几十年里发展迅速,与Linux所具有的良好特性息息相关。Linux不仅传承UNIX的优秀设计思想,而且拥有了最新UNIX的全部功能5。Linux的主要特点为极强的兼容性;多用户、多任务的操作系统;可移植性强;管理功能强大,可进行远程管理;稳定性高;具有较完善的编程语

9、言和shell命令解析器。 Linux系统上已经拥有了许多高级编程语言,使得它成为了理想的应用开发平台。 在本次设计中,我们会修改到Linux系统的部分文件,需要修改的Linux的文件系统结构如下:/bin 该目录用于存放Linux的命令,例如ls、chmod等,其文件类型为可执行文件,即使普通用户也有可执行权限;/etc该目录存放了系统运行时所需要的各种配置文件,包括网络配置文件,设备配置文件,系统配置文件等;/mnt该目录用来存储挂载到本系统的存储设备的目录;/lib用于存储Linux系统动态链接库/ lib目录,共享库的大多数应用程序将使用该目录。/home该目录用于存放新建用户的登陆目

10、录的目录,对应于用户名。作为一种桌面操作系统,Linux正凭借其自身的优势而蓬勃发展。同时,作为一个稳定的服务器,Linux可以和其他各种业务操作系统相媲美,甚至占有很大的市场份额。凭借其强大的可移植性,Linux在嵌入式领域的应用也变得越来越普遍,产品的发展日新月异。在本次设计中,我选择了自己初学时使用的mini2440开发板,它是一种配置较高且比较实用的嵌入式设备,具有了较稳定、高效的电源系统与处理器,运行起来比较流畅6。其结构图以及相关参数如下:图2-3 Mini2440开发板CPU使用的三星S3C2440处理器,频率为400MHz;内存为 64M大小的SDRAM,其时钟频率高达100M

11、Hz。用户资源包括6个按键和 4个用户调试灯。它的电源适配器外接电压+5V。板身尺寸为100 x 100mm,支持Linux以及WindowsCE操作系统。3 系统设计 3.1 构建基本环境Bootloader是负责管理和指导硬件启动的程序。当系统启动,它开始运行硬件设备的初始化,在系统软件环境下调用内核。由于具体的硬件和硬件配置千差万别,所以bootloader的实现也不同。即使相同的CPU模型,其外围设备可以是不同的,显然没有通用的引导支持所有的CPU。在本次设计中使用了U-Boot,它能承载的CPU类型较多7。首先将U-Boot写入,配置好相关环境变量后将内核、文件系统写到mini244

12、0开发板上,配置启动文件,开发板就可以启动了。其步骤如下:首先,将u-boot文件下载到NandFlash的0地址,在supervivi中使用命令:x(格式化)以及v(使用usb下载);然后下载内核,使用命令为:setenv envName envValue(修改环境变量)和saveenv(保存修改过的环境变量);接着,将镜像文件下载到内存中,并将ROM中的无用数据擦除;使用命令:nand write.jffs2 0x30200000 0x100000 0x500000(将内存地址为0x30200000的数据 写入nandflash的0x100000地址,长度为0x500000)以及bootc

13、md(环境变量);最后,下载文件系统,使用命令:tftp 0x30200000 rootfs_qt.jffs28。将文件系统写入时使用命令:nand write.jffs2 0x30200000 0x600000 0x2000000,到此,基本环境就建好了。3.2 配置相关服务器在本次设计中为了达到搭建环境与传输文件的目的,我们使用了TFTP的服务,一种很多的场合都用到TFTP的协议。下面简述配置TFTP的过程,首先查看是否已经安装了tftp 服务端程序:输入命令为rpm -qa | grep tftp。如果没有,则安装,此时输入rpm -ivh packageName。然后修正配置文件,使得

14、tftp生效,把tftp文件中的相关内容修改为disable no。接着启动xinetd服务,在终端输入:service xinetd restart/reload/start/stop/status。最后设置xinetd开机自动启动,输入:chkconfig -list | grep xinetd。配置完成后测试tftp服务。在本次设计中,使用NFS可以使程序的调试更加方便、高效。用户的根文件需要在主机目录下,由网线到开发板安装的目录和文件的目录为根文件系统的内容,可以将根文件系统的用户编写的程序更新无需重新烧到板子而重新使用,可大大加快程序的调试。下面简述配置NFS服务的过程:首先查看是否

15、安装了nfs服务器程序,在终端输入:rpm -qa | grep nfs,查看结果后输入:rpm -qa | grep portmap。如果没有,则参照以上安装TFTP服务来进行安装。然后,修改配置文件exports,使得共享生效。接着,使用service命令启动nfs服务。可以选择设置nfs开机启动,在终端输入:chkconfig -list | grep nfs,结果正确后输入:chkconfig -list | grep portmap。最后进行测试,输入:mount -t nfs -o nolock :/home/sram/a /mnt。 为了搭建适合ARM体系使用的

16、编译环境,在配置完上述服务后还需要安装交叉编译器。由于ARM体系不同于我们日常用的PC机的体系,所以,要使程序正常执行,还得使用该编译器通过编译成能在我们的mini2440板子上运行的程序,下面简述交叉编译器如何安装:首先,对交叉编译器进行解压,解压到指定的文件中。接着对配置文件操作,修改配置使其使用交叉编译器。操作如下:打开文件 /home/./.bashrc,输入:vi .bashrc,换行后输入:/bin:$PATH。接着查看,在终端输入“arm”,双击tab,得到如下结果:图3-3 查看交叉编译器最后进行WINDOWS环境配置。运行开始菜单中的超级终端,命名并选择类型,选择调试端口,如

17、图:图3-4配置端口设置端口,如图:图3-5 端口设置 完成了上述配置后,开发板的应用环境与windows的调试环境就搭建好了,最后只需要将应用程序移植的开发板上即可。3.3 移植应用程序在本次设计中,我们的核心播放程序为Mplayer,它类似于windows下的播放类型软件。其特点是一款源代码向大众开放,在命令行的界面基础上,图形界面的安装因操作系统而异。该软件的优势在于不仅拖动播放速度飞快, 而且对于破损文件也支持播放,在低配置的机器上使用更能凸显优其势。按照以下步骤安装,首先下载并解压缩MPlayer。切换当工作目录,输入命令:cd /mywk/mplayer/MPlayer-1.0rc

18、2。然后,配置安装信息,必须将命令输入完整,输入命令为:./configure  -prefix=/tmp/mplayer -disable-mencoder -enable-linux-devfs -disable-iconv -enable-network -disable-live  -disable-dvdnav -disable-dvdread -disable-dvdread-internal -disable-libdvdcss-internal -enable-ftp  -enable-libavcodec_a  -enable-liba

19、vcodec_mpegaudio_hp -enable-mad -disable-mp3lib -disable-ivtv -enable-fbdev -enable-ossaudio -enable-cross-compile -cc=arm-linux-gcc -host-cc=gcc -target=arm-linux -enable-static -with-extraincdir=/tmp/libmab/mad/include -with-extralibdir=/tmp/libmab/mad/lib 2>&1 |tee logfile9 ,#ifndef HAVE_P

20、LD .macro pld reg .endm #endif。然后使用命令make,最后使用make相关命令进行归档。此时mplayer已经出来了,安装完成,输入./mplayer new.avi -framedrop -quiet -vf rotate=1,scale=240:320测试。 Libmad是一个源代码开放的音频类型的解码库,在本次设计中,libmad库为我们提供了一系列解码支持,MP3数据解码工作将很容易解决。下面是安装libmad库的一般步骤:首先,解压下载好的libmad文件,切换到工作目录,使用命令为:cd /mywork/libmad/li

21、bmad-0.15.1b;然后配置安装信息为:./configure CC=arm-linux-gcc -host=arm-linux -disable-shared -disable-debugging-prefix=/tmp/libmab/mad,注意格式要正确。因为版本更新的关系,本人发现,只有删除Makefile中的“-fforce-mem”才能通过编译。 最后使用make install10命令归档。Mplayer是本次设计中的核心播放软件,将其下载到开发板的步骤如下:首先,安装主程序,创建相关目录,使用命令mkdir在/usr下创建源码目录;接着移动到创建目录,在终端输入:mv a

22、ll-20060611/* /usr/lib/codecs11;最后进行安装mplayer,配置安装信息为:./configure -prefix=/usr/local/mplayer -enable-gui -enable-freetype -codecsdir=/usr/lib/codecs/ -win32codecsdir=/usr/lib/wincodecs/ -language=zh_CN。注意确保输入内容为:-codecsdir=/usr/lib/codecs/以及-language=zh_CN,最后使用make以及make install结束安装。如果想安装自定义皮肤,与之前解压

23、安装的步骤相同,之后只需将名称改为default即可,此时过程使用mv命令。安装完进行调试,切换到软件目录下。最后输入命令:./mplayer启动该播放器。本次设计中驱动主要为按键驱动,其安装过程如下:首先需要编写按键驱动代码(代码见附录),编译生成 .ko文件;然后将按键的驱动模块,和以前一样,在终端上输入文件名来加载模块KO。完成后需要查看按键模块的主设备号,此时输入:cat /proc/devices | grep keys_driver。接着用上一步得到的主设备号生成按键驱动设备文件,使用的命令为:mknod /dev/keys_driver c <主设备号> 0。最后查看

24、/dev 目录下是否已存在按键驱动设备文件keys_driver,在终端输入ls /dev |grep keys_driver。如果未出现结果则重复上述步骤。4 系统实现 4.1 运行流程 连接电源线,将串口调试线,网线与计算机连接,如图:图4-1 接线将超级终端运行在PC机上,然后打开开发板上的开关,终端会将开始状态显示于开发板。成功启动后,开发板会显示logo,如图4-2: 图4-2 开机显示logo运行播放软件,在超级终端输入./myplayer,按回车键后出现3个选项,分别为播放视频、播放音乐和退出软件,如图: 图4-3 播放器功能选择 选择功能时使用2440开发板的按键k1、k2、k

25、3来选择相应的功能,退出播放器选择功能3,最后关闭开发板电源。5 系统测试5.1 测试流程图5-1 软测试流程5.2 功能测试开机运行测试是对开发板能否正常启动并显示开机logo进行测试,主要检测开发环境是否正确的搭建以及能否正常的运行,同时测试图片显示模块是否正常工作。测试过程:将开发板电源线接通电源并与开发板连接好,将串口调试线将计算机与开发板连接,在计算机上配置好超级终端后打开开发板开关。测试结果:开发板正常运行并显示如图的开机画面。 图5-2 开机运行测试结果基本播放测试主要是播放控制测试,其任务是对播放器提供的调节音量、暂停/继续、停止、关闭等功能进行测试。测试过程:在超级终端里输入

26、 / myplayer运行播放器,然后进入功能界面,在材料中任意选择,播放时执行增加音量,降低音量,暂停,继续,停止,关闭操作。终端控制按键如下:暂停/继续:P或空格键。增加/减小音量:9/0。快进:右方向键。快退:左方向键。测试结果:基本的播放功能得到实现,下图为播放MTV仙剑主题曲时的画面。当按下上述控制键后均可实现其对应功能,下图为按P键暂停播放后所拍摄到的画面。图5-3 播放视频文件同步测试为测试音视频播放是否同步,通过播放音视频同时检测其歌词来测试播放器的音视频同步性能。测试过程:将耳机与开发板正确连接,在超级终端里输入 ./myplayer 来运行播放器,然后进入功能选择界面,按动

27、开发板背面开关k1,则开始播放视频文件,观察视频和音频是否同步。测试结果:测试视频为仙剑主题曲的MTV文件,以下内容为从歌词文件中截取的片段:03:19.09永远不会凋谢的花。03:24.81一转眼忘了时间。03:27.13丢了感觉 黑了世界。03:30.64再逞强 再疯狂 也会伤。当播放至如图所示画面时,图中显示歌词为:再逞强 再疯狂 也会伤,从耳机听到歌词与图中相同,时间与截取的片段相符合。结果显示播放较为同步。图5-4 同步测试在播放过程中,有时出现轻微停顿现象,经多次测试后证实为硬件配置局限导致,由于mini2440开发板的内存较小,处理器效率较低,所以测试结果符合预期目标。结 论本文

28、设计的播放器,与其他视频媒体播放器不同的是,加入了按键驱动模块与图片显示模块,实现了按键控制与开机图片的显示功能。该播放器基于Linux内核,加入按键驱动程序与图片显示程序,最后移植到mini 2440开发板上。该视频媒体播放器,使用方便,能够完成日常的视频播放任务,体积小,占用内存少,支持播放多种格式的音频,视频文件。经过调试,基本达到了目标,如果继续对其进行完善,可以成为一款媒体播放软件。由于技术与时间问题,程序的功能实现依然不够完美。视频媒体播放器只是完成了主要的功能,界面还没有完善,用户体验一般。这些问题都是本文设计播放器的弊端,以后本人将会继续查阅资料对播放器进一步的完善。参考文献:

29、1共创软件联盟;嵌入式操作系统市场分析及技术发展N;计算机世界;2000:23-25.2刘峥嵘 等编著.嵌入式Linux应用开发详解.机械工业出版社.2004:117-118.3孙永杰;引人注目的嵌入式LinuxJ;微电脑世界;2000:40-41.4张海峰,张宏海,张土平;嵌入式LINUX系统J;微计算机信息;2004:288-290.5叶顺流;基于ARM的嵌入式Linux研究与实现D;重庆大学;2005:63-67.6(美)克尼汉,(美)里奇 著,徐宝文,李志 译.C程序设计语言 第2版.机械工业出版社.2004:328-329.7(美)Stanley B.Lippman Barbara

30、E.Moo Josée LaJoie 著,李师贤 等译.C+ Primer中文版 第4版.人民邮电出版社.2006:77-80.8张繁 等编著.Linux C编程从初学到精通.电子工业出版社.2011:186-187.9董文军 编著.GNU gcc 嵌入式系统开发.北京航空航天大学出版社.2010:225-228.10 Weitao Xu, Dongfeng Yuan, Implementation of a Network Streaming Media Player Based on ARM Processor, International Conference on Control Engineering and Communication Technology,2012: 365-369.11Haerr G.Microwindows A,1999.12:258-259.The Desi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论