如何渲染网络摄像头过滤器而不是视频文件?我正在查看directshow sdk中包含的vmr9compositor示例。它呈现一个视频文件。我想从网络摄像头流入来源。这样看起来应该是可能的,但我对directshow没有多少把握。
目前使用此方法调用:
hr = g_graph->RenderFile( pFileName, NULL );
查看sdk中的playcap示例,它可以在窗口中显示Web cam feed,我看到它使用
hr = g_pCapture->RenderStream (&PIN_CATEGORY_PREVIEW, &MEDIATYPE_Video, pSrcFilter, NULL, NULL));
显示网络摄像头流。 pSrcFilter是一个IBaseFilter。
如何使用网络摄像头Feed将vmr应用中的视频文件交换?
Windows XP,Visual Studio 2008 C ++
答案 0 :(得分:2)
枚举网络摄像头(视频捕捉)源并使用此处说明的技术创建源过滤器:
http://msdn.microsoft.com/en-us/library/dd377566%28v=VS.85%29.aspx
从那里,您只需将其作为源过滤器连接到图表中。
此处有关DShow视频捕捉的详细信息。 http://msdn.microsoft.com/en-us/library/dd407331%28v=VS.85%29.aspx
答案 1 :(得分:0)
我真的不明白playcap样本没有做什么。 RenderFile相当于调用AddSourceFilter,然后枚举每个输出引脚(使用IEnumPins)并渲染每个引脚。 RenderStream是一个包装器,用于定位引脚然后呈现它。那么playcap示例如何插入源过滤器(来自捕获名字对象)然后渲染它(使用RenderStream)是RenderFile的实时源等效。