基于DirectShow的视频捕获

合集下载

基于DirectShow视频帧实时捕捉的设计与实现

基于DirectShow视频帧实时捕捉的设计与实现

基于DirectShow视频帧实时捕捉的设计与实现朱尹华;周尚波;王兴星;谢磊;周庆【期刊名称】《计算机应用与软件》【年(卷),期】2011(028)001【摘要】In this paper, we present a solution to resolve the" black screen" problem occurred in software system such as distance education, etc. Firstly, we implement the video-frames real-time capturing from video stream of multimedia files by using DirectShow technology to deal with multimedia files or video stream in multimedia stream. Then, the GDI function of Windows is invoked to render the image frames,which are captured by the DirectShow. Finally, according to the standard of MPEG2 a file is composed in AVI video format which is able to replay real-timely.%主要针对远程教育等软件系统中现存的"黑屏"问题提出一种解决方案.运用DirectShow技术对多媒体文件或多媒体流中的视频流进行处理,实现从多媒体文件视频流中进行视频帧的实时捕获,而后调用Windows中GDI函数对获取的图像帧进行渲染,最后按照MPEG2标准合成AVI视频文件并可以实时重放.【总页数】5页(P35-38,40)【作者】朱尹华;周尚波;王兴星;谢磊;周庆【作者单位】重庆大学计算机学院,重庆,400030;重庆大学计算机学院,重庆,400030;重庆大学计算机学院,重庆,400030;重庆大学计算机学院,重庆,400030;重庆大学计算机学院,重庆,400030【正文语种】中文【相关文献】1.基于DirectShow技术的视频帧捕捉方法 [J], 余婷;管庶安2.基于DirectShow技术视频流捕捉及压缩的实现方案 [J], 华畯;杨树堂;李建华3.基于 DirectShow 和 WPF 的实时视频图像采集与处理系统设计与实现 [J], 武凤翔4.基于USB2.0的数字图像视频流的实时捕捉与显示系统的设计与实现 [J], 徐大诚;邵雷;李培光5.利用DirectShow技术实时捕捉视频流中的图像帧 [J], 胡涛;刘睿;张志刚因版权原因,仅展示原文概要,查看原文内容请购买。

基于DirectShow的视频监控采集系统

基于DirectShow的视频监控采集系统

能 :视频 采集模块完成将视频 采集设 备获取 的视频数
据 存 人 指 定 的文 件 存 储 设 备 中 , 图 2所 示 。 如
视频监控采集 系统就是人们利用视觉来获取信 息的一
种通信方式 , 较 之其他信息传递方式具有 内容丰富 、 它 直 观 及 方 便 等 特 点 所 以 . 频 采 集 系 统 被 广 泛 应 用 于 视 金融 、 通 、 院 、 交 医 电力 、 关 、 防 乃 至 住 宅 社 区等 领 海 国
@ 现 计 机 21. 代 算 008 o
系统运行流程为 : ( ) 建 一个 Fl rG a hMa a e 组 件 ; 1创 ie rp n g r t
( 频 采 集 设 备 的 C SD 为 C SD Vi e I p t vc . 视 LI LI d o n u De ie
2 软 件 设 计
21 系统 流 程 .
系统是在 Vsa C +6 i l + . u 0环境下 . 利用 面 向对象编
程方 法 设 计 开 发 的 。
作 者 简介 : f  ̄
(93 ) 男 , 建 福 州人 , 理 实 验 师 , 18 一 , 福 助 工程 硕 士 , 究 方 向 为 软件 设 计 与 软 件 工 程 研

r] - 审口 _
— —
1 . ......... . . ...... . . . .
监控采集 系统
UB s
—— 文件存储设备
域 。设计 开发一套视频监控采集 系统 具有很强 的市场
价 值
图 1 系 统 硬件 架 构
1 总体 设 计
11 设 计 思路 . 系统 的总体设计 目标就是构建一个高质 量 、可靠 性好 、 控制灵活 和易于扩展架构 的视频监控采集 系统 。

基于DirectShow技术的视频帧捕捉方法

基于DirectShow技术的视频帧捕捉方法

基 于 D rcS o i th w技 术 的视频 帧 捕捉 方法 e
余 婷 , 庶安 管
( 武汉工业学院 计算机与信息工程系 , 湖北 武汉 4 02 ) 3 03

