设为首页 加入收藏

TOP

9.2.1 GraphEdit模拟实现
2013-10-07 00:41:22 来源: 作者: 【 】 浏览:45
Tags:9.2.1 GraphEdit 模拟 实现

9.2 使用经典采集技术实现视频捕获

DirectShow SDK的视频采集经典技术是使用ICaptureGraphBuilder2标准接口,利用其方法RenderStream自动建立、连接滤波器链表。RenderStream方法在预览、捕获视频时引脚的类型分为PIN_CATEGORY_PREVIEW和PIN_CATEGORY_CAPTURE,媒体类型均为MEDIATYPE_Video。此实例要完成的目的有两个:一是实时预览采集的视频数据;二是在预览图像的同时,实时地把捕获数据保存到文件中。首先我们使用GraphEdit模拟实现该过程。

9.2.1 GraphEdit模拟实现

 添加"Video Capture Sources"视频捕获设备,如图9-3所示。

 
(点击查看大图)图9-3添加视频捕获设备
视频捕获滤波器只有一个Pin,而我们要求在预览数据的同时还能够保存数据,即需要一个组件把捕获的流分成两个。DirectShow SDK为此提供了Smart Tee滤波器,把捕捉的视频流分成两个流供使用。在GraphEdit中单击"DirectShow Filters"按钮,插入"Smart Tee"滤波器,如图9-4所示。
 
(点击查看大图)图9-4添加Smart Tee滤波器
采集捕捉的视频数据保存到文件,以AVI格式写文件。插入"AVI Mux"滤波器,如图9-5所示。
 
(点击查看大图)图9-5添加AVI Mux滤波器
插入"File writer"滤波器,保存文件命名为"a.avi"。然后插入"Video Renderer"滤波器,如图9-6所示。
 
(点击查看大图)图9-6插入File writer和Video Renderer滤波器
最后把所有的滤波器用鼠标连接起来,完成构建滤波器链表,如图9-7所示。
 
(点击查看大图)图9-7视频预览、保存滤波器链表
运行滤波器链表,单击"Graph"→"Play"按钮执行视频数据的预览、保存。
【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇9.1.2 使用Capture Graph Builder 下一篇9.1.3 采集参数的设置

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: