ImageVerifierCode 换一换
格式:DOCX , 页数:46 ,大小:775.87KB ,
资源ID:11158567      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11158567.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于DirectShow媒体播放器系统毕业论文.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于DirectShow媒体播放器系统毕业论文.docx

1、基于DirectShow媒体播放器系统毕业论文摘 要随着数字音视频处理、数字信息存储技术的不断发展,基于数字编解码的多媒体应用已经越来越深入到人们的日常生活中,而如何高效处理声音、视频数据以及支持媒体格式则成为主要的问题。DirectShow SDK是微软公司提供的一套在Windows平台上进行媒体处理的开发包,它支持高品质的数码视频、高保真的音频及其它特殊效果,广泛应用于流媒体播放器的开发、多媒体流的高质量捕捉和回放、视频点播技术等。论文概括性的阐述了DirectShow的体系结构和工作原理,以及应用DirectShow开发流媒体播放器的具体过程。重点介绍了构建流媒体播放器的关键技术智能连接

2、。通过对系统的需求分析,得到了基于DirectShow媒体播放系统结构,实现了对常见媒体格式的支持,完成了基于DirectShow媒体播放器系统,并给出了关键代码。基于COM(Component Object Model)组件规范的DirectShow,简化了流媒体应用系统的开发,缩短了开发周期,提高了系统的可扩展性和通用性。熟悉这些基本知识对于DirectShow应用的开发者都会有所帮助,而COM组件技术在从软件复用的角度看,定会有长足的使用价值,这项技术必将在今后有更广泛的应用。关键词:DirectShow;智能连接;COM;流媒体Abstract As digital audio and

3、 video processing, digital data storage technology continues to develop, based on digital encoding and decoding of multimedia applications has become increasingly penetrated into peoples daily lives, and how to handle voice, video, data, and support more media formats will become a major problem. Mi

4、crosoft DirectShow SDK is a set of available media processing on the Windows platform, the development package, which supports high quality digital video, high-fidelity audio, and other special effects, widely used in the development of streaming media player, multimedia streaming high-quality captu

5、re and playback, video on demand technology. Paper describes the general COM (Component Object Model) technology-based DirectShow architecture and working principle, describes how to use DirectShow streaming media player developed a specific process. Describes the streaming media player built key te

6、chnologies: intelligent connection. Requirements analysis through system was based on DirectShow streaming media system architecture, intelligent connection method to achieve a media player on the common media formats. Implemented based on DirectShow streaming media player system, and gives the key

7、to achieving DirectShow code. Based on COM (Component Object Model) DirectShow component specification simplifies the development of streaming media applications and shorten the development cycle, improve the system scalability and versatility. Familiar with the basic knowledge of application develo

8、pment for DirectShow developers will be helpful, while the COM component technology from the perspective of software reuse, there will be considerable value in use. This technology will in the future more widely used. Key words:DirectShow; intelligent connection; COM; streaming media毕业设计(论文)原创性声明和使用

9、授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学

10、校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 目 录Abstract II1. 引言 11.1 研究的背景与意义 11.2 系统基本达到的目标 21.3 论文的主要内容及工作安排 22. 相关开发技术及平台简介 32.1 Microsoft Visual C+6.0 概述 32.1.1 Microsoft Visual C+6.0 特点 32.2 DirectX SDK 9.0 32.2.1 DirectX SDK9.0体系结构的特点 42.2.2 GraphEdit测试 42.2.4 DirectX SDK

11、 9.0支持平台 43. DirectShow基本原理 53.1 DirectShow的体系结构 53.1.1 COM(Component Object Model)组件 63.1.2 Filter概述以及连接 73.1.3过滤器图(Filter Graph) 83.1.4过滤器图管理器(Filter Graph Manager) 93.1.5过滤器图的数据传送 104. 媒体播放器的设计 114.1 播放器主要功能设计 114.2 播放器过滤器结构设计 114.3 缓存区设置 124.4 DirectShow智能连接 134.4.1为什么采用智能连接 144.4.2智能连接原理 155. 媒

12、体播放器的实现 175.1 DirectShow中接口 175.2 基于DirectShow播放器的三个步骤 175.2.1初始化COM 库 185.2.2 创建过滤器图管理器 185.2.3 RenderFile构建过滤器图原理 195.3 智能连接的实现 205.4 构建获取网络数据的Source Filter 215.5 控制功能实现 235.5.1定位 245.5.2暂停、停止实现 245.5.3全屏实现 255.5.4截图功能实现 266. 播放器运行实例及结论 286.1 系统界面展示 286.1.1播放器的主题界面 286.2 系统运行结论 31结束语 32致 谢 33参考文献

