linux电影播放器设计与实现_第1页
linux电影播放器设计与实现_第2页
linux电影播放器设计与实现_第3页
linux电影播放器设计与实现_第4页
linux电影播放器设计与实现_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文)任务书毕业设计(论文)题目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开发实战精解北京航空航天大学出版社,20122赵国安,郁斌,薛琳强基于LINUX嵌入式原理与应用开发清华大学,20083英NEILMATTHEWRICHARDSTONESLINUX程序设计(第四版)人民邮电出版社4郑莉C语言程序设计(第四版)清华大学出版社5韩少云基于嵌入式LINUX的QT图形程序实战开发北京航空航天大学出版社6(美)艾朱斯特CQT设计模式(第二版)电子工业出版社,20127JONATHANCORBET,ALESSANDRORUBINI,GREGKROAHHARTMAN著LINUX设备驱动程序M北京中国电力出版社,2006版8李博轩VISUALC多媒体开发指南M清华大学出版社,20009百度百科HTTP/BAIKEBAIDUCOM/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;视频播放器;嵌入式DESIGNANDIMPLEMENTATIONOFLINUXMOVIEPLAYERABSTRACTSOCIETY,WITHTHEDEVELOPMENTOFITTECHNOLOGIES,ASWELLASECONOMICDEVELOPMENTANDRAISETHELEVELOFSPIRITUALCIVILIZATION,MORENANDMOREPEOPLEAREINCREASINGLYAWAREOFTHESPIRITOFENJOYMENTOFLIFEVIDEOISTHEPREFERREDCHOICEOFTHEPEOPLEEMBEDDEDDEVICESCERTAINLYBECOMEONEOFTHEMOSTPOPULARCONCEPTANDENRICHOURLIVESITSFUNCTIONCONSTANTLYIMPROVEMAKESDEVELOPMENTMORERAPIDLY,PLAYBACKDEVICESONTHEMARKETISALSOMOREANDMORESOALOTOFPEOPLEOFTENPAYATTENTIONTOAPPEARANCEATTHESAMETIMEALSOPAYATTENTIONTOEMBEDDEDSOFTWAREOPERATINGEXPERIENCEINITTHISTOPICWILLBETHEFIRSTTOKNOWUNDERLINUXEMBEDDEDAPPLICATIONDEVELOPMENTPROCESSEMBEDDEDVIDEOPLAYERONDEMANDOFSOCIETYASTHEBACKGROUND,PUTSFORWARDTHEVIDEOPLAYERUNDERLINUX,CONCRETEISBASEDONTHEARCHITECTUREDESIGNOFQTPAPERGIVESAKINDOFEMBEDDEDSYSTEMSAUDIOVIDEOSYNCHRONIZATIONSOLUTION,EFFECTIVELYIMPROVETHEAUDIOVIDEOSYNCHRONIZATIONOFEMBEDDEDMULTIMEDIABROADCASTSYSTEM,ONTHISBASIS,DESIGNEDANDIMPLEMENTEDBASEDONLINUXQTEMBEDDEDVIDEOPLAYER,THEREALIZATIONOFEMBEDDEDVIDEOPLAYERSYSTEMBASEDONQTINTHISDESIGN,BASEDONMPLAYERPLAYER,GIVEUSERSABASICOPERATINGINTERFACE,IMPLEMENTATIONTOTHEOPERATIONOFTHEMPLAYERRELATEDFUNCTIONS,SUCHAS,FASTFORWARD,UPANDDOWNTHEVIDEOSWITCH,ETCKEYWORDSQTVIDEOPLAYEREMBEDDEDDEVICE目录摘要IABSTRACTII一、绪论1一研究背景1二国内外研究现状1三论文主要完成的工作2二、开发平台与开发工具3一开发平台与工具31LINUX32UBUNTU33QTCREATOR44MPLAYER5二相关技术61音视频编解码技术62主流媒体文件格式83流媒体技术9三嵌入式图形用户界面12三、播放器的设计15一流程设计151播放器的系统结构15二界面设计15三模块设计161输入模块162输出模块163插件接口模块164解码库模块17四、播放器功能的实现18一界面的详细开发过程181设置界面大小182声明槽函数183声明及添加按钮194声明及定义QPROCESS19二各功能的实现191文件打开功能192选择一个或者多个文件及目录,如下图所示203播放、暂停功能214选择上一个/下一个播放文件225选择播放时间点功能236设置速度24五、软件测试和改进思想25一软件测试251测试方案252测试用例253测试结果26二改进思想26结论27致谢29外文文献30译文33一、绪论一研究背景现如今随着计算机在各个领域的广泛应用,视频播放器在如今社会已融入到人们生活的各个方面,不仅仅是娱乐,在工作和学习中也拥有不可忽视的地位,多数都支持常见的媒体格式、MP4、AVI、RM、RMVB等。随着C语言的发展和嵌入式系统技术的推广,音频解码技术、存储器技术愈发成熟。在嵌入式系统低端应用中,存在着大量的小型嵌入式应用系统,基于LINUX下的视频播放器就是其中一员,由于能满足人们视听享受已成为热门,随着QT的发展,基于QT开发的程序成本大大降低,QT也越来越稳定。同时QT强大的开发功能和可移植性实现了多平台的兼容性,可以很快移植到其他平台,从而节约了开发周期和成本,促进嵌入式设备的开发水平。因此基于QT的嵌入式系统中实现视频播放器具有深刻的意义和价值。本文将设计并实现一款界面清楚明了,操作简单,支持多种格式媒体。该播放器的主要功能是播放一些常见的视频的格式文件,在功能上达到简单易行,消耗资源少。主要实现的功能文件控制(主要用于添加播放文件);播放控制(控制视频的播放状态)。声音控制(调整音量的大小);显示控制(若播放的是视频文件应当显示图像,可以进行按比例播放或者全屏)。在文献中都详细介绍了嵌入式多媒体播放器的设计与实现的各种解决方法。如由CHRISTOPHERHALLINAN编写的嵌入式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机作为硬件环境对该播放器进行功能测试,通过测试表明该媒体播放器符合设计要求,能够满足嵌入式设备的媒体播放要求。二、开发平台与开发工具一开发平台与工具在系统的设计与开发中,软件开发平台及开发工作是关键。1LINUXLINUX是一套免费使用和自由传播的类UNIX操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。LINUX继承了UNIX以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。LINUX操作系统诞生于1991年的10月5日,LINUX存在着许多不同的LINUX版本,但它们都使用了LINUX内核。LINUX可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。现列举几个常用命令如下ECHO命令举例ECHOPATH。功能将命令行中的参数显示到标准输出中。DATE命令举例DATE。功能显示或设置系统时间,没参数直接显示系统当前的日期和时间。PASSWD命令举例PASSWD。功能修改密码。FILE命令举例FILE文件名【参数】。功能确定指定文件类型。LS命令举例LSA显示当前目录下的全部文件(包括隐藏文件)。功能列出目录文件。TOUCH命令举例TOUCH【选项】文件名。功能修改指定文件的时间标签或者创建一个空文件。选项A仅改变指定文件的存取时间。2UBUNTUUBUNTU(乌班图)是一个以桌面应用为主的LINUX操作系统,其名称来自非洲南部祖鲁语或豪萨语的“UBUNTU”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。UBUNTU基于DEBIAN发行版和GNOME桌面环境,与DEBIAN的不同在于它每6个月会发布一个新版本。UBUNTU的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。UBUNTU具有庞大的社区力量,用户可以方便地从社区获得帮助。2013年1月3日,UBUNTU正式发布面向智能手机的移动操作系统。UBUNTU由MARKSHUTTLEWORTH(马克舍特尔沃斯,亦译为沙特尔沃斯)创立,UBUNTU以DEBIANGNU/LINUX不稳定分支为开发基础,其首个版本于2004年10月20日发布。DEBIAN依赖庞大的社区,而不依赖任何商业性组织和个人。UBUNTU使用DEBIAN大量资源,同时其开发人员作为贡献者也参与DEBIAN社区开发。UBUNTU是基于DEBIANGNU/LINUX,支持X86、AMD64(即X64)和PPC架构,由全球化的专业开发团队(CANONICALLTD)打造的开源GNU/LINUX操作系统。为桌面虚拟化提供支持平台。UBUNTU对GNU/LINUX的普及特别是桌面普及作出了巨大贡献,由此使更多人共享开源的成果与精彩。3QTCREATORQT是一个完整的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,HPUX,DIGITALUNIXOSF/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是最佳选择。4MPLAYER视频播放器是指能播放以数字信号形式存储的视频的软件,也指具有播放视频功能的电子器件产品。除了少数波形文件外,大多数视频播放器携带解码器以还原经过压缩的媒体文件,视频播放器还要内置一整套转换频率以及缓冲的算法。MPLAYER是一款开源多媒体播放器,以GNU通用公共许可证发布。此款软件可在各主流作业系统使用,例如LINUX和其他类UNIX系统、WINDOWS及MACOSX系统。MPLAYER建基于命令行界面,在各作业系统也可选择安装不同的图形界面。它的另一个大的特色是广泛的输出设备支持。大部分视频和音频格式都能通过FFMPEG项目的LIBAVCODEC函数库本地支持。对于那些没有开源解码器的格式,MPLAYER使用二进制的函数库。它能直接使用WINDOWS的DLL。专有的CSS解析软件和相关格式使MPLAYER成为被众多开放源代码播放器所使用的后端。MPLAYER的开发始于2000年。最初的作者是ARPADGEREOFFY。MPLAYER最初的名字叫“MPLAYERTHEMOVIEPLAYERFORLINUX“,不过后来开发者们简称其为“MPLAYERTHEMOVIEPLAYER“,原因是MPLAYER已经不仅可以用于LINUX而可以在所有平台上运行。第一个版本被称为MPG12PLAYV01,并且将LIBMPEG3在一个半小时之内集成到其中。之后的版本MPG12PLAYV095PRE5里被加入了基于AVIFILE的WIN32DLLLOADER的AVI播放功能,从2000年11月MPLAYERV03之后的版本都一直保留着该功能。最初绝大多数的开发者都来自于匈牙利,开发者遍布全球。自从2003年ALEXBEREGSZSZI开始接替准备开发第二代MPLAYER的RPDGEREFFY来维护该项目。MPLAYERG2由于多种原因暂停开发。MPLAYER的特色主要有以下几个(1)内置多种解码器MPLAYER本身编译自带了多种类型的解码器,不需要再安装XVID、FFDSHOW、AC3FILTER、OGG、VOBSUB等等所谓看DVDRIP必备解码器,也不会跟你的电脑原来所安装的解码器有任何冲突。(2)拖动极速播放器MPLAYER相对其它播放器来说,资源占用非常少,不需要任何系统解码器就可以播放各种媒体格式,对于MPEG/XVID/DIVX格式的文件支持尤其好,不仅拖动播放速度快得不可思议,而且播放破损文件时的效果也好得出奇,在低配置的机器上使用更是能凸显优势。(3)强大的音频支持MPLAYER广泛地支持音视频输出驱动。它不仅可以使用X11、XV、DGA、OPENGL、SVGALIB、FBDEV、AALIB、LIBCACA、DIRECTFB、QUARTZ、MACOSXCOREVIDEO,也能使用GGI,SDL及它们的所有驱动,所有VESA兼容显卡上的VESA(甚至不需要X11),某些低级的显卡相关的驱动(如MATROX、3DFX及ATI)和一些硬件MPEG解码器卡,比如SIEMENSDVB、HAUPPAUGEPVRIVTV、DXR2和DXR3/HOLLYWOOD。它们中绝大多数支持软件或硬件缩放,所以你可以享受全屏电影。(4)OSD功能MPLAYER具有OSD屏上显示功能显示状态信息,有抗锯齿带阴影的漂亮大字幕和键盘控制的可视反馈。支持的字体包括欧洲语种/ISO88591,2匈牙利语、英语、捷克语等等,西里尔语和韩语,可以播放12种格式的字幕文件(MICRODVD、SUBRIP、OGM、SUBVIEWER、SAMI、VPLAYER、RT、SSA、AQTITLE、JACOSUB、PJS及我们自己的MPSUB)和DVD字幕(SPU流、VOBSUB及隐藏式CC字幕)。(5)MENCODERMENCODER(MPLAYERSMOVIEENCODER)是一个简单的电影编码器,设计用来把MPLAYER可以播放的电影(AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET/PVA)编码成别的MPLAYER可以播放的格式。它可以使用各种编解码器进行编码,例如DIVX4(1或2PASSES)、LIBAVCODEC、PCM/MP3/VBRMP3音频。同时也有强大的插件系统用于控制视频。二相关技术1音视频编解码技术音视频压缩编解码技术是媒体播放器的核心技术之一,通常使用在计算机、数据库、通信、数字电视和交互式系统中的关键多媒体技术。从目前的主要的压缩编解码技术来看,虽然被人们经常应用的技术有很多种,但是得到广泛的市场认可的主要标准有国际标准化组织(ISO)的MPEG(MOVINGPICTURESEXPERTSGROUP)系列标准、国际电信联盟(ITU)和国际标准化组织联合提出的H264标准、以及MICROSOFT的WMV标准,以下是对这三种标准技术的介绍。(1)MPEG标准MPEG(动态图像专家组)成立于1988年,它是视频编码标准中一个大的集合,也是我们平时日常生活当中所见到的最普遍的视频标准。MPEG标准主要有以下五个,MPEG1、MPEG2、MPEG4、MPEG7及MPEG21等。MPEG标准的视频压缩编码技术主要利用了具有运动补偿的帧间压缩编码技术以减小时间冗余度,利用DCT技术以减小图像的空间冗余度,利用熵编码则在信息表示方面减小了统计冗余度。这几种技术的综合运用,大大增强了压缩性能。该专家组建于1988年,专门负责为CD建立视频和音频标准,而成员是为视频、音频及系统领域的技术专家。他们成功将声音和影像的记录脱离了传统的模拟方式,制定出MPEG格式,从此视听传播方面进入了数码化时代。MPEG1音视频压缩是为了储存和发布数字音视频而建立起来的压缩格式。它制定于1992年,是为工业级标准而设计,可适用于不同带宽的设备,如CDROM、VIDEOCD、CDI。它可针对SIF标准分辨率(对于NTSC制为352240;对于PAL制为352288)的图象进行压缩,传输速率为15MBITS/SEC,每秒播放30帧,具有CD(指激光唱盘)音质,质量级别基本与VHS相当。MPEG1也被用于数字电话网络上的视频传输,如非对称数字用户线路(ADSL),视频点播(VOD),以及教育网络等。MPEG2音视频编码是在MPEG1基础上的扩展,MPEG2能适应高码流的要求,特别适合高清电视(HDTV),其可支持的码流为1560MBPS。MPEG2的音频编码可提供左右中及两个环绕声道,以及一个加重低音声道,和多达7个伴音声道(DVD可有8种语言配音的原因),MPEG2还可用于为广播,有线电视网,电缆网络以及卫星直播(DIRECTBROADCASTSATELLITE)提供广播级的数字视频。MPEG2的其中一个特点是可提供一个较广的范围改变压缩比,以适应不同画面质量、存储容量、以及带宽的要求。为适应在互联网上多媒体数据的灵活传输,ISO/IEC于1998年又发布了MPEG4标准,MPEG4是基于音/视频对象的可分级编码技术,其码率可从5KBPS2MBPS的范围内变化,它综合了数字电视、交互图形学和INTERNET等领域的技术。它在要求高效压缩编码的同时,强调多媒体网络通信的灵活性和交互性。这个标准主要应用于视像电话、视像电子邮件和电子新闻等,对传输速率要求较低。MPEG4利用很窄的带宽,通过帧重建技术进行数据压缩,以求用最少的数据获得最佳的图像质量。与MPEG1和MPEG2相比,MPEG4的优点是特别针对低带宽等条件设计算法,所以MPEG4的压缩比更高,使低码率的视频传输成为可能。在公用电话线上可以连续传输视频,并能保持图像的质量,这是其它技术做不到的。其次它节省存储空间,在同等条件如场景、图像格式和压缩分辨率条件下,经过编码处理的图像文件越小,所占用的存储空间越小。由于MPEG4算法较MPEG1、MPEG2更为优化,因而在压缩效率上更高。2H264标准H264是在早期视频编码标准的运动补偿转换编码范例基础上创建的。它是ITUT的VCEG(视频编码专家组)和ISO/IEC的MPEG(活动图像编码专家组)组成的联合视频组(JOINTVIDEOTEAM,JVT)开发的一个新的数字视6频编码标准,它既是ITUT的H264,又是ISO/IEC的MPEG4的第10部分。H264较早期的MPEG2标准相比,该标准大大降低了比特速率。该技术不受早期标准所用构建模块的制约,整个技术的设计无需后向兼容性。H264提供的一些可提高压缩效率的重要编码工具有改进型空间交互预报、增强型时间预报(通过四分之一采样运动补偿、可变模块大小运动补偿、多重假设运动补偿和加权预测工具实现)、高效的基于上下文的熵编码(通过变长度编码或二进制运算编码工具实现)以及内环内容和编码模式适应性解锁滤波。实验表明,要实现相近的视觉质量,同MPEG4ASP编码相比,H264把比特速率降低了35到50,同MPEG2相比,降低了40到65。另外,同MPEG4SP相比,H264BP可以在宽广的比特速率范围内把峰值信噪比降低50以上。3WMV标准WMV(WINDOWSMEDIAVIDEO)标准,是MICROSOFT公司所推出的一种采用独立编码方式并且可以直接在网上实时观看视频节目的文件压缩格式。由WMV标准生成的文件一般同时包含视频和音频部分。视频部分使用WINDOWSMEDIAVIDEO编码,音频部分使用WINDOWSMEDIAAUDIO编码。它是在MICROSOFT公司的另外一种文件格式ASF(ADVANCEDSTREAMFORMAT)升级延伸而来得。它作为一种经久不衰的音视频编码标准,一直在不断的改进。WMV格式的主要优点包括本地或网络回放、可扩充的媒体类型、部件下载、可伸缩的媒体类型、流的优先级化、多语言支持、环境独立性、丰富的流间关系以及扩展性等。2主流媒体文件格式目前的主流媒体文件格式有AVI、REALMEDIA的RM和RMVB格式,WINDOWSMEDIA的ASF、WMV格式,MP4和3GP,QUICKTIME的QT格式等。下面将对上述几种媒体文件格式进行简要的分析。(1)AVI格式AVI英文全程是AUDIOVIDEOINTERLEAVED,即“音频视频交错”,就是可以将视频和音频交织在一起进行同步播放,可以跨多个平台使用。文件体积过大是他的缺陷,而且压缩标准不统一,因此经常会遇到高版本WINDOWS媒体播放器播放不了采用早期编码编辑的AVI格式视频,而低版本WINDOWS媒体播放器又播放不了采用最新编码编辑的AVI格式视频。所以在使用时常常需要临时下载更新编码编辑器。2REALMEDIA的RM和RMVB格式REALMEDIA是REALNETWORKS公司所开发的流式音频、视频文件格式,主要用来在低速率的网络上实时传播活动视频影像,可以根据网络数据传输速率的不同而7采用不同的压缩比率,从而实现影像数据的实时传播和播放。REALMEDIA包括RM(REALVIDEO)、RA(REALAUDIO)和REALFLASH三类文件。RM用来传播连续视频数据,RA用来传播CD音质的音频数据,而REALFLASH则是REALNETWORKS公司与MACROMEDIA公司共同推出的采用矢量技术的动画格式。作为最早的INTERNET流式技术,在音视频方面REALMEDIA已成为事实上的网络音视频播放标准。RMVB这是一种由RM视频格式升级延伸出的新视频格式,它的先进之处在于RMVB视频格式打破了原先RM格式那种平均压缩采样的方式,在保证平均压缩比的基础上合理利用比特率资源,就是说静止和动作场面少的画面场景采用较低的编码速率,这样可以留出更多的带宽空间,而这些带宽会在出现快速运动的画面场景时被利用。这样在保证了静止画面质量的前提下,大幅地提高了运动图像的画面质量,从而图像质量和文件大小之间就达到了微妙的平衡。3WINDOWSMEDIA的ASF、WMV格式ASF是(ADVANCEDSTREAMINGFORMAT高级串流格式)的缩写,是MICROSOFT为WINDOWS98所开发的串流多媒体文件格式。WINDOWSMEDIA是MICROSOFT提出的信息流式播放方案。其核心是ASF(ADVANCEDSTREAMFORMAT)文件,是一种包含音频、视频、图像以及控制命令、脚本等多媒体信息的数据格式。这个词汇当前可和WMA及WMV互换使用。ASF支持任意的压缩/解压缩编码方式,并可以使用任何一种底层网络传输协议,具有很大的灵活性。并将ASF用作WINDOWS版本中多媒体内容的标准文件格式,这无疑将对INTERNET特别是流式技术的应用和发展产生重大影响。ASF最大优点就是体积小,因此适合网络传输,也同样适于在本地播放。用户可以将图形、声音和动画数据组合成一个ASF格式的文件,当然也可以将其他格式的视频和音频转换为ASF格式,而且用户还可以通过声卡和视频捕获卡将诸如麦克风、录像机等等外设的数据保存为ASF格式。WMV是微软推出的一种流媒体格式,它是在“同门”的ASF(ADVANCEDSTREAMFORMAT)格式升级延伸来得。在同等视频质量下,WMV格式的体积非常小,因此很适合在网上播放和传输。WMV不是仅仅基于微软公司的自有技术开发的。从第七版(WMV1)开始,微软公司开始使用它自己非标准MPEG4PART2。但是,由于WMV第九版已经是SMPTE的一个独立标准(421M,也称为VC1),所以WMV的发展已经不象MPEG4那样是一个它自己专有的编解码技术。(4)MP4和3PG目前MP4最流行使用的压缩方式为MPEG4。移动手持设备视频多数支持此格式,但由于硬件平台的没有统一的标准,软件系统也是由厂商自行设计,各种设备可播放的MP4编码方式也不同。3GP使用MPEG4或H263两种影片编码方式,以及AMRNB或AACLC两种声音储存方式,可以将影片以更经济的方式存放在手机或是其他行动装置里,所以它最大的优点就是容量小。5QUICKTIME的QT格式QUICKTIME的QT格式是APPLE公司于1991年推出的能在计算机上播放高品质视频图像的技术,它几乎支持所有主流的个人计算平台和各种格式的静态图像文件、视频和动画格式,支持RLC、JPEG等领先的集成压缩技术,提供了大约150多种视频效果。具有内置WEB浏览器插件(PLUGIN)技术,支持IETF流标准以及FTP和HTTP等网络协议,现已成为是数字媒体领域的工业标准。QUICKTIME的QT电影文件格式定义了存储数字媒体内容的标准方法,不仅可以存储单个的媒体内容(如视频帧或音频采样),而且能保存对该媒体作品的完整描述;QUICKTIME的QT文件格式被设计用来适应为与数字化媒体一同工作需要存储的各种数据。因为这种文件格式能用来描述几乎所有的媒体结构,所以它是应用程序间(不管运行平台如何)交换数据的理想格式。QT文件格式中媒体描述和媒体数据是分开存储的,媒体描述或元数据(METADATA)叫做电影(MOVIE),包含轨道数目、视频压缩格式和时间信息。同时MOVIE包含媒体数据存储区域的索引。媒体数据是所有的采样数据,如视频帧和音频采样,媒体数据可以与QUICKTIMEMOVIE存储在同一个文件中,也可以在一个单独的文件或者在几个文件中。3流媒体技术流媒体是指在INTERNET/INTRANET中使用流式传输技术的连续时基媒体,如音频、视频等多媒体文件。在网络上传统的多媒体文件的传输方式,基本上只有文本、图像可以按照原格式在网上传输,动画、音频、视频等虽然可以直接在网上播放,但文件偏大,即使使用专线上网,也要等完全下载后才能观看。流式传输方式可将视频、音频、动画等多媒体文件经编码工具的特殊处理,分成一个个压缩包,由流媒体服务器向用户计算机连续、实时传送。在采用流式传输方式的系统中,用户不必等到整个文件全部下载完毕,只需经过几秒或几十秒的启动延迟即可观看,文件的其余部分将在后台服务器继续下载。该技术首先在用户端的计算机上创建一个缓冲区,预先下载多媒体文件的部分数据作为缓冲,播放程序读取缓冲区内的数据进行播放。在播放的同时,用户计算机在后台继续下载多媒体文件的剩余部分填充缓冲区。这样,当网络出现抖动(JITTER),实际连线速度小于播放消耗数据速度时,可以避免播放的中断,也使得播放质量得以维持。流媒体技术是为解决以INTERNET为代表的中低带宽网络上多媒体信息传输问题而产生、发展起来的一种网络新技术,可适应从窄带到宽带任意的网络带宽。目前,实现流媒体传输主要有两种方式实时流(REALTIMESTREAMING)传输和顺序流(PROGRESSIVESTREAMING)传输。一般来说,如使用HTTP服务器,文件即通过顺序流发送,即为顺序流传输。如视频为实时广播,或使用流传输媒体服务器,或应用如RTSP的实时协议,即为实时流传输。采用哪种传输方式依赖于不同需求,两种方式有着不同特点顺序流传输是顺序下载,在下载文件的同时用户可观看在线媒体,在给定时刻,用户只能观看自己下载的那部分,而不能跳到还未下载的部分,顺序流传输不像实时流在传输期间根据用户连接的速度做调整。由于标准的HTTP服务器可发送这种形式的文件,不需要其他协议,它经常被称作HTTP流传输。顺序流传输比较适合高质量的短片段,如片头、片尾和广告。由于文件传输是无损下载的,这种方法保证电影播放的最终质量。这意味着用户在观看前,必须经历延时,对较慢的连接尤其如此。实时流传输保证媒体信号带宽与网络连接匹配,使媒体可被实时观看到。实时流媒体传输需要专用的流媒体服务器与传输协议。实时流传输总是实时传送,特别适合现场事件,也支持随机访问,用户可快进或后退以观看前面或后面的内容。其必须匹配连接带宽,这意味着以调制解调器速率连接时图像质量较差。而且,由于出错丢失的信息被忽略掉,网络拥挤或出现问题时,视频质量很差。实时流传输需要特定服务器,如QUICKTIME,STREAMINGSERVER,REALSERVER。这些服务器允许用户对媒体发送进行更多级别的控制,因此系统设置、管理比标准HTTP服务器更复杂。而流媒体的实现原理简单地说,就是通过采用高效的压缩算法,在降低文件大小的同时伴随质量的损失,让原有的庞大的多媒体数据适合流式传输。然后通过架设流媒体服务器,利用各种实时协议传输流数据。FIGURE21STREAMINGMEDIAIMPLEMENTATIONPRINCIPLE多媒体数据必须进行预处理才能适合流式传输,这是因为目前的网络带宽相对多媒体巨大的数据流量来说还显得远远不够。预处理主要包括两方面一是采用先进高效的压缩算法;二是加入一些附加信息把压缩媒体转为适合流式传输的文件格式。其技巧在于压缩原始的A/V内容,使其能够在窄带或宽带通道上以流的方式传给用户。预处理在编码器内完成,编码方式的选择可以是多种多样的。编码过程是一种艺术,应该考虑不同编码速度的定制性能、包损失的容错性与网络的带宽波动、最低速度下好的A/V品质、编码/流式传送的成本、流的控制以及其他方面。目前流媒体播放技术市场上主流的流媒体技术有三种,分别是REALNETWORKS公司的REALMEDIA;MICROSOFT公司的WINDOWSMEDIA和APPLE公司的QUIEKTIME。这三家公司的技术都有自己的专利算法、专利文件格式甚至专利传输控制协议。下面就这三种技术进行简要的介绍(1)APPLE公司的QUIEKTIME技术APPLE公司的QUICKTIME适用于MACOS和WINDOWS的跨平台的多媒体体系结构。它包括一系列多媒体操作系统扩展(就像WINDOWS里的DLL被执行)、一个全面的API、文件格式和一系列用户应用比如说QUICKTIMEPLAYER,THEQUICKTIMEACTIVEXCONTROL和THEQUICKTIMEBROWSERPLUGIN。QUICKTIME是一个完全的多媒体体系结构而不仅仅是一个媒体播放器。它支持创建、产生和传送各种广泛的媒体文件。QUICKTIME提供了对于整个进程的端到端的支持实时的捕获媒体信号、有步骤的合成媒体信号、输入输出媒体当前媒体和编辑、合成、压缩、传输用户的重放。QUICKTIME的体系结构是由灵活的工具集和插件组件构成的。为了支持全面的多媒体任务,QUICKTIMEAPI包括采集工具集(如电影工具箱,图象压缩管理器,序列截图器等)和QUICKTIME流API。电影工具箱用来初始化QUICKTIME实时的打开、播放、编辑和保存电影文件;图象压缩器是独立于设9备和驱动压缩的压缩和解压缩图象数据;序列截图器是一种从一些实时的数据源(比如视频采集卡或者音频输入)捕获和记录采样的组件框架;QUICKTIME流API是用来可以使用标准流协议(比如RTP,RTSP)来发送和接收实时流数据。此外还有一些其他的工具集,如QUICKTIME虚拟区,精灵助手工具箱和有线电影API。不同的工具集通常分享数据类型和范例设计,使得进行后续开发变的简单。当想进入QUICKTIME通常自动处理的任务时许多工具集是非常有用的。例如;当要用到电影工具箱来播放电影时,它可能不需用户和流API或者图形压缩管理器来交互就能打开实时流数据和解压缩一系列的图片,但是要检查流的丢包或者确定图片每个时间的解压缩情况就可以使用恰当的工具集来实现。QUICKTIME的体系结构广泛的使用组件,使得它模块化、灵活和可扩展。一个QUICKTIME的组件可以分享到已被定义的API的源代码。可以把新的组件加入到QUICKTIME里并当在实际应用到它时会被自动加载,这主要是因为它和现有存在的普通版本类型响应的是同一个API。例如当QUICKTIME工作在一些媒体类型(音频、视频、文本、精灵、FLASH、3D模块、图片虚拟社区和其他)时,每一个媒体类型都被媒体处理组件所支持,组件所支持的媒体数目和类型在不断的增加,用户可以通过创建一新的媒体处理组件来增加新的媒体类型给QUICKTIME。(2)REALNETWORKS公司的REALMEDIA技术REALNETWORKS公司是世界领先的网上流式音视频解决方案的提供者,提供从制作端、服务器端到客户端的所有产品。其在20世纪90年代中期首先推出了流媒体技术,并随着互联网的急速发展而壮大了自身,在市场上处于主动地位,并拥有最多的用户数量,它的客户端播放器REALPLAYER的全球注册人数已经超过了16亿人。REALNETWORKS公司是世界领

温馨提示

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

评论

0/150

提交评论