要 : 于 C M 技 术的 Drc hw编程模 型克服 了传统 的 V 方 法在视 频 处理上 的 不足 基 O i to eS
过滤 器 图表管理 器 ( ie G ahMa ae) 来 Fl r rp ngr 用 t 管理过滤 器和过滤 器 图表 。它 了解 所有 可利用 的过
2 2 实现步 骤 . 2 2 1 建 立 MF p Wi r [ x ] .. C A p z d ee 工程 a 新建 一个 基 于 对话 框 的应 用程 序 , 意要 勾选 注 A t t n选项 。在 对话 框 中添 加两 个 编辑 控 件 和 uo i mao 三个 按钮 控件 , 程序界 面如 图 3所示 。
之处。利 用 V C++实现 了一种基 于 DrcS o i thw技 术的视 频抓 帧方法 , e 结果 显示 , 帧质量 高 , 抓
速度快 。
关键词 : i c hw; 帧 ; O Dr t o 抓 eS C M;过滤 器
中图分 类号 : P3 14 T 9 . 1
文献标 识码 :A
过滤器 实现不 同 的功能 , 它们 大 致 可 以被归 为 源过
图 1 过 滤器 图表结构 图
收稿 日期 : 080 - 20 .42 . 4
作者简介 : 余婷(94一) 女, 18 , 湖北省武汉市人 , 研究生。
7 4








20 0 8在
13 过滤 器图表 管理器 ( ie a hMaa e) . Fl rGrp n gr t

基于DirectShow视频及图片捕获软件的开发

基于DirectShow视频及图片捕获软件的开发

我们知道目前很多工业相机的图像数据采集都是基于DirectShow的,常见的有映美精等。

DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,与DirectX开发包一起发布。

DirectShow为多媒体流的捕捉和回放提供了强有力的支持。

运用DirectShow,我们可以很方便地从支持WDM驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中。

它广泛地支持各种媒体格式,包括Asf、Mpeg、Avi、Dv、Mp3、Wave等等,使得多媒体数据的回放变得轻而易举。

另外,DirectShow还集成了DirectX其它部分(比如DirectDraw、DirectSound)的技术,直接支持DVD的播放,视频的非线性编辑,以及与数字摄像机的数据交换。

更值得一提的是,DirectShow提供的是一种开放式的开发环境,我们可以根据自己的需要定制自己的组件。

笔者使用visual studio 2005 来开发了基于DirectShow的视频捕获软件,并用开发的软件对映美精相机进行了测试。

本软件不但可以实现对相机的视频捕获,而且还可以抓取图像帧。

软件运行时自动搜索所连接的相机,预览后可以对相机参数进行设置。

下面是软件的主界面。

预览视频后可以对视频格式和图像参数进行设置。

开始预览时,捕获的视频是黑白的,我们将颜色空间设置为UYVY即可捕获彩色视频。

下面是捕获的一帧图像,图像质量虽然没有映美精自带的软件效果好,但已经实现了所需各项基本功能,接下来的工作将会进一步提高软件性能。

另外我们还可以捕获视频,点击“捕获视频”按钮,输入要保持的文件名,注意要以.avi后缀结尾,点确定就开始捕获视频。

从我们开发的软件可以看到,映美精的相机能够很好的支持DirectShow的驱动,我们的软件对映美精相机的识别是如此的容易。

接下来我们将继续开发基于其它驱动的图像捕获软件,为最终实现在一个软件中识别各种相机而努力。

DirectShow视频采集方案

DirectShow视频采集方案
2.3 DirectShow
流媒体处理技术以其复杂性和技术性一直受到人们的关注。随着网络技术的不断发展,流媒体在网络上得到了广泛地应用。如何能够简单、有效地进行流媒体处理,已成为一个焦点问题。为此,Microsoft推出了DirectShow,DirectShow是Microsoft推出的基于Windows平台的流媒体处理开发包,它与DirectX一起发布。DirectShow对流媒体的捕捉、回放提供了强大的支持,使用它还可以在基于WDM驱动的采集卡上进行数据捕捉。本节将介绍有关DirectShow的相关知识。
while (pEnumPins->Next(1,&pOutpin,NULL)==S_OK)
{
pOutpin->QueryDirection(&pDir);
if (pDir==dir)
{
return pOutpin;
}
}
return 0;
}
用户可以按下面的方式获得某个过滤器的输入、输出引脚。
IPin * pComOut,*pComIn ;
在开发DirectShow应用程序时,通常需要设计一个过滤图表(Filter Graph),向过滤图表中添加相应的过滤器,最后连接过滤器的引脚就完成了功能的设计。例如,实现一个简单的视频预览功能,需要向过滤图表中添加一个视频捕捉源过滤器和一个Video Renderer过滤器,将视频捕捉源过滤器的输出引脚与Video Renderer过滤器的输入引脚相连就可以了。而在程序中只需要按照设计过滤图表的捕捉添加过滤器并连接过滤器引脚就可以了。在连接过滤器引脚时需要注意:只能是输出过滤器引脚与输入过滤器引脚相连,两个输出过滤器或两个输入过滤器引脚是不能相连的。
为了在程序中使用DirectShow,需要单独安装DirectX,当前DirectX的最新版本为9.0,即DirectX9.0,用户可以从Microsoft的官方网站上免费下载。在安装DirectX之后,程序中需要引用“dshow.h”头文件,并导入“Strmiids.lib”库文件和“quartz.lib”库文件才可以使用DirectShow。代码如下:

