基于QT的视频播放器设计_第1页
基于QT的视频播放器设计_第2页
基于QT的视频播放器设计_第3页
基于QT的视频播放器设计_第4页
基于QT的视频播放器设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

第一章绪论21世纪以来,计算机技术和网络技术发展飞速,也使得人们的生活水平大大提高。各式各样的电子产品都在向着数字化、综合化、人性化的方向发展,嵌入式产品以其丰富的功能和便携性逐渐赢得了普通消费者的喜爱,被广泛应用于各种领域[1],音视频播放作为人们日常生活中常用的一项功能受到了很高的关注。1.1课题研究背景及意义在过去,由于计算机性能和网络带宽的限制,人们在互联网上的信息交流大多是通过文本、图像等静态信息来完成,伴随着信息革命带来的影响渗透到世界的每一个角落,计算机的处理性能和远程网络通信技术都得到了发展,人们对于彼此间在网络上的信息交流通信提出了更高的要求,不再满足于只有文本、图像和其他静态信息的信息通信方式,多媒体技术得到了迅速发展,越来越多的信息被多媒体化,多媒体播放器的重要性逐渐凸显,成为了人们日常生活、办公娱乐中不可或缺的一部分。视频播放器是指能播放以数字信号形式存储的视频的软件,也指具有播放视频功能的电子器件产品[2]。经过多年发展,多媒体播放器的功能基本已经确定,但是市面上的每款播放器都有各自的优缺点,有的播放器支持解码的文件类型多,但是其GUI图形用户界面较为复杂;有的播放器操作简单但是对于文件管理支持较差。在播放一些编码格式比较少见的视频时,用户有时需要逐个尝试能够顺利播放的播放器,这无疑浪费了用户的时间,降低了效率。本文旨在设计一款多媒体播放器,对于主流的视频编码格式和较少见的视频编码格式都能顺利解码播放,同时带有易用的GUI图形用户界面,提升普通用户在使用时的效率。多媒体行业的发展速度很快,作为最影响用户观感的一项指标,视频分辨率的发展有目共睹。早期的显示器采用CRT技术,显示分辨率一般较低,多为1280×720像素的720p分辨率;在液晶显示器出现后,显示器的尺寸和分辨率都得到了高度发展,如今常见的显示器大多采用1920×1080像素的1080p分辨率,更大的分辨率意味着同一时间内CPU需要处理的数据量也在上升。近年来,多媒体行业更是在加快速度步入4K超高清分辨率时代,为了提高多媒体播放器解码视频时的处理效率,视频的编码方式也在不断更新,从H.261到后来的H.263再到现在普遍使用的H.264和HEVC(H.265),这些都对多媒体播放器的扩展性和升级性提出了新的考验。1.2国内外发展现状多媒体技术在国外的起步较早,许多相关技术都由国外开发并制定了相关的技术标准。国内虽然起步稍晚,但是得益于我国在互联网宽带建设上的优势,使得国内的多媒体技术发展飞速。根据《中国移动互联网行业市场前瞻与投资战略规划分析报告前瞻》数据,截止2013年底,我国仅手机网民数量就已经超过5亿,随着wifi与移动4G的普及,移动互联网网民呈爆发趋势[3]。在如此迅猛的互联网规模、技术、设施、服务和需求的发展趋势下,越来越多的信息被多媒体化,我们正处在一个多媒体世界中。图1.1JukeboxMultimedia爱可视公司在2002年推出了世界上第一款多媒体播放器——JukeboxMultimedia。与现在的数码产品丰富的功能不同,由于当时的技术局限,JukeboxMultimedia只有视频播放的功能,没有其他的功能,但其单一的功能不表示其价格便宜,作为当时的新兴产品,JukeboxMultimedia的高昂售价让不少消费者望而却步。虽然昂贵的价格、单一的功能让JukeboxMultimedia在当年的销量不佳,但它的出现体现着多媒体行业的飞速发展。爱可视是公司于20世纪80年代成立于法国,主要从事研发、生产和销售一系列特色鲜明、便携精巧的移动数码产品。爱可视(ARCHOS)的意思是“领导者、向导”,而爱可视公司也正如其名,总是走在行业的前沿,发布着让人眼前一亮的产品,引领着潮流。在JukeboxMultimedia的发布正式开辟了多媒体播放器这一市场后不久,微软公司(Microsoft)、索尼公司(Sony)、三星公司(Samsung)等美日韩公司也纷纷入场,在各家厂商的相互竞争之下,多媒体播放器发展出越来越多功能,而价格作为一个消费者非常敏感的因素,也逐渐回归到了普通用户可以接受的范围内。作为用户最直观的体验因素,多媒体播放器的屏幕显示效果至关重要,最开始的多媒体播放器只带有一个支持几十万色的小屏幕,同时分辨率也普通较低,这使得用户的观看体验无法得到保证。仅仅不到两年的时间,市面上的许多多媒体播放器就已经开始使用能够显示超过一千万色的屏幕,同时屏幕的尺寸和分辨率也得到了升级。然而在发展迅速的多媒体行业,仅仅有着优秀的硬件是不够的,视频制作时的分辨率提升和编码技术的更新换代很快,这对不能同步进行升级的多媒体播放器提出了考验。时间来到2008年前后,随着运行着iOS、安卓(Android)和塞班(Symbian)等操作系统的手机相继出现,智能手机这一概念开始深入人心,相比于只能拨打电话、接收短信的功能手机,智能手机不仅在硬件上采用了色彩更加丰富、尺寸更大、分辨率更高的触摸屏幕,同时在娱乐功能的扩展性上也做了许多创新,用户可以在智能手机上安装各类软件来实现各式各样的功能。为了展现智能手机的优秀屏幕素质,厂商们大都为自家的智能手机预装了多媒体播放器软件,同时还有许多开发者也开发出适用的第三方多媒体播放器,这些播放器不仅功能丰富、界面优美,而且可以通过连接网络进行升级,很快智能手机就取代了传统的多媒体播放器。相较于手机等嵌入式设备,PC个人电脑上的多媒体播放器发展更为久远,产生不少了知名多媒体播放器,如微软公司(Microsoft)开发的WindowsMediaPlayer、RealNetWorks公司开发的RealPlayer、苹果公司(Apple)开发的QuickTimePlayer等,其中有不少日后也被移植到了智能手机端。表1.1主流多媒体播放器对比否多否Windows、Linux、MacOS否Windows、MacOS是少无Windows、Linux、MacOS如表1.1所示,对四款主流多媒体播放器进行对比,不难发现WindowsMediaPlayer虽然支持目前流行的大多数多媒体格式,如ASF、WMW、WMA、WAV、AVI、MP4等,但是由于其对系统资源的占用较大,在较低配置下的运行速度较慢。QuickTimePlayer主要支持的格式为MOV,但是由于很多MOV编码软件都是基于MacOS平台的,因此这种视频格式在国内还是稍逊一筹[4]。同时,因为商业的原因,WindowsMediaPlayer、QuickTimePlayer等多媒体视频播放器的源码都是非公开的[5],而MPlayer作为基于Linux开发的一款多媒体播放器,不仅功能丰富,占用系统资源少,同时其遵守GNU协议[6],开放了其源码和插件接口,这给本文后续研究中设计一款多媒体播放器和移植提供了便捷。1.3论文主要内容及章节安排本文以设计与实现一款功能齐全、使用便捷、GUI图形用户界面易用的多媒体播放器为目标,从课题涉及的多媒体领域相关技术入手,对Qt开发平台、FFmpeg解编码器等进行了研究,对系统需求进行分析并确定设计方案,使用QtCreator进行代码编写,并对程序运行时产生的bug进行修复,最终完成对系统的测试与评价。论文的内容安排如下:第一章简要介绍了国内外多媒体技术和多媒体播放器的发展现状,对市面上主流的几款多媒体播放器进行简单比较,最后介绍本文的各章节的研究内容和结构安排。第二章对多媒体视频播放器的用户需求分析,确定需要实现的播放器功能,完成各功能的划分和多媒体播放器的工作流程的指定,选取适当的开发平台及相关技术,最后确定整体的设计方案。第三章对项目所使用的开发平台及软件,包括Qt开发平台、GUI用户图形界面的设计与编写、Qt特有的“信号与槽”机制、FFmpeg解码器等进行简单的介绍,查阅MPlayer的用户手册,对其使用方法有一定了解。第四章对多媒体播放器的设计概要逐步进行实现,包括使用QtDesigner进行GUI图形用户界面的布局设计、将功能划分到各个不同的模块,通过各模块直接相互调用实现用户所需要的功能等。第五章中针对用户需求,对多媒体播放器的文件解码能力、多媒体播放器使用时的流畅度、播放时各功能的可用性和播放器的稳定性等进行测试。第二章软件总体方案与设计2.1软件功能需求分析通过对比市面上多款主流的多媒体视频播放器,确立本文所设计的多媒体播放器有如下功能:视频播放、视频暂停、播放上一个文件、播放下一个文件、视频快进、视频快退、视频加速、视频减速、音量调节等功能。图2.1多媒体视频播放器的功能划分对所需要实现的功能进行分析,可以将多媒体视频播放器的功能模块划分成如图2.1所示,视频播放、暂停、结束等基础功能由播放模块实现,对正在播放的视频画面进行各种控制的功能由控制模块实现,音量的大小控制和静音功能由音量模块实现。2.2软件整体方案设计本设计主要利用Qt开发平台实现,采用MPlayer作为后端,负责视频的解码和视频文件信息的读取,并将输出图像和视频的时长、格式等信息传回对应输出界面。在播放视频文件时,多媒体视频播放器的工作流程如图2.2所示,系统初始化后,用户选取播放文件,由MPlayer读取文件类型、时长等信息,然后使用内置的FFmpeg解码器对视频文件中的音视频分别进行解码,将经过解码得到的音频、视频同步后,视频传输到GUI图形用户界面的播放器窗口输出,音频传输到扬声器等外设输出,如此重复整个流程指定选定文件播放完毕。图2.2多媒体视频播放器的工作流程播放器具体功能可分为以下几个部分:(1)视频播放:读取用户指定的视频文件信息,包括文件编码格式、时长等,然后对文件进行解码,对解码后的音视频进行同步之后输出到外设;(2)菜单操作:用户通过多媒体播放器GUI图形用户界面中控制栏提供的按钮实现对播放器的控制,包括视频的播放、暂停与停止,快进或快退,切换到播放列表队列中的上一个视频、下一个视频,修改播放视频的速度,调节音量大小或者切换静音等;(3)信息显示:多媒体播放器播放时会将运行窗口标题自动更改为正在播放的文件名,同时在多媒体播放器的GUI图形用户界面上有当前视频的时长和当前播放时长、已播进度等信息。多媒体播放器的GUI图形用户界面设计使用QtCreator集成的QtDesginer完成,GUI图形用户界面的组件分布如图2.3,包含以下部分:(1)视频播放窗口:负责显示输出MPlayer传输回的画面图像;(2)控制栏:包括可拖动的进度条、音量条,播放、暂停、上一个视频、下一个视频、快进、快退、加速播放、减速播放等功能按钮;(3)信息栏:用于显示视频总时长和已播时长和播放进度等;(4)播放列表窗口:由一个显示播放队列的窗口和一个添加文件按钮、一个删除文件按钮构成。图2.3GUI用户图形界面设计根据多媒体播放器的GUI图形用户界面设计和功能划分,最终可以将各组件如图2.4分类,这样只需要为每个组件编写对应的功能函数,调用之后就可以实现相应功能,提高了程序代码的易读性。图2.4组件分类2.3开发平台选择为了使本文研究的多媒体播放器能提供一个易用的GUI用户图形界面,故选择使用Qt作为开发平台,MPlayer作为后台播放器提供文件解码和信息读取等功能,并将解码出的视频画面通过Qt开发的GUI用户图形界面输出。多媒体播放器的架构如图2.5,在此工作状态下,MPlayer工作在后台(Slave)模式,Qt负责将控制命令通过特定的命令管道传输到MPlayer,实现对MPlayer的控制,同时提供视频播放窗口给MPlayer返回的输出画面。图2.5多媒体播放器的架构用户与Qt绘制的GUI图形用户界面及MPlayer之间的交互过程如图2.6,Qt负责提供视频画面的输出窗口和多媒体播放器的功能按钮,MPlayer负责将选定的视频文件进行解码并将同步之后的音视频分别传输到对应的外设输出。通过Qt特有的信号与槽机制,可以在GUI图形用户界面上提供各个功能按钮,用户点按功能按钮后,Qt将对应的命令传送到处于Slave模式下的MPlayer,MPlayer接收到命令并完成执行后将输出返回给Qt的用户界面,从而实现用户对MPlayer的间接控制,降低了用户记忆命令的时间成本和学习成本。图2.6用户与软件的交互过程第三章软件开发相关技术3.1Qt开发平台3.1.1Qt发展历程Qt由奇趣科技公司(Trolltech)所开发,虽然奇趣科技公司(Trolltech)在1994年才于挪威成立,但是早在公司成立的前几年,Qt相关产品的开发就已经在进行之中[7],在奇趣科技公司(Trolltech)成立后的第二年,Qt正式发布了第一个商业版本,并不断保持着更新,到现在为止Qt已经得到了全世界各地的跨平台开发者的使用与认可。Qt选择使用C++作为其开发语言,这也就意味着Qt天生具有跨平台方面的优势。虽然Qt在一开始只是为了向跨平台的软件开发提供统一的GUI图形用户编程接口,但伴随着Qt的不断发展,如今的Qt已经有了统一的数据库操作接口和网络编程接口,能够使用Qt的场景也越来越多。作为一款开发工具,Qt不仅支持使用宏,还允许使用组件编程,同时Qt也能够使用被称为元对象编译器(MetaObjectCompiler,moc)的特殊编译器,这为使用Qt开发GUI应用程序提供了诸多便利。目前Qt支持以下操作系统平台:(1)微软公司(Microsoft)所开发的Windows系统(2)各种UNIX操作系统如SunSolaris、SGIIRIX、HP-UX、IBMAIX等(3)苹果公司(Apple)所开发的MacOS(4)带有FramBuffer帧缓冲的嵌入式Linux终端平台对于嵌入式平台,Qt还有一个嵌入式版本即Qt/Embedded,相比于Qt,Qt/Embedded更加轻量化,运行时消耗的系统资源更少,更加适合作为嵌入式Linux系统中开发所用的图形平台。3.1.2QtCratorQtCreator是一个跨平台的Qt开发IDE,在Qt被诺基亚公司(NOKIA)公司收购之后,为了让开发人员能够快速轻松地完成开发任务,QtCreator横空出世,它支持在包括Linux(32位及64位)、MacOS和Windows的系统上运行[8]。QtCreator集成了QtDesigner、QtAssistant、QtLinguist、图形化的GDB调试前端、qmake构建工具等,不仅可以帮助新用户快速入门,同时也可以提升有经验的Qt开发人员的工作效率[9]。QtCreator所提供的QtDesigner如图3.1,开发人员可以使用QtCreator直接直观地绘制GUI图形用户界面,窗口左侧为分组的组件面板,只需将所需要的组件从组件面板中拖动到中间的设计区,Qt会自动将GUI图形用户界面转为对应的代码[10-12]。对于进阶的开发者,也可以使用QML开发来实现更多的功能。图3.1QtDesigner界面3.1.3Qt的特性相比于其他GUI,Qt最大的特点就是其独有的“信号与槽”机制[10,11],通过“信号与槽”机制,在Qt中对象之间可以相互通信,而不需要经过回调和消息映射机制。Qt的窗口在事件发生后会产生信号,例如点击一个按钮时会发出一个“clicked”信号,通过调用connect()函数,将信号与开发人员自己编写的槽函数连接起来[13],这样在事件发生时,代码能够自动响应。“信号与槽”机制不需要类直接互相知道彼此的细节,这样就可以相对任意的开发出代码可高重用的类。“信号与槽”机制以警告的方式报告类型错误,而不会使系统产生崩溃[14]。“信号与槽”机制的示意图如图3.2,对象发出的信号和接收的的槽函数的数量不需要完全相同,一个槽函数也可以接收多个信号,只不过在将他们连接起来时应确保他们之间的参数是相同的。图3.2信号与槽3.2FFmpeg解码器FFmpeg全程FastForwardMpeg,是一套基于Linux操作系统,集音视频录制、格式转换与编解码为一体的开源解决方案,同时它也可以在大多数操作系统中编译和使用[15],属于多媒体跨平台软件,其主要功能是将音频、视频等数据信息进行一定的记录和转化,同时还可以将音频、视频文件进行压缩编码和解码复原,以实现音频和视频数据的传输[16]。由于其支持的视频编码格式非常丰富,FFmpeg也因此在音视频解编码方面确立了不可撼动的地位。市面上的很多开源播放器都选择使用FFmpeg作为其编解码器。FFmpeg的架构如图3.2,其中对音视频文件的解码由libavcodec负责,在libavcodec中存放着解编码各种类型音视频时会使用的模块;对音视频帧的读取和获取解码信息等由libavformat负责,在libavformat中存放各种音视频封装格式的复用/解复用模块;内存操作等由libavutil负责;libswscale用于处理色彩映射的转换以及视频场景的比例缩放[17]。图3.3FFmpeg的架构3.3MPlayer播放器MPlayer在多媒体播放器有着不可忽视的地位,它的功能十分强大,能够解码播放众多格式的文件,而且运行基于命令行的MPlayer只占用很少的系统资源,这使得其在低配置的嵌入式平台也可以流畅运行。由于MPlayer内置了FFmpeg编解码器,使用使用MPlayer在播放视频文件时解码非常迅速,同时因为MPlayer的开源特性,使得不少人都参与到对其功能的发展和完善之中,MPlayer也因此登录了Windows系统和MacOS系统。Windows下的MPlayer默认不提供GUI用户图形界面,用户需要通过命令行来实现对MPlayer的控制,通过查阅MPlayer提供的用户手册,可以得知播放单个文件的命令为:mplayer[options][path]/filename或者mplayer[options]file:///uri-escaped-path其中[options]指可选择的功能指令,[path/]filename表示文件路径,常用的[options]指令有(1)-ss<position>:表示从指定的位置开始播放,如mplayer-ss00:03:00[path/]filename命令表示从文件的3分钟开始播放;(2)-nosound:表示静音播放;(3)-x<x>-y<y>:表示设置播放窗口的大小,如mplayer-x1280-y720[path/]filename表示以1280*720的窗口分辨率播放视频。MPlyaer允许用户使用键盘、鼠标等外接设备在播放视频时控制MPlayer,部分快捷键见表3.1。表3.1MPlayer常用快捷键将当前播放速度减少10%/将当前播放速度增加10%将当前播放速度减少50%/将当前播放速度增加50%将当前播放速度重设为100%在OSD(OnScreenDispla使用命令行控制MPlayer播放视频进行测试,测试文件路径为"E:\MPlayer\Test.mp4",在命令行中输入mplayer"E:\MPlayer\Test.mp4",如图3.4、图3.5,MPlayer正确打开并开始播放测试视频文件。图3.4MPlayer控制台图3.5MPlayer播放界面通过查看MPlayer控制台的打印日志,可以发现MPlayer读取出测试文件的视频编码格式为H.264,音频编码格式为AAC,MPlayer自动选用FFmpeg解码器对文件进行音视频的解码,并正常播放。如图3.6,添加额功能指令再次进行文件播放测试,在控制台输入命令mplayer-ss00:03:00"E:\MPlayer\Test.mp4",MPlayer正确打开并从设定的3分钟处开始播放测试视频文件。图3.6MPlayer控制台添加两个功能指令再次进行测试,输入命令mplayer-ss00:03:00-x1280-y720"E:\MPlayer\Test.mp4",MPlayer正确打开并将播放窗口大小设为1280x720,从设定的3分钟处开始播放测试视频文件。表3.5与播放控制相关的命令表3.5中为查阅用户手册后所整理出与开发本多媒体播放器相关的命令,如使用-wid命令让MPlayer依附于GUI图形用户界面提供的视频播放窗口,-zoom命令使MPlayer的视频画面可以随GUI画面一同缩放等。在下一章中,将从软件设计过程等方面展开说明。第四章软件编程设计4.1GUI界面设计本文采用QtCreator中集成的QtDesigner进行GUI设计,界面布局如图4.1。主要由以下部分组成:(1)视频播放窗口:占据了整个播放器GUI图形用户界面的大部分空间,使用了一个QWidget组件,用来接收MPlayer解码出的视频画面并输出;(2)控制栏:包含开始/暂停播放、停止播放、上一个、下一个、快退、快进、减速播放、加速播放、静音共9个功能按钮和视频播放进度条、音量条两个滑动条。功能按钮使用QPushButton组件,滑动条使用QSlider组件,通过Qt的“信号与槽”机制,将相应的功能按钮与实现功能所用的功能函数连接起来,从而在用户点击按钮时触发相应功能;(3)播放列表:由一个列表框和两个按钮组成,列表框使用QListWidget组件,两个按钮使用QPushButton组件。两个按钮分别负责添加和删除列表中的文件,点击添加文件按钮后,会打开一个文件选取框,这样用户可以选取要播放的文件;(4)信息栏:由三个QLabel组件组成,负责将MPlayer解码后读取的视频文件信息如当前已播放时长、总时长和已播百分比显示在屏幕上。图4.1GUI界面布局在设计时,为了界面美观且在改变窗口大小时各部件能够相应改变位置,可以使用Layout组件。为了使功能按钮在多媒体播放器处于不同状态下时能够变化,所以功能按钮的图标没有直接在QtDesigner中使用样式表进行修改,转而在代码中使用QPixmap导入图标素材,再使用setIcon()函数实现对功能按钮图标的设置。4.2软件功能实现多媒体播放器的功能实现流程如图4.2,在用户下达指令之后,Qt应用程序将用户的指令转化为对应的命令,通过特定的命令管道传输到运行在Slave模式下的MPlayer,从而实现用户对多媒体播放器的控制。图4.2多媒体播放器功能实现流程下面对本多媒体播放器的部分功能实现方法进行说明:4.2.1视频播放功能的实现视频播放功能是多媒体播放器的核心功能,其代码如图4.3,字符串MPlayer_Path中存放着MPlayer的文件路径,字符串command中存有播放文件的路径及一些额外命令,包括使MPlayer运行在后台模式下的“-slave”命令、使MPlyaer关闭日志打印的“-quiet”命令、使视频居中播放的“-zoom”、将MPlayer输出画面固定到GUI图形用户界面中视频播放窗口的“-wid”命令等,在进行视频播放时,Qt将这些命令一同传输给MPlayer后,将GUI图形用户界面的标题改为当前正在播放的视频文件名称,实现如图4.4的播放效果。图4.3视频播放功能代码图4.4视频播放效果4.2.2暂停功能和静音功能的实现通过向运行在Slave模式下的MPlayer发送pause\n指令即可使视频播放暂停,在恢复播放时需要先对播放列表是否为空进行判断,当播放列表为空时会弹出消息框通知用户添加文件,若播放列表不为空,则调用播放视频函数,同时为按钮重新设置暂停播放的图标样式,如图4.5所示,在暂停时控制栏第一个按钮由暂停图标变为恢复播放图标,同时鼠标悬停时的文字信息也更换为“开始播放”。图4.5暂停状态静音按钮的自动变更也采用了同样的实现方式,效果如图4.6、图4.7所示。图4.6未静音状态图4.7静音状态4.3本章小结本章对播放器的GUI用户图形界面设计过程及部分功能的实现方法进行了简单介绍,GUI图形用户界面可以使用QtDesigner进行编辑,也可以使用QML制作;多媒体播放器的功能实现主要是利用Qt“信号与槽”机制,将用户与GUI图形用户界面上的控制按钮的互动转化为Qt通过命令管道向工作在Slave模式下的MPlayer发送指令实现。本多媒体播放器使用的功能函数如下表4.1,通过“信号与槽”机制,在函数间可以进行调用,将用户所下达指令转化为MPlayer能够识别的命令,降低了用户使用MPlayer的命令记忆门槛。表3.1播放器功能及对应函数playlistDoubleClick(QListWidgetItemprogressBarDrag(intpo第五章软件测试软件测试是软件开发中不可缺少的一个组成部分,对软件进行验证,可以衡量出本方案运行是否稳定。一个完善的测试体系可以为本系统的改善提供数据支持,在测试完成后,要对故障产生的原因进行分析,并对故障进行修复,同时优化系统运行的稳定性和流畅性。对于本多媒体播放器,主要进行从以下几个方面进行软件测试:对各种编码格式的视频文件的支持度;播放不同编码类型视频文件时的流畅度;视频播放时播放器的功能性测试等。5.1测试平台本文软件使用Qt开发平台在Windows平台下开发,因此优先使用Windows平台进行测试,测试端采用如表5.1、表5.2所示的硬件配置。表4.1测试机1的硬件配置表5.2测试机2的硬件配置5.2测试方法及结果分别在两台测试机上运行本多媒体播放器,依次对其视频解码能力、运行流畅度、播放视频文件时各项功能的可用性等进行统计。5.2.1视频文件解码能力选取的测试视频文件编码格式丰富,包括flv、avi、mp4、rmvb、mkv、ts、m2ts、iso、wmv等,将其导入两台测试机上的多媒体播放器中依次测试能否正常解码播放,结果如表5.3所示。表5.3多媒体播放器文件解码能力测试5.2.2播放时各项功能可用性在播放器能够正常播放视频时,对播放器的各个功能进行测试,测试多媒体播放器有无卡顿延迟反应等问题,结果如表5.4所示。表5.4各项功能可用性测试是是是是是能是能是是是是动是动是是是5.3本章小结本章对本多媒体播放器所实现的各项功能进行了测试,一方面是测试在设计时确定的各项功能能否正常工作,另一方面也对本多媒体播放器的文件解码能力进行了测试。经过测试,可以得知本多媒体播放器对应市面上大部分的视频编码格式,都可以正确解码并播放,且播放时运行流畅,程序无卡顿闪退现象。同时本多媒体播放器的各项功能均能实现,在不同的测试机上运行速度相差不大,可以确保在移植到其他性能较低的嵌入式平台上的运行速度。结论本文通过研究国内外视频播放器的发展现状,对比目前主流视频播放器的特点与不足,提出一款多媒体视频播放器的设计方案,该方案结合了对Qt、FFmpeg解码器、MPlayer播放器的研究,使用Qt作为开发平台,绘制GUI用户图形界面,通过命令管道控制MPlayer实现对视频文件的解码播

温馨提示

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

评论

0/150

提交评论