13、341. 引言随着信息技术的发展,流媒体播放器迎来新的挑战。在流媒体应用技术中,对多媒体大量的数据传输、高效的数据处理、音视频流的同步、媒体流的格式转换,一直是需要解决的主要问题,怎样使流媒体的处理变得简单而富有成效逐渐成为了焦点问题。而选择一种合适的应用方案,将事半功倍。DirectShow 正是为了适应以上的挑战而设计的多媒体开发工具。Microsoft 设计它的意图就是为了简化多媒体应用程序的开发,使开发者不必考虑复杂的数据流格式,终端设备以及音视频同步的问题。运用DirectShow,我们可以很方便地从支持WDM(Win32 Driver Model)驱动模型的采集卡上捕获数据,并且进

14、行相应的后期处理,如将数据存储到文件中或者通过网络发送。1.1 研究的背景与意义目前DirectShow技术是建立在DirectX的DirectDraw和DirectSound的基础之上的,它使得多媒体数据的回放变得简单,提供了高质量的多媒体流的录制和播放,支持各种媒体格式,包括ASF(Advanced Systems Format)、MPEG(Motion Picture Experts Group)、AVI(Audio Video Interleaved)和WAV声音文件等几乎所有当前流行的媒体格式。运用DirectShow,我们可以很方便地从支持WDM(Win32 Driver Mode

15、l)驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中。Microsoft 通过DirectShow 给多媒体程序开发员提供了标准的、统一的、高效的API 接口。DirectShow是基于COM(Component Object Model)组件技术的流媒体开发工具,而COM组件的调用协议是二进制代码级的协议(语言无关的协议),因此不同的对象可以有不同的接口,对于日后DirectShow开发的程序存在的兼容问题,提供良好的解决方案。它也为需要定制解决方案的应用提供底层流的控制结构,将应用与复杂的数据传输、硬件差异和同步隔离出来。DirectShow中智能连接机制开发的视频播放器

16、,使开发人员无需再为冗余的代码耗费过多的精力,大大简化了多媒体程序的设计。而基于组件技术编写,有利于提高系统的扩展性和重用性。同时DirectShow本身具有开发性,允许开发者实现自己的过滤器,这使得基于DirectShow的应用程序可以充分满足不同用户的需求。在未来几年中,DirectShow技术的发展前景将是非常广阔的。1.2 系统基本达到的目标根据对媒体播放器的分析得到系统的功能,主要完成对播放器的控制界面的基本开发(播放、暂停、上下首、音量控制),支持常见音乐格式的播放(支持MP3 、WMA),支持常见视频格式的播放(如AVI、RMVB等),对于音乐播放,支持删除、清空播放列表文件操作

17、。支持播放模式的选择(单曲循环/全部循环),支持换肤,控制播放进度。1.3 论文的主要内容及工作安排论文阐述了基于DirectShow的视频播放程序开发的具体过程,如何运用DirectShow提供的COM(Component Object Model) 组件技术和Filter Graph Manager的智能连接机制对多媒体应用程序的开发。论文的各章内容安排如下:第一章:引言,对流媒体播放器系统的背景作简单介绍,分析了基于DirectShow组件制作的播放器研究的意义与特点,并对DirectShow技术的应用发展进行总结。最后介绍了本文的研究内容及论文组织以及系统达到的基本目标。第二章:开发技

18、术简介,介绍了系统所使用的Visual C+6.0集成开发环境和DirectX SDK9.0开发包的结构特点以及所支持的平台。第三章:DirectShow基本原理,分析了DirectShow的体系结构,介绍各个组件的功能特点。第四章:基于DirectShow 媒体播放器的设计,介绍了媒体播放器所应具备的功能和效果,对播放器的功能和结构进行设计,并对本文采用的关键技术智能连接的介绍。第五章:基于DirectShow的媒体播放器的实现,根据模块功能设计的要求,对每一部分进行实现,并列出部分关键代码。第六章:播放器运行实例及结论。演示系统运行后的界面,包括打开文件、截图、声频调控等重点部分,并对播放