基于DirectShow的P2P网络视频采集、传输与播放系统(DOC)

基于DirectShow的P2P网络视频采集、传输与播放系统(DOC)

软件技术课程设计实验报告(基于DirectShow的P2P网络视频采集、传输与播放系统)一.概述DirectShow是一个windows平台上的流媒体框架,提供了高质量的多媒体流采集和回放功能。

它支持多种多样的媒体文件格式,包括ASF、MPEG、AVI、MP3和WAV文件。

同时DirectShow支持使用WDM驱动或早期的VFW驱动来进行多媒体流的采集。

DirectShow整合了其它的DirectX技术,能自动地侦测并使用可利用的音视频硬件加速,也能支持没有硬件加速的系统。

DirectShow大大简化了媒体回放、格式转换和采集工作。

但与此同时,它也为用户自定义的解决方案提供了底层流控制框架,从而使用户可以自行创建支持新的文件格式或其它用途的DirectShow组件。

DirectShow的主要功能是提供对多媒体流的捉捕与回放。

这种多媒体流既可以来自本地磁盘文件,也可以来自网络上的远程服务器。

也就是说,它提供了一种“在线播放”的功能,在远程数据尚未完全传输到本地机器上的同时,本地应用程序可不必等待数据完全传输完毕再进行播放,可以一边传输,一边播放。

这就为网络化的视频采集数据的实时解码显示提供一个方便的开发平台。

点对点技术(peer-to-peer,简称P2P)又称对等互联网络技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。

P2P网络通常用于通过连接来连接节点。

这类网络可以用于多种用途,各种文件共享软件已经得到了广泛的使用。

P2P技术也被使用在类似VoIP等实时媒体业务的数据通信中。

二.需求分析2.1 开发要求1.熟悉、掌握vs2010开发工具,以及DirectShow SDK9.0软件开发包。

2.熟悉了解Socket网络编程;3.开发基于DirectShow的应用软件,要求能够完成P2P的网络视频采集、视频传输、视频播放的功能。

4.基本功能:实现采集视频、传输视频、实现异地播放采集视频。

基于DirectShow的多摄像头视频采集

基于DirectShow的多摄像头视频采集

基于DirectShow的多摄像头视频采集1.为什么使用DirectShow笔者使用的是两个USB摄像头,单摄像头视频采集使用OpenCV的VideoCapture类没有问题,但是双摄像头就有问题,一个正常,另外一个采集不到信息,显示一片灰色。

网上有种解决方法是逆序打开摄像头,结果两个窗口是可以采集到视频信息,但是竟然是同一个摄像头的视频信息,无奈的只能使用DirectShow采集多摄像头视频信息。

先看看什么是DirectShow:DirectShow 是 DirectX 的组件之一, DirectX 软件开发包是 Microsoft 提供的一套在 Windows平台上开发高性能图形、声音、输入、输出和网络游戏的编程接口。

这其中,DirectShow提供了应用程序从适当的硬件中捕捉和预览音、视频的能力。

数据源包括: VCR、 Camera、 TV Tuner、 Microphone 或其他的数据源。

应用程序可以立刻显示捕捉的数据(预览),或是保存到一个文件中。

摄像头采集信息常用的软件AMCap就是基于DirectShow SDK编写的。

查阅一下官方文档,感觉好难的样子,难道要新学一门“快过时”的技术吗?幸好于仕琪老师写了一个CCameraDS类,可直接返回IplImage,使用方便。

2.在VS2010中配置DirectShow并采集双目摄像头视频下载DirectShow相关文件,我已经共享在百度云盘,点击下载。

解压以后copy到D:\opencv里(放在这里为了管理方便)在解决资源管理器中的项目名称处右键\属性\配置属性\VC++目录,引用目录中添加DirectShow的include文件夹,我添加的是D:\opencv\DirectShow\Include在引用目录下面有一个库目录,添加DirectShow的Lib文件夹,我添加的是D:\opencv\DirectShow\Lib;下载CCameraDS类相关文件,点击下载。

基于DirectShow的视频采集与压缩存储的实现

基于DirectShow的视频采集与压缩存储的实现

