linux电影播放器设计与实现论文设计学位论文.docx
- 文档编号:25456398
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:50
- 大小:959.52KB
linux电影播放器设计与实现论文设计学位论文.docx
《linux电影播放器设计与实现论文设计学位论文.docx》由会员分享,可在线阅读,更多相关《linux电影播放器设计与实现论文设计学位论文.docx(50页珍藏版)》请在冰豆网上搜索。
linux电影播放器设计与实现论文设计学位论文
北京邮电大 学
毕业设计(论文)任务书
毕业设计(论文)题目:
Linux电影播放器设计与实现
毕业设计(论文)要求及原始数据(资料):
1、课题选择的目的和意义
随着社会的发展以及计算机在各领域的广泛运用,视频播放器以及成为人们日常生活娱乐必不可少的一部分,功能也逐渐增多,丰富了人们的生活。
为了巩固所学知识,也为了顺应时代步伐。
借助此次毕业设计,我希望能运用自己所学的理论知识来完成基于Linux系统的视频播放器的设计,不仅功能满足人们日常需求,而且界面简单易行。
二、设计的任务和要求
本播放器的主要任务和要求是在实现视频播放器的基本的功能的前提之下,在媒体播放器实现过程中实现以下几点:
1.为实验平台移植最新的Linux内核和创建根文件系统,在Linux下安装mplayer视频软件;
2.设计简单的视频播放器界面,提出了在嵌入式系统环境下硬件协同的设计优化方法,并利用该方法优化带硬件加速的视频解码模块。
3.利用开放接口的媒体播放器框架和音频模块,整合视频解码和视频输入输出模块,调用mplayer后台,实现一个完整的媒体播放器。
4.软件测试结果表明,视频播放器可以实时播放图像最大分辨率为352x288的音视频码流,达到了预期设计要求。
5.训练检索文献资料和利用文献资料的能力;(必须包含)
6.训练撰写技术文档与学位论文的能力。
(必须包含)
毕业设计(论文)主要内容:
一、设计步骤
1.为实验平台移植最新的Linux内核和创建根文件系统,在Linux下安装smplayer播放器;
2.视频播放器实现输入、输出、视频解码等模块功能;
3.设计图形操作界面:
在Qt下对播放器进行界面设计,需要实现基本的添加文件、播放、暂停、快进、后退、停止、调节音量等功能;
4.软件测试,并解决测试过程中出现的问题;
二、论文结构
第一章、课题研究背景:
分析当前社会视频播放器的优缺点,介绍该论文的主要工作和研究目的。
第二章、开发平台及开发工具的选择:
对操作系统的介绍及对Qt开发工具的描述,以及相关技术的介绍。
第三章、视频播放器功能介绍:
详细介绍各模块的功能。
第四章、软件测试和改进思想。
结论。
致谢。
学生应交出的设计文件(论文):
1.内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;
2.包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。
主要参考文献(资料):
[1]霍亚飞.Qt及QtQuick开发实战精解.北京航空航天大学出版社,2012
[2]赵国安,郁斌,薛琳强.基于Linux嵌入式原理与应用开发.清华大学,2008
[3][英]NeilMatthew RichardStones.Linux程序设计(第四版).人民邮电出版社
[4]郑莉.C++语言程序设计(第四版).清华大学出版社
[5]韩少云.基于嵌入式Linux的Qt图形程序实战开发.北京航空航天大学出版社
[6](美)艾朱斯特.C++Qt设计模式(第二版).电子工业出版社,2012
[7]JonathanCorbet,AlessandroRubini,GregKroah-Hartman著.LINUX设备驱动程序[M].北京:
中国电力出版社,2006版
[8]李博轩.VisualC++多媒体开发指南[M]清华大学出版社,2000
[9]XX百科.
[10]杨水清.ARM嵌入式Linux系统开发技术.华南理工大学,2003
专业班级
软件1017班
学生
常雅鑫
要求设计(论文)工作起止日期
2014年3月17日~2014年6月27日
指导教师签字
袁军
日期
2014年3月17日
教研室主任审查签字
日期
系主任批准签字
日期
Linux电影播放器设计与实现
摘要
当今社会,随着IT技术的发展和人们文化水平的提高,越来越多的人关注精神生活水平的提升,视频成为必不可少的一部分。
嵌入式设备也无疑已经成为最热门概念之一,丰富了我们的生活,它的功能不断提高使得发展更加迅速,市场上播放设备也越来越多。
所以很多人往往注重外观的同时也注重嵌入在其中的软件操作体验。
本课题将首先了解Linux下嵌入式应用程序开发流程。
以嵌入式视频播放器需求大的社会为背景,提出了在Linux下的视频播放器,具体是基于QT的架构设计。
论文给出一种嵌入式系统中音频视频同步的解决方案,有效提高嵌入式多媒体播放系统的音频视频同步的功能,在此基础上设计并实现了基于Linux。
Qt的嵌入式视频播放器,实现基于QT的嵌入式视频播放器系统。
在本设计中,提出基于mplayer播放器下,给用户一个基本的操作界面,实现对mplayer的相关功能的操作,如暂停,快进,速度的调整等功能。
关键词:
Qt;视频播放器;嵌入式
DesignandimplementationofLinuxmovieplayer
Abstract:
Society,withthedevelopmentofITtechnologies,aswellaseconomicdevelopmentandraisethelevelofspiritualcivilization,morenandmorepeopleareincreasinglyawareofthespiritofenjoymentoflife.Videoisthepreferredchoiceofthepeople.Embeddeddevicescertainlybecomeoneofthemostpopularconceptandenrichourlives.Itsfunctionconstantlyimprovemakesdevelopmentmorerapidly,playbackdevicesonthemarketisalsomoreandmore.Soalotofpeopleoftenpayattentiontoappearanceatthesametimealsopayattentiontoembeddedsoftwareoperatingexperienceinit.
ThistopicwillbethefirsttoknowunderLinuxembeddedapplicationdevelopmentprocess.Embeddedvideoplayerondemandofsocietyasthebackground,putsforwardthevideoplayerunderLinux,concreteisbasedonthearchitecturedesignofQT.Papergivesakindofembeddedsystemsaudiovideosynchronizationsolution,effectivelyimprovetheaudiovideosynchronizationofembeddedmultimediabroadcastsystem,onthisbasis,designedandimplementedbasedonLinux.Qtembeddedvideoplayer,therealizationofembeddedvideoplayersystembasedonQt.Inthisdesign,basedonmplayerplayer,giveusersabasicoperatinginterface,implementationtotheoperationofthemplayerrelatedfunctions,suchas,fastforward,upanddownthevideoswitch,etc.
Key Words:
Qt;Videoplayer;Embeddeddevice.
目 录
一、绪论
(一)研究背景
现如今随着计算机在各个领域的广泛应用,视频播放器在如今社会已融入到人们生活的各个方面,不仅仅是娱乐,在工作和学习中也拥有不可忽视的地位,多数都支持常见的媒体格式、.mp4、.avi、rm、.rmvb等。
随着C语言的发展和嵌入式系统技术的推广,音频解码技术、存储器技术愈发成熟。
在嵌入式系统低端应用中,存在着大量的小型嵌入式应用系统,基于Linux下的视频播放器就是其中一员,由于能满足人们视听享受已成为热门,随着Qt的发展,基于Qt开发的程序成本大大降低,Qt也越来越稳定。
同时Qt强大的开发功能和可移植性实现了多平台的兼容性,可以很快移植到其他平台,从而节约了开发周期和成本,促进嵌入式设备的开发水平。
因此基于Qt的嵌入式系统中实现视频播放器具有深刻的意义和价值。
本文将设计并实现一款界面清楚明了,操作简单,支持多种格式媒体。
该播放器的主要功能是播放一些常见的视频的格式文件,在功能上达到简单易行,消耗资源少。
主要实现的功能:
文件控制(主要用于添加播放文件);播放控制(控制视频的播放状态)。
声音控制(调整音量的大小);显示控制(若播放的是视频文件应当显示图像,可以进行按比例播放或者全屏)。
在文献中都详细介绍了嵌入式多媒体播放器的设计与实现的各种解决方法。
如由Christopher Hallinan.编写的《嵌入式Linux基础教程(第2版)(英文版)》中介绍了引导加载程序、系统初始化、文件系统、闪存和内核、应用程序调试技巧等,还讲述了构建Linux系统的工作原理,用于驱动不同架构的配置,Linux内核源码树的特性,如何根据需求配制内核运行时的行为,如何扩展系统功能,用于构建完整嵌入式Linux发行版的常用构建系统,USB子系统和系统配置工具udev等内容,同时还讲述了构建系统的工作原理,以及怎样将满足项目需求的定制的内核变化加载到内核中。
你会了解用于驱动不同体系结构配置的机制和Linux内核源码树的特性;更重要的是,掌握如何修改系统使之满足自己的需求。
除此之外,还深入探讨了内核命令行参数机制,介绍了它是如何工作的,如何根据需求配置内核运行时行为,如何扩展系统功能,如何导航内核源代码,如何为相关嵌入式系统的不同任务配置内核等内容。
(二)国内外研究现状
基于Linux平台已经存在多款多种媒体播放软件,如:
Xmovie,Xine,Realplayer,QuickTime,Mplayer等。
其中既有以RealNetworks公司的RealPlayer和Apple公司的QuickTime为代表的商业软件,也有以Xine、Mpalyer为代表的自由软件。
其中大部分都是具有较强的专用型,但缺乏较好的移植性,并且主流媒体播放器的设计都是基于桌面平台,虽然功能强大但是用户必须利用桌面平台,人们更希望有专用播放器来代替PC的多媒体功能。
随着近几年嵌入式市场的飞速发展,许多公司都着手进行2嵌入式软件的开发和设计,并且已经研发出多种嵌入式产品,在这当中就包括嵌入式媒体播放器。
但是纵观全局,并没有任何一个嵌入式媒体播放器能够像Microsoft公司的IE浏览器在桌面浏览器市场中一样占据嵌入式媒体播放器市场的垄断地位。
主要是因为现有的嵌入式系统的发展非常迅速,而它们当中的播放器大部分都是从桌面电脑系统上移植而来,并没有充分考虑到嵌入式系统的特殊性,如MicrosoftWindowsCE中附带的播放器就是WindowsMediaPlayer的简化版,所以当前市场上已经出现的多种嵌入式媒体播放器在功能、速度、显示和易用性等各方面的表现还不尽如人意,总的来说,它们存在的局限性大致可以分为下面几类:
1)可扩展的能力不强,大多不具备扩展新媒体类型的功能,或者仅支持新媒体类型的扩充,不支持传输协议的扩充;
2)部分播放器虽然可以运行在多种平台上,可移植性和扩展性都比较好,但是其界面死板,易用性比较差;
3)部分播放器虽然界面美观、使用方便,具有专用的插件接口,但是不开放源码,并且只能运行在特定的平台上,所以其移植性不强,扩展性一般。
从以上的几点分析可以看出,一款好的媒体播放器需要功能强大、易于扩展、界面美观、使用方便,可以通过它达到娱乐或者学习的效果,满足自己的视听享受。
目前嵌入式媒体播放器仍然在不断向前发展,除了继续根据各种音视频编解码标准进行升级和支持更多的应用外,还在拓展其他的应用模式和领域。
例如在手机客户端和浏览器技术、数字电视机顶盒技术集成,实现完整的数字电视软件平台和Java技术、DSP技术结合,解决实时性强的动态视频处理;将多媒体技术应用到更多传统的电器领域,以提供交互式的应用等等。
这些都说明嵌入式媒体播放器有着非常广阔的发展前景。
(三)论文主要完成的工作
本课题所设计的视频播放器是基于Qt的应用程序框架。
我所要做的首先系统的设计阶段:
主要包括需求分析和概要设计、界面设计等;可扩展性架构的设计:
包括环境的建立、系统的选择、Qt的安装及相应的环境变量配置、Mplayer的后台搭建。
视频播放器的代码:
主要基于Qt对播放器的界面进行开发,并实现播放的功能。
本文在研究了当前音视频编解码技术、主流媒体文件格式、流媒体技术以及常见的GUI系统的基础上,针对嵌入式Linux环境下对资源使用的特殊性,采用GTK+实现嵌入式媒体播放器的图形用户界面模块,采用FFMpeg开源解码库作为播放器的解码器,它能够支持多种音频和视频编解码标准,通过采用SDL来实现对音视频的回放,最后采用NC机作为硬件环境对该播放器进行功能测试,通过测试表明该媒体播放器符合设计要求,能够满足嵌入式设备的媒体播放要求。
二、开发平台与开发工具
(一)开发平台与工具
在系统的设计与开发中,软件开发平台及开发工作是关键。
1.Linux
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
它能运行主要的UNIX工具软件、应用程序和网络协议。
它支持32位和64位硬件。
Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991年的10月5日,Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。
Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
现列举几个常用命令如下:
echo 命令
举例:
echo$PATH。
功能:
将命令行中的参数显示到标准输出中。
date命令
举例:
date。
功能:
显示或设置系统时间,没参数直接显示系统当前的日期和时间。
passwd命令
举例:
passwd。
功能:
修改密码。
file命令
举例:
file文件名【参数】。
功能:
确定指定文件类型。
ls命令
举例ls-a显示当前目录下的全部文件(包括隐藏文件)。
功能:
列出目录文件。
touch命令
举例:
touch【选项】文件名。
功能:
修改指定文件的时间标签或者创建一个空文件。
选项:
-a仅改变指定文件的存取时间。
2.Ubuntu
Ubuntu(乌班图)是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。
Ubuntu基于Debian发行版和GNOME桌面环境,与Debian的不同在于它每6个月会发布一个新版本。
Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。
Ubuntu具有庞大的社区力量,用户可以方便地从社区获得帮助。
2013年1月3日,Ubuntu正式发布面向智能手机的移动操作系统。
Ubuntu由MarkShuttleworth(马克·舍特尔沃斯,亦译为沙特尔沃斯)创立,Ubuntu以Debian GNU/Linux不稳定分支为开发基础,其首个版本于2004年10月20日发布。
Debian依赖庞大的社区,而不依赖任何商业性组织和个人。
Ubuntu使用Debian大量资源,同时其开发人员作为贡献者也参与Debian社区开发。
Ubuntu是基于DebianGNU/Linux,支持x86、amd64(即x64)和ppc架构,由全球化的专业开发团队(CanonicalLtd)打造的开源GNU/Linux操作系统。
为桌面虚拟化提供支持平台。
Ubuntu对GNU/Linux的普及特别是桌面普及作出了巨大贡献,由此使更多人共享开源的成果与精彩。
3.QtCreator
Qt是一个完整的C++应用程序开发框架。
它包含一个类库,和用于跨平台开发及国际化的工具。
它是诺基亚开发的一个跨平台的c++图形用户界面应用程序框架。
它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。
QT是完全面向对象的,很容易扩展,并且允许真正地组件变成。
QtCreator是一个用于Qt开发的轻量级跨平台集成开发环境。
QtCreator可带来两大关键益处:
提供首个专为支持跨平台开发而设计的集成开发环境(IDE),并确保首次接触Qt框架的开发人员能迅速上手和操作。
即使不开发Qt应用程序,QtCreator也是一个简单易用且功能强大的IDE。
从1996年,QT已经成为全世界范围内数千种成功的应用程序的基础。
QT也是流行的Linux桌面环境KDE的基础。
基本上,QT同XWindow上的Motif,Openwin,GTK等图形界面库和Windows平台上的MFC,OWL,VCL,ATL是同类型的东西,但是QT与其他开发工具相比,具有优良的跨平台特性、面向对象、丰富的API、大量的开发文档等优点。
信号和槽机制是QT的核心机制,信号和槽是一种高级接口,应用于对象之间的通信,它是QT的核心特性,也是QT区别在于其他工具包的重要地方。
信号和槽是QT自行定义的一种通信机制,它独立于标准的c/c++语言,因此要挣钱的处理信号和槽,必须借助一个成为MOC的QT工具,该工具是一个c++预处理程序,它可以为高层次的事件处理自动生成所需要的附加代码。
GUI工具包是构造图形用户界面所使用的一套按钮、滚动条、菜单和其他对象的集合。
提供一个友好的用户界面是GUI设计的一个宗旨,减少用户的负担、满足用户的需求、界面和用户的互动交流也是在GUI设计中其中必不可少的。
一个出色的界面不仅能够清晰的勾画出所依托系统的大体结构,并且能够大大减少操作的工作量和复杂性。
在UNIX系统里,有很多可供使用的GUI库,其中之一就是Qt库----一个基于C++变成语言的工具包。
它具有以下几个优点:
(1)可移植性
Qt的一个主要设计目标是使跨平台程序开发更加直观,便捷并富有趣味性。
为了实现这一目标,Qt提取了窗口和操作系统的底层基础构造函数,为程序员提供了有意义的一致逻辑界面。
QtAPI在所有支持的平台上都是相同的,Qt的良好封装机制使得Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。
Qt提供了一种称为signals/slots的安全类型来替代callback,这使得各个元件之间的协同工作变得十分简单。
Qt支持下列操作系统:
MicrosoftWindows95/98,MicrosoftWindowsNT,Linux,Solaris,SunOS,HP-UX,DigitalUNIX(OSF/1,Tru64),Irix,FreeBSD,BSD/OS,SCO,AIX,OS390,QNX等等。
(2)易用性和健全性
Qt开发这只需学习一个API,就能编写在所有平台下运行的程序。
统一的跨平台API使得程序员只需侧重于程序本身的增值创新,不用担心基础代码构建和多平台应用的维护和管理。
Qt对不同平台的专门API进行了封装,如文件处理、网络,进程处理、线程、数据库访问等。
Qt软件可以实现多编译器的平稳编译,因此用Qt构建的程序通常是非常健全的。
Qt通过对所有子窗口内存单元分配的处理,简化了内存管理。
程序员只需要侧重于顶层对象的处理。
Qt是一个C++工具包,它由几百个C++类构成,你在程序中可以使用这些类。
因为C++是面向对象的编程语言,而Qt是基于C++构造,所以Qt也具有OOP的所有优点。
(3)运行速度
Qt非常容易使用,且具有很快的速度。
这两方面通常不可能同时达到。
但当谈论Qt时,其易用性和快速则是密不可分的。
这一优点要归功于Qt开发者的辛苦工作,他们话费了大量的时间来优化产品。
另一个原因是它的表现方式。
Qt是一个GUI仿真工具包,这意味着它不使用任何本地工具包作调用。
Qt使用各自平台上的低级绘图函数仿真MSWindows和Motif,当然,这能偶提高程序速度。
由于Qt是基于C++,速度快,易于使用,并具有很好的可移植性。
所以,当需要开发UNIX和MSWindows环境下的GUI程序时,Qt是最佳选择。
4.Mplayer
视频播放器是指能播放以数字信号形式存储的视频的软件,也指具有播放视频功能的电子器件产品。
除了少数波形文件外,大多数视频播放器携带解码器以还原经过压缩的媒体文件,视频播放器还要内置一整套转换频率以及缓冲的算法。
MPlayer是一款开源多媒体播放器,以GNU通用公共许可证发布。
此款软件可在各主流作业系统使用,例如Linux和其他类Unix系统、Windows及MacOSX系统。
MPlayer建基于命令行界面,在各作业系统也可选择安装不同的图形界面。
它的另一个大的特色是广泛的输出设备支持。
大部分视频和音频格式都能通过FFmpeg项目的libavcodec函数库本地支持。
对于那些没有开源解码器的格式,MPlayer使用二进制的函数库。
它能直接使用Windows的DLL。
专有的CSS解析软件和相关格式使MPlayer成为被众多开放源代码播放器所使用的后端。
MPlayer的开发始于2000年。
最初的作者是ArpadGereoffy。
MPlayer最初的名字叫"MPlayer-TheMoviePlayerforLinux",不过后来开发者们简称其为"MPlayer-TheMoviePlayer",原因是MPlayer已经不仅可以用于Linux而可以在所有平台上运行。
第一个版本被称为mpg12playv0.1,并且将libmpeg3在一个半小时之内集成到其中。
之后的版本mpg12playv0.95pre5里被加入了基于avifile的Win32DLLloader的AVI播放功能,从2000年11月MPlayerv0.3之后的版本都一直保留着该功能。
最初绝大多数的开发者都来自于匈牙利,开发者遍布全球。
自从2003年AlexBeregszászi开始接替准备开发第二代MPlayer的ÁrpádGereöffy来维护该项目。
MPlayerG2由于多种原因暂停开发。
Mplayer的特色主要有以下
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 电影 播放 设计 实现 论文 学位