19、器系统的存在的不足之处进行总结。第七章:结束语,全面总结了DirectShow的组件技术的优势,并对定制组件开发技术了的未来发展趋势进行了展望。2. 相关开发技术及平台简介本系统是基于Microsoft Visual C+ 6.0平台,采用DirectShow技术开发的媒体播放器。目前DirectShow技术包含在DirectX SDK中,本文采用的是DirectX SDK 9.0。由于DirectShow是微软推出的一套基于COM组件的开发包,因此用它所编写的应用程序对编译环境有一定的特殊要求,需要首先对现有的编译环境进行重新配置。在系统总体分析和功能模块分析之前,先对Visual C+开发

20、环境以及DirectShow开发工具进行介绍,将系统开发中所用到的关键技术一一阐明。2.1 Microsoft Visual C+6.0 概述Microsoft Visual C+ 6.0 是Microsoft公司推出的一个基于Windows系统平台、可视化的集成开发环境,它的源程序按C+语言的要求编写,并加入了微软提供的功能强大的MFC(Microsoft Foundation Class)类库。MFC中封装了大部分Windows API函数和Windows控件,它包含的功能涉及到整个Windows操作系统。MFC不仅给用户提供了Windows图形环境下应用程序的框架,而且还提供了创建应用程

21、序的组件,这样,开发人员不必从头设计创建和管理一个标准Windows应用程序所需的程序,而是从一个比较高的起点编程,故节省了大量的时间。另外,它提供了大量的代码,指导用户编程时实现某些技术和功能。因此,使用VC+提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单。2.1.1 Microsoft Visual C+6.0 特点Microsoft Visual C+以拥有“语法高亮” 和自动编译功能以及高级纠错功能而著称。比如,它允许用户进行远程调试,单步执行等,还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建

22、功能及累加连结著称。这些特征明显缩短程式编辑、编译及连结的时间花费,在大型软件计划上尤其显著。2.2 DirectX SDK 9.0DirectX是Microsoft公司为游戏和其他高性能多媒体应用所提供的一套底层应用程序编程接口,这些接口包括对二维和三维图形,声效和音乐,输入设备以及多玩家网络游戏等的支持。DirectShow是微软公司在ActiveMovie和Video for Windows的基础上推出的新一代基于COM的流媒体处理的开发包,与DirectX开发包一起发布。2.2.1 DirectX SDK9.0体系结构的特点DirectX是一项卓越的技术。微软将DirectX定义为“硬

23、件设备无关性”,即DirectX可以提供与设备无关的方法,从而提高使用设备的性能。DirectX为了最大限度提高效率而允许用户直接访问硬件,如允许用户直接读写显存。因此DirectShow也同样具有快速的优势。DirectX为应用程序开发人员和硬件厂商之间的关系“解耦” ,通过使用DirectX所提供的接口,开发人员可以无需关心硬件的具体执行细节而进行开发。除此之外,DirectX还采用了组件对象模型(COM)标准,因此不同的对象可以有不同的版本的接口,这使得DirectX开发的程序在未来也能得到完全的兼容和支持。2.2.2 GraphEdit测试在DirectX的开发包中,为DirectSh

24、ow提供了一个调试工具GraphEdit。在GraphEdit中可以很方便的设计出过滤器图,验证过滤器图的可行性,也可在其中测试自己实现的过滤器,快速测试建立的Filter Graph是否达到预期的效果。用GraphEdit显示应用程序中构建的Filter Graph,方便进行程序调试以及各种音视频处理,利用该工具给程序开发带来极大便利。通过GraphEdit可以查看到系统中所有安装的Filter注册信息。Filter的注册信息通常包括两部分:COM服务器信息和Filter描述信息。前者是必需的,它表明了Filter是一个COM组件;后者不是必需的,不注册也不会影响Filter功能的实现。使用

25、GraphEdit,还可以播放媒体文件。在用GraphEdit显示应用程序中构建的Filter Graph之前,应用程序必须把它创建的Filter Graph进行注册。2.2.4 DirectX SDK 9.0支持平台DirectShow支持Windows9X、Windows2000、Windows Me和Windows XP。3. DirectShow基本原理DirectShow 技术是建立在DirectX 的DirectDraw 和DirectSound 的基础之上的,它通过DirectDraw 对显卡进行控制以显示视频,通过DirectSound 对声卡进行控制以播放声音。DirectS

26、how为多媒体流的捕捉和回放提供了强有力的支持。与传统技术的制作的媒体播放器相比,DirectShow 具有的特点是语法更简单,数据处理的高效性,简化了基于Windows 平台的数字媒体的应用开发,它提供了高质量的多媒体流的录制和播放,支持各种媒体格式,它为需要定制应用解决方案提供底层流控制结构,将应用与复杂的数据传输、硬件差异和同步隔离开来,用户也可以创建自己的DirectShow 组件以支持新的媒体格式。3.1 DirectShow的体系结构DirectShow系统结构中的核心部分是过滤器图,它由过滤器图管理器(Filter Graph Manager,简称FGM)进行管理。它是由可组装的