络 可视I P电话 就不 能使 用V W , F 因为 它不 能提供 流数 据 。 因此 ,
必 须寻求 其 它 的手段 , i cS o 就 是一 个很 好 的选择 。 D r th w e
换 , 如数 据 流分 离/ 成 、 码/ 码等 , 例 合 解 编 然后 将 数据 继续 往 下
1 Die t h w概 述 r cS o
广 泛 的应用 。
种C M组件 。应 用程 序把 多个过 滤器 组件组 合起 来 , O 形成 对
媒 体 流 的 处 理 流 程 。这 一 整 套 过 滤 器 集 合 被 称 为 过 滤 器 图
( ie rp ) i c h w 供 F M( ie rp ngr 滤 波 Fl rG a h 。Dr t o 提 t eS G FhrG ahMaae ,
Di c hw的 设 计 初 衷 就 是 尽 量 让 应 用 程 序 开 发 人 员 从 复 杂 r t o eS
传 输 : e d r gFl r负责数 据 的最 终去 向 , 数据送 给 显卡 、 R n ei ies n t 将 声 卡进 行 多媒体 的 演示 , 或者 输 出到 文件进 行存储 。
第7 第8 卷 期
2 0 年 8月 08
软 件 导 刊
S fwa eGuie ot r d
VO1 . . NO8 7 Au 20 8 g. 0
基 于 Di cS o r t h w的视 频 采 集 与压 缩 存储 的实现 e
张 明 杰
( 西安 邮 电学 院 信 息管理 系, 西 西安 7 0 6 ) 陕 10 1
D rcS o 是 基 于 C M( 件 对 象 模 型 ) 范 的 。 过 滤 器 是 i thw e O 组 规

directshow采集多媒体音视频同步

directshow采集多媒体音视频同步

随着计算机网络和多媒体技术的发展,多媒体应用如视频会议、远程监控、远程教育、可视电话、医疗视频会诊等迅速兴起,视频和音频捕获成为多媒体应用中的关键环节和重要前提。

目前采用较多的基于设备软件开发工具箱(SDK)的捕获方式存在成本较高、灵活性和扩展性较差等问题,难以满足用户需求和网络环境的变化。

微软公司推出的多媒体开发软件包———DirectShow成为解决这些问题的一个有力工具。

DirectShow提供高质量的多媒体数据流的捕获和回放功能,广泛支持多种媒体格式,包括ASF、MPEG、A VI、DV、MP3和W A V等。

同时DirectShow对VFW具有良好的兼容性,并具有其无法比拟的优势,包括支持大量多媒体数据捕获的同时可通过网络传播和播放,支持视频与音频在捕获和播放中的完全同步,支持来自不同媒体源数据捕获的合成等。

本文着重介绍如何利用Visual C++实现基于DirectShow的视频和音频捕获以及其中涉及到的关键问题,以供工程人员和开发人员参考使用。

DirectShow的原理1、DirectShow的体系结构。

应用程序与DirectShow组件以及DirectShow所支持的软硬件之间的关系如图1所示。

DirectShow使用模块化的架构,系统中的基础模块称为过滤器(Filter)。

过滤器作为软件的组件,可完成单一的数据流处理功能。

按照功能,过滤器大致分为3类:源过滤器(Source Filter)、转换过滤器(Transform Filter)和表现过滤器(Rendering Filter)。

源过滤器负责从媒体源获取数据;转换过滤器负责数据的格式转换、传输,如数据流分离/合成、编码/解码等;表现过滤器负责数据的最终去向,将数据送往显卡和声卡进行播放,或输出到文件进行存储。

过滤器之间通过引脚(Pin)进行有序连接,组合而成过滤器图(Filter Graph),用以实现组合的一系列功能。

应用程序创建过滤器图管理器(Filter Graph Manager),负责过滤器图的组织和连接功能并控制数据在其中的流动。

基于Directshow的VMR视频捕获的实现

基于Directshow的VMR视频捕获的实现

时 , 捉 图像 帧 , 捕 然后 从 颜 色空 间 RG 转换 到 Y 4 0 12 , B UV 2 /4 0 供视 频 图像 处 理 算 法作 直接 处 理 。 如 : 码 、 别 等 。 比 编 识
关键词 : VMR ; rcso 视 频 捕 获 Di t w; e h
中 图分 类 号 : P 1 T 31
文 献标 识 码 : A
文 章编 号 :0 9 3 4 (0 0 2 — 1 0 0 1 0 — 0 42 1 )5 7 1 — 2
TheR e lz ton h de ai a i oft e Vi o Capt e Ba e lD ie tho ' ur s d Oi r cs w s VM R ZEN G ua h n. H —s a So N G u Y
I SSN 1 0 — 0 4 09 34
E ma l e u @C C .e . — i d f C Cn t a : c
h t : w w.n s e.a t / w dz. t p/ n c T l 8 — 5 - 6 0 6 5 9 94 e: 6 5 1 5 9 9 3 + 6O 6
Ke r s VM R ; i cs o v d o cp u e y wo d : dr t w; ie a t r e h
随 着 多媒 体 技 术 的 不断 发 展 , 于 视 频 技 术 的项 目已广 泛 应 用 于 数 字 监 控 、 视 电话 等 领 域 , 些 领 域 最 首 要 的 问题 是 实 时 图 基 可 这 像 捕 获 , 得 良好 的 视 频 图 像 以 供 数字 图像 处 理 , 典 的 D r t o ie n e 视频 捕 获 技 术 存 在 诸 多 局 限 性 , 对 这 一 现 象 , 获 经 i es w v or dr e h d e 针 本 文 提 出 了一 个 基 于 Dre hw 的 V i to es MR技 术 的 视频 捕 获 方 案 , 获 图 像 帧 , 换 颜 色空 间 , 视 频 图 像处 理算 法 处 理 。 捕 转 供

浅谈DirectShow技术捕获视频流中帧图像

浅谈DirectShow技术捕获视频流中帧图像

浅谈DirectShow 技术捕获视频流中帧图像肖长健(江苏联合职业技术学院盐城生物工程分院,江苏 盐城 224731)摘 要:利用微软公司提供 DirectShow 接口技术,实现了多媒体文件或视频流中视频帧图像的捕获,并提取出有用的图 像帧信息。

关键词:DirectS how 技术;filter ;视频流;视频帧图像捕获Brief T alk on Capturing Images from Video Streams by DirectShow TechnologyXIAO Chan g-ji an(Yancheng Biology Engineering High School, Jiangsu Union Technical Institute, Yancheng, Jiangsu 224731, China )Abstract : Making use of DirectShow interface technology provided by Microsoft C orporation, the capturing video images from multimedia files or video streams is realized, and useful image frames information is extracted. Key words :DirectShow technolog y ;filter ;video streams ;video images capture0 引言本文以 Direct Show 技术为基础,通过对媒体文件或多媒体 流中的视频流的处理,从多媒体文件视频流中捕获视频帧图像,提取出所需要的最好、最有价值的图像帧信息。

利用 Direct Sho w 技术从视频流中捕获帧图像,捕获精度可达到 1 帧。

1 DirectShowD ir ec t X M e d i a 是微软公司发布的专用于开发多媒体应用的 程 序 接 口 ,包 括 D ir ec t A n i m a ti on 、D ir ec t Sho w 、M e d i a P l a y e rC on tr o l 、D ir ec t X T r a n s f o r m 和D ir ec t 3D R e t a i n e d M od e 。

基于VFW和Directshow的视频捕捉技术研究

基于VFW和Directshow的视频捕捉技术研究

基于VFW和Directshow的视频捕捉技术研究作者:高余胜来源:《知识文库》2018年第08期随着计算机技术的飞速发展越来越多的需求要软件来实现视频采集,而且也要获得较好的图像效果。

在这种情况下,Windows平台专门开发了满足这种需求的信息处理和集成技术,也为数字视频信息的实时捕捉提供了多种实现技术,其中主要有VFW技术和Directshow技术。

文章将主要介绍VFW和Directshow技术,并简要介绍了运用该技术实现视频捕捉的技术研究。

近年来Internet不断发展,人们希望通过网络可以传输更多的视频信息或者视频信号,而实现视频传输的核心问题便是多媒体信息的压缩及传输技术。

传统意义上的视频处理系统以模拟设备为主,其结构是一种单功能、单向、集总方式的信息采集系统,因此传统设备尽管发展到很高的水平,但其局限性依然存在,已无太大发展空间。

面对越来越高质量的需求,视频字数化的发展将是必由之路。

实时数字视频处理系统具有传统模拟处理系统无法比拟的优点,而且符合当前字数化、网络化和智能化的发展趋势,所以基于VFW和Directshow的视频捕捉技术的数字视频处理正在逐步取代传统视频处理技术并广泛应用于多媒体发展中。

1 VFW视频捕捉技术VFW(Video for Windows)即视窗操作系统下载视频是Microsoft公司为适应社会发展需求而推出的关于数字视频的一个软件开发包,而AVI(Audio VideoInterleave)文件标准是VFW技术的核心。

VFW的优势在于简单直观,能较快捷地运用回调函数、宏等函数完成实时的视频捕捉和单帧捕获并提供对视频源的控制。

此外,AVICap类能直接访问视频缓冲区,而不需要生成中间文件,实时性和效率较高。

实现VFW视频捕捉技术的流程可以设计为:创建视频捕获窗口、捕获窗口与视频捕获驱动链接、视频捕获参数的设置、设置捕获窗口的显示模式、注册系统回调函数、捕获图像到缓存或文件并进行相应处理、捕获结束。

VS2010 C 学习(5):基于DirectShow视频预览录像程序

VS2010 C  学习(5):基于DirectShow视频预览录像程序

VS2010 C++学习(5):基于DirectShow的视频预览录像程序学习VC++编制的基于DirectShow视频捕获程序,主要练习基于DirectShow程序的应用。

一、主要内容:1.基于DirectShow视频预览;2.基于DirectShow视频录像;二、设计实现:(一)、安装DirectShow首先我们安装DirectShow SDK,由于现在directShow没有和direcxtx一起发布,而是和windows sdk 打包发布了,可以到官网下载最新的windows sdk 开发包。

一个可用的下载地址为/07/hh/DXSDK_Feb10.rar 然后安装好windows SDK。

安装完DirectShow SDK的目录为C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow。

(二)、开发环境配置开发环境的配置主要有两个工作要做:一是在使用Directshow SDK开发自己的程序时需要的DirectShow的有关静态库的配置,二是visual C++开发环境的配置。

1)生成DirectShow SDK开发库使用DirectShow SDK开发用户自己的程序需要几个静态链接库:quartz.lib、strmbasd.lib、STRMBASE.lib和strmiids.lib。

