directshow学习笔记.doc


文档分类:外语学习 | 页数:约218页 举报非法文档有奖
1/218
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/218
文档列表 文档介绍
,。。,与DirectX开发包一起发布。那么,DirectShow能够做些什么呢?且看,DirectShow为多媒体流的捕捉和回放提供了强有力的支持。运用DirectShow,我们可以很方便地从支持WDM驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中。它广泛地支持各种媒体格式,包括Asf、Mpeg、Avi、Dv、Mp3、Wave等等,使得多媒体数据的回放变得轻而易举。另外,DirectShow还集成了DirectX其它部分(比如DirectDraw、DirectSound)的技术,直接支持DVD的播放,视频的非线性编辑,以及与数字摄像机的数据交换。更值得一提的是,DirectShow提供的是一种开放式的开发环境,我们可以根据自己的需要定制自己的组件。DirectShow的系统组成应用程序与DirectShow组件以及DirectShow所支持的软硬件之间的关系如图1所示。,一个概括性的入门文章,对于应用开发或者directshow的开发者都有所帮助。1DirectShow的FilterDirectshow是基于模块化,组件方式,称为Filter。Directshow提供了一系列的标准的模块可用于应用开发,开发者也可以开发自己的功能Filter来扩展Directshow的应用。下面我们用一个例子来说明如何采取Filter来播放一个AVI的视频文件。从一个文件读取数据,形成字节流。(这个工作由源Filter完成)检查AVI数据流的头格式,然后通过AVI分割Filter将视频流和音频流分开。解码视频流,根据压缩格式的不同,选取不同的decoderfilters。重画视频图像,通过RendererFilter。将音频流送到声卡进行播放,一般采用缺省的DirectSoundDeviceFilter。流程见下图。从上面的图表看,每一个filter都一个其他的一个或者两个filter相连接,对象,我们称为Pin。Filter通过pin将数据从一个filter传递到另一个filter中,从而可以使数据的filter的链表中流动。图中的箭头表示filter链表中的数据流的方向。在Directshow中,一个filter链表我们称为filterGraph。Filter具有三个状态,运行,停止,暂停。当一个filter运行时,它就处理媒体数据流,当停止时,filter就不在处理数据,暂停状态常用来给运行状态之前curedata。DataFlowintheFilterGraph一章详细描述了这些概念,可以参考。除非特别的例外,所有Filtergraph中的filter的状态的改变都是统一的,也就说,filtegraph中的所有的filter的状态改变是一致协调的。也就是说,我们也可以用filtergraph也可以有运行,停止,暂停三种状态。Filter一般分为下面几种类型。(1)源过滤器(sourcefilter):源过滤器引入数据到过滤器图表中,数据来源可以是文件、网络、照相机等。不同的源过滤器处理不同类型的数据源。(2)变换过滤器(transformfilter):变换过滤器的工作是获取输入流,处理数据,并生成输出流。变换过滤器对数据的处理包括编解码、格式转换、压缩解压缩等。(3)提交过滤器(rendererfilter):提交过滤器在过滤器图表里处于最后一级,它们接收数据并把数据提交给外设。(4)分割过滤器(splitterfilter):分割过滤器把输入流分割成多个输出。例如,AVI分割过滤器把一个AVI格式的字节流分割成视频流和音频流。(5)混合过滤器(muxfilter):混合过滤器把多个输入组合成一个单独的数据流。例如,AVI混合过滤器把视频流和音频流合成一个AVI格式的字节流。过滤器的这些分类并不是绝对的,例如一个ASF读过滤器(ASFReaderfilter)既是一个源过滤器又是一个分割过滤器。对象,用来控制Filtergraph中的所有的filter,主要有以下的功能:1用来协调filter之间的状态改变,从而使graph中的所有的filter的状态的改变应该一

directshow学习笔记 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数218
  • 收藏数0 收藏
  • 顶次数0
  • 上传人1542605778
  • 文件大小1.83 MB
  • 时间2020-02-27