Capture Graph Builder
原文:http://msdn.microsoft.com/en-us/library/ms940047.aspx
执行视频或者音频捕获的过滤图表叫做捕获图表。捕获图表经常比 文件回放图表复杂。为了应用程序更简单的创建捕获图表,DirectShow提供了一个Capture Graph Builder 帮助对象。Capture Graph Builder暴露了ICaptureGraphBuilder2接口,这些接口包含创建和控制捕获图表的方法。
开始时调用CoCreateInstance创建一个新Capture Graph Builder和 Filter Graph Manager实例。然后使用指向过滤器图表管理器的IGraphBuilder
接口的指针调用ICaptureGraphBuilder2::SetFiltergraph来初始化Capture Graph Builder。
下面的代码显示了执行这些步骤的相关函数
HRESULT InitCaptureGraphBuilder(
IGraphBuilder **ppGraph, // Receives the pointer.
ICaptureGraphBuilder2 **ppBuild // Receives the pointer.
)
{
if (!ppGraph || !ppBuild) {
return E_POINTER;
}
IGraphBuilder *pGraph = NULL;
ICaptureGraphBuilder2 *pBuild = NULL;
// Create the Capture Graph Builder.
HRESULT hr = CoCreateInstance(CLSID_CaptureGraphBuilder, NULL,
CLSCTX_INPROC_SERVER, IID_IcaptureGraphBuilder2, (void**)&pBuild);
if (SUCCEEDED(hr)) {
// Create the Filter Graph Manager.
hr = CoCreateInstance(CLSID_FilterGraph, 0, CLSCTX_INPROC_SERVER,
IID_IGraphBuilder, (void**)&pGraph);
if (SUCCEEDED(hr)) {
// Initialize the Capture Graph Builder.
pBuild->SetFiltergraph(pGraph);
// Return both interface pointers to the caller.
*ppBuild = pBuild;
*ppGraph = pGraph; // The caller must release both interfaces.
return S_OK;
}
else {
pBuild->Release();
}
}
return hr; // Failed
}
在这段视频捕获的代码中,假设你使用Capture Graph Builder来创建捕获图表。并且可以使用IGraphBuilder方法来创建完整的捕获图表。这被认为是一个高级的方法,而且Capture Graph Builder 方法要优先选择。要获取更多信息参加Advanced Capture Topics.
分享到:
相关推荐
基于directshow的视频捕获.pdf,视频捕获,过滤器
视频捕获源程序,详细介绍了SDK中的一个好列子,可以慢慢研究以方便些directSHow视频捕捉程序
利用VC++实现基于DirectShow的视频捕获.pdf
基于DirectShow的视频捕获
基于DirectShow视频及图片捕获软件的开发 有详细的说明文档及源代码,对于刚用Directshow有很好的帮助,文档中有详细的开发过程以及注释。
一个简单的基于DirectShow的视频捕获程序
利用DirectShow开发视频捕获的一个小例子
学习directshow 开发的好例子,大家不容错过!!测试例子绝对可以跑!!!
采用C 的DirectShow技术编写的视频捕获源码示例,测试电脑没有摄像头,可能程序还有些小错误,不过对于了解视频捕获原理及编写方法应该有帮助,有这方面需要的朋友可以下载参考一下。
一个 F# + DirectShow.NET 开发的捕获摄像头视频的简单程序。
基于DirectShow实现的VC 视频捕获程序,注意请准备好DirectShow的相关文件,比如dshow.h等文件
本程序是基于DirectShow的视频采集可以实现预览,程序简单易懂,且操作方便,是初学者的较好范例。
VC通过DirectShow进行视频预览和捕获
通过directshow实现对摄像头画面的捕捉,以及对系统声音的捕捉,可以实时得到数据流
Windows下通过DirectShow控制USB摄像头,捕获视频流,并且支持实时抓拍图片,格式为BMP,编译前请自行安装Microsoft DirectX 9.0 SDK
Delphi 源码,用DirectShow 的方式,进行视频输入设备枚举、视频支持格式枚举、视频预览、视频录像。
通过DirectShow进行视频预览和捕获
基于DirectShow视频与图片捕获软件的开发.doc
VC 基于Directshow的视频聊天程序源码,编译于VS.NET项目,VC .NET源码,在VC 6.0中编译会提示有错误,可能是我电脑的问题,想编写同类视频聊天程序 语音聊天的可参考学习。