中间两个lib需要用户自己编译生成,而其他两个微软已经提供。

下表列出了使用DirectShow SDK开发程序所有要使用的库。

2)更改添加的include内容:C:\Program Files\MicrosoftSDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses;C:\Program Files\Microsoft SDKs\Windows\v7.1\Include;添加过程如下。

基于DirectShow的多路视频采集系统

基于DirectShow的多路视频采集系统

图1 DirectShow架构DirectShow系统使用一种叫做过滤器图表(FilterGraph)的结构模型,对整个多媒体数据流的处理过程进行统一管理,参与数据处理的功能模块叫做过滤器(Filter),每个Filter通过引脚(Pin)在Filter Graph中按照一定的顺序连接成一条“流水线”协同工作[3]。

依照功能来划分,Filter可以划分为三类:Source Filters、陶崇峻(1974-),男,辽宁丹东人,本科,网络工程师。

研究方向:信息安全、银行卡技术与风险。

图2 多路视频采集系统演示效果图3 系统结构TCHAR szCaptureFile[_MAX_PATH]; //捕获到文件的存储路径WORD wCapFileSize; //捕捉文件的大小IVideoWindow *pVW; //视频显示的指针,利用该指针将视频显示在界面上double FrameRate; //用户设定的帧速率,即每秒帧数int iNumVCapDevices; //现有视频捕捉设备数量BOOL fPreviewGraphBuilt; //是否已建立了预filter graph的布尔变量首先,需要在GraphEdit中添加视频捕捉器件,系统将捕捉器件的Filter添加到可视化界面中的方法是:h r=g c a p.p F g->A d d F i l t e r(g c a p.p V C a p,g c a p. wachFriendlyName);为了显示视频图像,需要一个视频预览的Filter,这样就添加了一个视频渲染器(Video Renderer)的Filter。

