DirectShow.NET中VMR的替代方案

时间:2016-01-06 05:02:55

标签: c# directshow directshow.net

我正在使用C#windows应用程序中的DirectShow.NET开发视频录制应用程序。直到现在我能够使用asf编写器构建图形和录制。在录制时我必须在其上显示带有叠加文本的预览窗口,对于叠加文本,我已经实现了SampleGrabber并且它工作正常。

我面临的问题是,一切都在我的机器上工作正常但是当我将测试应用程序部署到其他机器(操作系统:Windows 7)时,录制没有开始,但是找不到相机。

稍后通过异常日志我在日志中找到了以下条目

  

使用CLSID创建COM组件的实例   来自IClassFactory的{51B4ABF3-748F-4E3B-A276-C828330E926A}失败   由于以下错误:80040273来自HRESULT的异常:   0x80040273。

经过一些谷歌在这个问题上我得到了这个异常是由于系统上没有安装图形驱动程序引起的。安装尊重的图形驱动程序后,一切正常。

在安装图形驱动程序之前,我已检查过摄像头是否正在使用Skype和Google视频聊天应用程序。

此异常发生在以下行:

IBaseFilter vmr9preview = null;
vmr9preview = (IBaseFilter)new VideoMixingRenderer9(); //THIS LINE CAUSING THE EXCEPTION
hr = Graph.AddFilter(vmr9preview, "VMR9");

大多数操作系统在没有图形驱动程序的情况下工作,因此客户机可能无法安装图形驱动程序。那么有VideoMixingRenderer9的替代方案,它可以在没有图形驱动程序的情况下工作吗?

0 个答案:

没有答案