2024年5月1日发(作者:)

  

2

(

4

)

           基于

DirectShow

的多媒体实时处理和实例分析             

2003

基于

DirectShow

的多媒体实时处理和实例分析

MultimediaRealTimeProcessingandExampleAnalysisBasedonDirectShow

师鸣若 刘 

(

西安理工大学 西安 

710048

)

【摘 要】 通过对

DirectShow

体系结构的分析

,

提出了两种进行多媒体实时分析和处理的方法——开发专用的

Filter

和利用

SampleGrabberFilter

,

并进行了比较。最后通过分析一个实例

,

具体介绍利用

SampleGrabberFil

2

ter

进行多媒体开发的步骤。

【关键词】 

DirectShow

,

过滤器

,

过滤器图表

,

管理器

,

COM

ABSTRACT

 

Thispaperputsforwardtwokindsofmultimediarealtimeanalysisandprocessingmethods

,

developingspecialFil

2

terandutilizingSampleGrabberFilter

,

andcomparesthemthroughtheanalysisofDirectShowframework

.

Withanexample

,

the

paperintroducesthestepstodevelopthemultimediawithSampleGrabberFilter

.

KEYWORDS

 

directshow

,

filter

,

filtergraph

,

manager

,

COM

  多媒体流的实时分析和处理是许多多媒体技术的

研究和开发者都会遇到的复杂问题。为此

,

开发者除了

要完成各自所需的实时分析和处理外

,

还面临着诸如

多媒体流的解压缩、音频流和视频流的分离、多媒体流

的回放以及不同媒体流之间的同步等许多问题。有没

有一种方法能使整个开发过程模块化

,

并提供通用模

块完成共同的工作

,

从而使开发者能够专注于各自所

需的分析和处理而无需考虑其它的实现细节呢

?

COM

技术为这种想法的实现提供了可能

,

DirectShow

件使之成为现实。

声音、输入设备

DirectX

是处理

Windows

下图形、

和网络播放的一系列

COM

对象

,

DirectShow

Di

2

rectX

的一个重要组成部分。

COM

组件对象模型是创建

能够被系统任何程序调用的独立

Windows

对象模块

,

COM

对象提供了应用程序访问其成员函数的接口。

DirectShow

主要提供

:

①对本地文件或

Internet

上多媒体数据的解码和播放

;

②从视音频采集卡等硬

件设备中捕获多媒体流

,

它能播放和解码各种压缩格

,

包括

MPEG

QuickTime

AVI

WAV

Digi

2

talVideo

MJPEG

;

③在媒体播放过程中

,

抓取指

定类型的帧

(

如压缩或解压缩的视音频

)

,

并进行实时

分析和处理

,

本文侧重讨论这一方面。

滤器图表管理器

(

FilterGraphManager

)

组件负责检

查这些

Filter

的连接和控制过滤器间的数据流动。

Di

2

rectShow

通过若干个内置或自定义的

Filter

来控制

和处理多媒体数据的体系结构。每个

Filter

都拥有输

入和输出针

(

pin

)

,

来处理

Filter

间数据传输的低层细

节。过滤器之间通过

FilterGraph

相关联

,

并在其中流

动媒体数据。

FilterGraph

可通过

FilterGraphMan

2

ager

用自动方式

(

默认

)

创建

,

根据需要自动加入所需

的编解码器

,

并自动完成

Filter

间针的连接细节。开发

人员也可用手工方式完成

FilterGraph

的创建

,

或在

已建立的

FilterGraph

中加入专用的

Filter

过滤器按功能可分为三类

,

分别为源过滤器、转换

过滤器和表现过滤器

,

其中抓帧过滤器是一种特殊的

转换过滤器

,

如表

1

所示。过滤器图表由一个源过滤

器、多个转换过滤器和多个表现过滤器组成。

1

 过滤器的分类

源过滤器接收来自本地文件或

Internet

多媒体流

转换过滤器对媒体流分解、压缩、解压缩和格式转换

表现过滤器

抓帧过滤器

表现数据在声卡和显卡上播放音频