从图4中可以看出,每个Filter的框架上都内嵌了小矩形方块,这些小矩形方块就代表每个Filter的Pin,位于左边的是输入Pin,位于右边的是输出Pin。

若要让整个Filter链路运行起来,首先要把上游Filter的输出Pin与下游Filter的输入Pin连接起来,在连接的过程中,需要协商能够共同使用的多媒体格式,若没有相同的多媒体格式可用,连接将会出错[10]。

DirectShow编程实现摄像头视频捕捉

DirectShow编程实现摄像头视频捕捉
第二步、调用RenderStream依次把Still pin、Sample Grabber和系统默认Renderer Filter连接起来。
第三步、配置Sample Grabber以捕获数据。
视频捕捉类CCaptureVideo的具体实现
// CCaptureVideo视频捕捉类头文件/////////////////////////////////////////////////////////////////////#if !defined(AFX_CAPTUREVIDEO_H__F5345AA4_A39F_4B07_B843_3D87C4287AA0__INCLUDED_)#define AFX_CAPTUREVIDEO_H__F5345AA4_A39F_4B07_B843_3D87C4287AA0__INCLUDED_/////////////////////////////////////////////////////////////////////// CaptureVideo.h : header file/////////////////////////////////////////////////////////////////////#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000#include <atlbase.h>#include <windows.h>#include <dshow.h>#ifndef SAFE_RELEASE#define SAFE_RELEASE( x ) /if ( NULL != x ) /{ /x->Release( )

DirectShow在视频捕获中的应用

DirectShow在视频捕获中的应用

