DirectShow学习-概述

DirectShow学习-概述

DirectX大家族,DirectX 9.0家族的所有成员:
DirectX Graphics:集成了以前的DirectDraw和Direct3D技术,DirectDraw主要负责2D加速,以实现对显卡内存和系统内存的直接操作,Direct3D主要提供三维绘图硬件接口,它是开发三维DirectX游戏的基础
DirectInput:主要支持输入服务(包括鼠标、键盘、游戏杆),同时支持输出设备。
DirectPlay:主要提供多人网络游戏的通信、组织功能
DirectSetup:主要提供自动安装DirectX组件的API功能
DirectMusic:主要支持MIDI音乐合成和播放功能
DirectSound:主要提供音频捕捉、回放、音效处理、硬件加速、直接设备访问等功能
DirectShow:为在Windows平台上处理各种格式的媒体文件的回放、音视频采集等高性能要求的多媒体应用,提供了完整的解决方案
DirectX Media Objects:DirectShow Filter的简化模型,提供更方便的流数据处理方案
DirectShow集成了DirectX家族中其他成员(如DirectDraw、DirectSound等)的技术,可以说DirectX中的一位“集大成者”。经过几个版本的发展,DirectShow架构日趋成熟。

为什么需要DirectShow?DirectShow到底能够做什么?
多媒体应用开发所面临的挑战:
(1)多媒体数据量巨大,应如何保证数据处理的高效性
(2)如何让音频和视频时刻保持同步
(3)如何用简单的方法处理复杂的媒体源问题,包括本地文件、计算机网络、广播电视以及其他一些数码产品等
(4)如何处理各种各样的媒体格式问题,包括AVI、ASF、MPEG、DV、MOV等
(5)如何支持目标系统中不可预知的硬件
设计初衷就是尽量要让应用程序开发人员从复杂的数据传输、硬件差异、同步性等工作中解脱出来,总体应用框架和底层工作由DirectShow来完成,这样,基于DirectShow框架开发多媒体应用程序就会变得非常简单。



Filter大致分为3类:Source Filters、Transform Filters和Rendering Filters。
Source Filters主要负责获取数据,数据源可以是文件、因特网计算机里的采集卡(WDM驱动的或VFW驱动的)数字摄像机等,然后将数据往下传输
Transform Filters主要负责数据的格式转换,例如数据流分离/合成、解码/编码等,然后将数据继续往下传输
Rendering Filters主要负责数据的最终去向-将数据送给显卡、声卡进行多媒体的演示,或者输出到文件进行存储
播放第一个媒体文件:


COM编程基础:
DirectX采用了COM标准,DirectShow是一套完全基于COM的应用系统,对于DirectShow应用程序开发人员来说,对COM知识的了解并不要求很高,更多是COM组件的“使用”问题。这些问题包括如何创建COM组件、如何得到组件对象上的接口以及调用接口方法、如何管理组件对象(即需要熟悉COM的引用计数机制)等。

猜你喜欢

转载自blog.csdn.net/tong5956/article/details/78687523
今日推荐