DirectShow系统概述

多媒体的挑战

使用多媒体带来了一些重大挑战:

  • 多媒体流包含大量数据,必须非常快速地处理这些数据。
  • 音频和视频必须同步,使其同时启动和停止,并以相同的速率播放。
  • 数据可能来自许多来源,包括本地文件、计算机网络、电视广播和摄像机。
  • 数据采用各种格式,例如Audio-Video交错 (AVI) 、高级流式处理格式 (ASF) 、电影专家组 (MPEG) 和数字视频 (DV) 。
  • 程序员事先不知道最终用户系统上将存在哪些硬件设备。

DirectShow解决方案

DirectShow旨在解决上述每个挑战。 其主要设计目标是通过将应用程序与数据传输、硬件差异和同步的复杂性隔离,从而简化在 Windows 平台上创建数字媒体应用程序的任务。

若要实现流式传输视频和音频所需的吞吐量,DirectShow尽可能使用 Direct3D 和 DirectSound。 这些技术有效地将数据呈现给用户的声音和图形卡。 DirectShow通过在时间戳样本中封装媒体数据来同步播放。 为了处理可能的各种源、格式和硬件设备,DirectShow使用模块化体系结构,其中应用程序混合和匹配称为筛选器的不同软件组件。

DirectShow提供筛选器,这些筛选器支持基于 Windows 驱动程序模型 (WDM) ,以及支持为音频压缩管理器 (ACM) 和视频压缩管理器 (VCM) ) 接口编写的旧 Windows (视频视频的筛选器。

下图显示了应用程序、DirectShow组件以及DirectShow支持的一些硬件和软件组件之间的关系。

high level architecture

如此处所示,DirectShow筛选器与各种设备通信和控制,包括本地文件系统、电视调音器和视频捕获卡、VfW 编解码器、通过 DirectDraw 或 GDI) (视频显示、通过 DirectSound) (声卡。 因此,DirectShow使应用程序免受这些设备的许多复杂性的隔离。 DirectShow还为某些文件格式提供本机压缩和解压缩筛选器。

关于DirectShow