#T 6 7 / # $ ’ / 5 < , % 8 % / 9‘ 5 , 7 < 9 0 1 % Y5 8. , < 1 5 9 7 < 9 + , 7/ % ,8 9 , 7 . M 5 7 2 5 .% -b 5 2 % Y 8Z & . 9 / % , M’ c 9 3M M . K 7 8 9 1 7 9 . 8 K% / < , 7 . 9 5 9 , 7 . M 5 7 2 5 . . & 5 < . 9 5 % 8M % , 7 7 / / 5 < 5 7 9 X 5 8 % & . 9 5 & 5 < . 9 5 % 8 / , % M 38 3M Z Z : 3. Z Z $ $ . , 2 Y . , 72 5 / / 7 , 7 < 7 8. 28 < 1 , % 5 e . 9 5 % ’ c 9 5 8 5 9 , % 2 + < 7 25 9 1 7 < % M & 7 V 5 9 5 7 8% /2 . 9 .9 , . 8 % , 9 8 1 : Z Z . 8Y 7 & & . 88 % M 7% 9 1 7 , 9 1 5 8 . , 9 5 < & 71 % Y9 %< . 9 + , 76 5 2 7 %2 . 9 . / , % M.4 0 O< . M 7 , .Y 5 9 1‘ 5 , 7 < 9 0 1 % Y$ Z $ $ 9 7 < 1 5 + 7 8 5 < & + 2 5 , 7 6 5 7 Y$ 6 5 2 7 % < % M , 7 8 8 5 % . 2Y , 5 9 5 5 2 7 %2 . 9 . 5 9 % / 5 & 7 ’ 0 % M 7 5 M % , 9 . 9 [ 3Z Z 36 Z < % 2 7 / , . M 7 9 9 % 5 M & 7 M 7 9 9 1 7 8 7 9 . 8 K 8 5 -T 5 < , % 8 % / 9$ 5 8 + . &Djj’ ( 7 9 5 8 . & 8 %Z , % 6 5 2 7 2 ’ 3 Z #$ % 8 " ) # 4 7 5 2 7 %D . 9 + , 7 ‘ 5 , 7 < 9 0 1 % Y% D GT Z 1+ 9 7 , 7 9的 普 及 和 多 媒 体 技 术 的 发 展 $ !! 随着c 基于 c 如在线直播 & 视频 会 9 7 , 7 9的多媒体应用 $ 议& 远程教育 & 远程医疗 & 网络电话 & 网络监控等如 雨后春笋般涌出 ’ 在这些应用中 $ 视频捕获是一项 重要的基础工作 ’ 就软件实现来说 $ 目前要实现计

DirectShow流媒体数据的采集及图片的捕获

DirectShow流媒体数据的采集及图片的捕获

DirectShow流媒体数据的采集及图片的捕获DirectShow流媒体数据的采集及图片的捕获建议你用DirectShow它可以帮你从视频采集设备中取得数据,并通过Sample Grabber过滤器进行抓图DirectShow流媒体数据的采集及图片的捕获用DirectShow来使用摄像头,一般要求摄像头的驱动是WDM 格式的,当然,一些比较老的驱动格式DirectShow也可支持。

在DirectShow中,有一个Sample Grabber过滤器,它是一个可以被插入流的过滤器,它有自己的缓冲,存放采样。

我们就可以用它来从一个视频文件中简单的扑获一桢。

DirectShow通过图形过滤管理器(Filter Graph Manager)来与上层应用程序和下层的驱动进行联系。

DirectShow通过捕获过滤器(Capture Filter)来支持对摄像头的捕获,一个捕获过滤器有多个插口(pin),其中的预览(preview)插口可用来进行显示祯图象。

1、创建图形过滤管理器Filter Graph如上面原理所述,首先要创建Filter Graph:CComPtr< IGraphBuilder > m_pGraph;hr=m_pGraph.CoCreateInstance( CLSID_FilterGraph );2、连接设备还要创建系统枚举器组件对象:CComPtr<ICreateDevEnum>pCreateDevEnum;pCreateDevEnum.CoCreateInstance( CLSID_ SystemDeviceEnum );然后使用接口方法CreateClassEnumerator ()为指定的Filter注册类型目录创建一个枚举器,并获得IenumMoniker接口:CComPtr< IEnumMoniker > pEm;pCreateDevEnum->CreateClassEnumerator(CLSID_VideoInputDeviceCategory, &p Em, 0 );接着在调用BindT oObject()以后,可以将设备标识生成一个DirectShow Filter,将其加到Filter Graph中就可以参与工作了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

该体系结构见 图i中最基本 的功能模块是过滤器 ( i e ) F t r 。过滤器根据功 能不 同分为三类:源过滤器 l
( 0 r e F t r ) 、转 换过 滤 器 ( r n f r S u c i 1e s T a 0 m s F 1e S i t r )和 渲染 过 滤器 (e d r n i t r )。源 R n e ig F 1 e s
视频。在W n o s系统中实现视频捕获的方法有多种, id w *
采用 D r c S O 技 术 是一 个较 好 的选 择 。 ie t h W


