directshow系统初级指南

directshow系统初级指南

ID:15421934

大小:55.00 KB

页数:7页

时间:2018-08-03

directshow系统初级指南_第1页
directshow系统初级指南_第2页
directshow系统初级指南_第3页
directshow系统初级指南_第4页
directshow系统初级指南_第5页
资源描述:

《directshow系统初级指南》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、http://fpc0000.googlepages.com/mediafpcDirectShow系统初级指南  流媒体的处理,以其复杂性和技术性,一向广受工业界的关注。特别伴随着因特网的普及,流媒体在网络上的广泛应用,怎样使流媒体的处理变得简单而富有成效逐渐成为了焦点问题。选择一种合适的应用方案,事半功倍。此时,微软的DirectShow,给了我们一个不错的选择。  DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,与DirectX开发包一起发布。目前,DirectX最新版本为8.1。  那么,DirectShow能够做些什么呢?且看,Direct

2、Show为多媒体流的捕捉和回放提供了强有力的支持。运用DirectShow,我们可以很方便地从支持WDM驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中。它广泛地支持各种媒体格式,包括Asf、Mpeg、Avi、Dv、Mp3、Wave等等,使得多媒体数据的回放变得轻而易举。另外,DirectShow还集成了DirectX其它部分(比如DirectDraw、DirectSound)的技术,直接支持DVD的播放,视频的非线性编辑,以及与数字摄像机的数据交换。更值得一提的是,DirectShow提供的是一种开放式的开发环境,我们可以根据自己的需要定制自己的组件。  Direc

3、tShow使用一种叫FilterGraph的模型来管理整个数据流的处理过程;参与数据处理的各个功能模块叫做Filter;各个Filter在FilterGraph中按一定的顺序连接成一条“流水线”协同工作。大家可以看到,按照功能来分,Filter大致分为三类:SourceFilters、TransformFilters和RenderingFilters。SourceFilters主要负责取得数据,数据源可以是文件、因特网、或者计算机里的采集卡、数字摄像机等,然后将数据往下传输;TransformFitlers主要负责数据的格式转换、传输;RenderingFiltes主要负责数据的最终去

4、向,我们可以将数据送给声卡、显卡进行多媒体的演示,也可以输出到文件进行存储。值得注意的是,三个部分并不是都只有一个Filter去完成功能。恰恰相反,每个部分往往是有几个Fitler协同工作的。比如,TransformFilters可能包含了一个Mpeg的解码Filter、以及视频色彩空间的转换Filter、音频采样频率转换Filter等等。除了系统提供的大量Filter外,我们可以定制自己的Filter,以完成我们需要的功能。下图是一条典型的Avi文件回放FilterGraph链路:  在DirectShow系统之上,我们看到的,即是我们的应用程序(Application)。应用程序要

5、按照一定的意图建立起相应的FilterGraph,然后通过FilterGraphManager来控制整个的数据处理过程。DirectShow能在FilterGraph运行的时候接收到各种事件,并通过消息的方式发送到我们的应用程序。这样,就实现了应用程序与DirectShow系统之间的交互。下图给出了DirectShow应用程序开发的一般过程:  以上简单介绍了DirectShow的系统结构,希望大家对这个强劲的应用框架已经有了大概的认识。如果你有兴趣,可以详细研究DirectX的帮助文档。DirectShow是一个强大的开发包;另外,它是基于COM的,因此要求程序员具有COM编程的一些

6、基本知识。关于如何深入学习DirectShow应用结构以及开发自己的Filter,请参阅笔者的后续文章。笔者将从编程的角度,详细讲述来源于实际工作中的经验之谈。  从下面开始,我们要从程序员的角度,进一步深入探讨一下DirectShow的应用以及Filter的开发。  在这之前,笔者首先要特别提一下微软提供的一个Filter测试工具——GraphEdit,它的路径在DXSDKbinDXUtilsGraphEdit.exe。(如果您还没有安装DirectXSDK,请到微软的网站上去下载。)通过这个工具,我们可以很直观地看到FilterGraph的运行及处理流程,方便我们进行程序调试

7、。(如果您手边就有电脑,还等什么,马上体验一下吧:运行GraphEdit,执行File->RenderMediaFile…选择一个媒体文件;当FilterGraph构建成功后,按下工具栏的运行按钮;您就能看到刚才选择的媒体文件被回放出来了!看到了吧,写一个媒体播放器也就这么回事!)  接下去,我们开讲Filter的开发。  学习DirectShowFilter的开发,不外乎以下几种方法:看帮助文档、看示例代码和看SDK基类源代码。看帮助文档,应

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。