27、模块组成的一个模块系统,这种模块称为过滤器(Filter),在过滤器图中进行配置组装。过滤器的组装和其中的数据流动是由过滤器图管理器来控制的。如图3.1所示,图中央最大一块即是DirectShow系统,虚线以下是Ring0特权级别的硬件设备,虚线以上是Ring3特权级别的应用层。DirectShow系统位于应用层中。应用程序按照一定意图建立起相应的过滤器图(Filter Graph),它使用一种叫过滤器图管理器(Filter Graph Manager)的模型来管理整个数据流的处理过程。参与数据处理的各个功能模块叫做过滤器(Filter),各个过滤器(Filter)在过滤器图(Filter G

28、raph)中按一定的顺序连接成一条“流水线”协同工作。DirectShow能在Filter Graph运行的时候接收到各种事件,并通过消息的方式发送到我们的应用程序。这样就实现了应用程序与DirectShow系统之间的交互。如图3.1所示,应用程序有3种方式和过滤器图管理器(Filter Graph manager)进行通信:通过ActiveMovie控制、媒体控制接口和组件对象模型(COM)接口,而COM组件技术是Windows平台上的二进制组件模型。实际上ActiveMovie控制和媒体控制接口都是通过COM接口来与过滤器图管理器进行通信。为了满足流媒体所需要的数据流量,DirectSho

29、w尽可能地使用DirectDraw 和DirectSound。DirectShow通过以时间戳(Time Stamped) 样本的形式封装媒体数据来使视、音频同步。图3.1 DirectShow系统为了处理不同格式的媒体文件和各种硬件,在DirectShow 模块结构中应用了混合和匹配不同软件组件称为过滤器(Filter) 。图3.1所示,DirectShow 过滤器与各种不同的设备通信并控制他们,包括声卡、电视卡、VFW多媒体数字编码器,及视频显示及声卡。因此DirectShow 把应用程序与这些硬件设备内部细节隔离开来,为应用开发人员提供了便利。DirectShow也为某些文件格式提供原有

30、的压缩和解压缩。3.1.1 COM(Component Object Model)组件COM 即组件对象模型(Component Object Mode1),是一种软件架构,它规定了不同的对象使用统一的协议来进行通讯的一套机制。所有的COM 对象都支持相同的接口规范,COM组件被设计为二进制形式,这使得COM对象可以不依赖于具体的语言和系统平台。DirectShow 是一套完全采用基于COM的应用系统。DirectShow是建立在组件对象模型(COM)上的,因此对于DirectShow应用程序开发人员来说,对COM知识的了解并不要求很高。因为DirectShow应用程序实际上是一种COM组件的

31、客户程序,只是COM组件的使用,包括如何创建COM组件、如何得到组件对象上的接口以及调用接口方法、如何管理组件对象。即需要熟悉COM组件的引用计数机制。而对于Filter开发人员,需要掌握COM知识较多,因为Filter本身是COM组件,牵涉到COM组件实现的问题。COM本身是一种规范,不是实现,是没有实现函数的C+类,即纯虚类。COM规范规定,任何组件或是接口都必须从IUnknown接口中继承而来。IUnknown定义了三个重要的函数,分别是QueryInterface、AddRef和Release。其中QueryInterface负责组件对象上的接口查询,AddRef用于增加引用计数。Re

32、lease用于减少引用计数。引用计数是COM中的一个非常重要的概念,它解决了COM组件对象的生命周期的问题:COM组件在什么时候被销毁,以及由谁来销毁。而COM组件是实现了COM规范的C+对象的组合。每个COM组件都有与之相对应的类工厂,用于创建COM组件对象。因为COM组件本身的类名对于外部使用者都不可知,因此由类工厂负责产生COM组件对象。类工厂是实现了IClassFactory接口的COM组件。COM组件有3种类型:进程内组件、本地进程组件和远程组件。每个COM 有它自己的GUID(globally unique ID,全球唯一标识符),每个接口也有它自己的IID。GUID由专门的程序产生,可以保证每个GUID的全球唯一性。已知COM 的CLSID和它的接口的IID,可以用CoCreateInstance函数来实例化该COM,得到一个该接口的指针。3.1.2 F

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1