D e t h w c S o 体系结构简介 i r
Drc So 是 由微软 推 出应用 于W n o s 平台针 对 iethw i dw * 流媒 体对象 的 结构 体系 , 它实现 高 品质 的多媒 体 数据 流 的捕 捉和 回 放 。 可
绍 了作者在远程教学项 目中运用 Di c h W实现视频捕获的一些方法和经验,并给 出了用 V 编写的 e t 0 r S C
D e t h W视 频 捕 获程 序 示例 。 i cS O r
关键词:D r e S o 视频捕获 过滤器 C M ie t hw O
随着 联 网的飞 速 发展 ,多媒 体技 术 的应 用 已非常 互
— — —

L — — — — 一 — — — — —.J ————— ————. —
L — —— — — — — —— — — J — —— — — — — —— — 一—
图 1 D e S 0 系统 框 架 r t w i c h
维普资讯
维普资讯
中 地代 目 黼
20年第l期( 第4期 06 O 总 4)
基于 D rc h w的视频捕获 i t o eS
良 严
(南京工程学院 江苏 南京 2 0 1 ) 10 3
摘 要:D e t h w是 由微软 开发 的用来处理多媒体数据的软件 工具 ,其功能强大 、应用灵活。本文介 i e 0 r S
理多媒体数据 的过滤器 ,除了系统提供 的以外 ,用户可
定制 开 发 自己 的过 滤 器 , 以实现 所 需 功 能 。
应 用 穰 序
个过滤器都有一个注册变量,在配置时,过滤器链路管
理器 使用 过 滤器 映射 器 ( it r M p e )首先读 注册 F e a p r i 信 息 ,确 定有 用 的 过 滤 器 数 据 类 型 ,然 后分 别 尝试 连 接 ,直 到 找 到 与之 匹配 的渲 染过 滤器 。
引脚 在连接 时相互 校 验 ,校验 内容包 括媒 体类 型 、缓冲 大 小 以及 传送 协议 等 , 任何 一个 校验 内容 不 匹配都 会 使 数 据 交 换 失败 。 过 滤器 成功 连接 后 组成过 滤器 图表 (itrGah。 Fle rp) DrcSo 专 门提 供 了 一个 高 级组 件 接 口一一 过 滤 器 图 iethw 表 管 理器 ( i t r r p M n g r F e G a h a a e )用 来连 接过 滤 1 器 并对 过 滤器 图表 中的数 据流 进 行控 制 。 同时 ,它也 能
为一个特定的媒体文件配置过滤器渲染该文件 ,并建立 用户定制的过滤器 图表 。默认情况下, 过滤器 图表管理
器自 动处理数据流 ,应用程序并不直接管理图表中的过
滤器 。但 应用程序可 以通过较高级的A I( P 应用程序接
口) 向过 滤器 图表 管 理器 发 出如 “ 播放 ” 、 “ 止 ”等 停 操 作 指 令 , 过 滤 器 图 表 管 理 器 负 责 传 送 并 处 理 这 些 指 令 , 同时 向应 用程 序返 回 事件 响 应 ( 图 1 示 ), 从 如 所 而 实现 相 应 的 功 能 。 过 滤器 图表 管 理器 也可 重新 配 置过滤 器 图表 ,每 一
过滤器负责获取媒体数据 ,数据源可以是本地文件 、互
联 网 、或外 设 ,然后将 所 获数 据传 输 至下 一级 过滤 器 ; 转 换过 滤器 负责 数据 的格 式 转换和 传送 ;渲染 过滤 器将
媒体数据流送至声卡、显卡实现回放,或直接将数据存
储 到指 定文 件 。W n o 系统 本 身集 成 了大 量用 于 处 idw 。 s
20年第1期( 第4期) 06 0 总 4
中 她代 国 瓣
过 滤器 图表 管理 器 接 口控 制 媒 体流 , 得 事件 响 应 。 获

些 内置 的源过 滤 器 内部 ( I u i a t r F e ,VW  ̄ A d o C pu e i tr F i
二 、C M D r c S o O 在 ie t h w中的应用
过滤器图表 锊理器
D ect h  ̄ ir St

在实际应用中,开发人员可根据 自己的需要 自由组 合具有不同功能的过滤器实现一个完整的功能。比较简 便的方法是编写一个应用程序,再运用过滤器 图表管理 器提供的一系 ̄C M 口来访问过滤器 图表 ,直接调用 ,O 接 J
L 滤 臣亘 =[ j 越 嚣 由 转 过 器 亘 = [ 渲 土 器 l 溯 换 滤 童 染i 滤
每个过滤器有 若干输入 、输 出引脚 ( i ),过滤 pn
器 之 间通 过 引 脚相 互 连 接 , 体数 据 流 从输 入 引脚 流 向 媒
广泛。在诸如视频会议 、可视 电话等应用中,一个关键
的前提 就是 能否 通 过采 集 设 备获取 并高 质量 地 回放 数字
输 出引脚 。过滤 器图表必须要按正确 的顺序连接过滤 器 ,同时数据流也必须以正确 的顺序开始和结束。两个
相关文档
最新文档