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
多媒体流
转换过滤器对媒体流分解、压缩、解压缩和格式转换
表现过滤器
抓帧过滤器
表现数据在声卡和显卡上播放音频


发布评论