繁体   English   中英

如何在其他计算机上运行DirectShow.net应用程序

[英]How to go about running DirectShow.net application on other computers

我有一个C#DirectShow.Net应用程序,我想测试它在发布模式下在其他计算机上运行。 我如何确保我的程序将运行在其他没有包含Windows sdk的机器上以及它所使用的过滤器?

我将不得不包括dirctshow dlls等,但我可以对滤镜本身做些什么呢?

更新:我有虚拟机来运行它,但是我怎样才能确保计算机上有某个directx过滤器,如果不是,请抓住dll并从代码中将其注册到计算机?

编辑:我注册了DLL后运行我的程序。 它没有运行,所以我抓住graphstudio并将我的程序图形附加到graphstudio并且没有连接过滤器,当我尝试手动连接它们时它们拒绝连接。

EDIT2:

Can you post more details about the scenario you are having problems with? 

我正在运行我的应用程序,它可以在我的Virtualbox VM上的Windows 7 32位机器上运行。 虚拟机不允许我访问我的USB设备用于流式传输,所以我注释掉了依赖它的代码。 当我运行它时,过滤器不会连接。 我做了一些测试,并试图重新创建没有源的图形,他们不会连接在一起,所以这可能实际上是问题。

OS version? 

目前我正在运行32位XP虚拟机VM

which filters you are using? 

我在用

Source -> Smart tee (capture) -> GMFBridgeSinkFilter
          Smart tee (preview) -> AVI Decompressor -> Video REnderer

GMFBridgeSource -> ffdshow video encoder -> avi mux -> File writer

(w)由于一些奇怪的原因,riter必须是小写的。 开发机具有(w)riter和(W)riter

Which filters do you have there that you are not using? 

你的意思是操作系统上的标准或我在代码中放入的过滤器并没有连接到?

You could also try with the original GraphEdit instead of GraphStudio, and you could debug your application remotely and see where it is failing exactly.

Graphedit只出现在完整的windows sdk中,这是一个很难下载的地方。

以下是您可以执行的一些验证的列表:

  • 正如@HiperiX所说,最好在干净的系统中测试你的应用程序,也许使用一些虚拟化软件。 如果你需要支持Win XP,那么在那里进行测试也是一个好主意,因为有一些DirectShow过滤器仅在Win Vista及更高版本中可用。
  • 关于所需的过滤器,其中一些可能由Windows提供。 那些不是,你必须提供它们并在应用程序的安装过程中在目标系统中注册它们。 在这种情况下,我建议从visual studio创建一个安装项目,并在那里附加所有依赖项dll。 对于手动安装,您可以将过滤器复制到应用程序的文件夹,并使用命令行中的regsvr32 filtername.ax注册。
  • 您需要注意的另一个细节是与64位版本的Windows的兼容性,因为您不能使用64位应用程序为32位本机模式构建的过滤器。 如果您的应用程序是在.net中开发的,并且它是使用AnyCPU模式构建的,则.net JIT将从中创建64位代码,并且您的32位dll将无法加载。 因此,如果您使用的是32位dll,我建议您使用CPU Type = X86构建.net应用程序。 您可以在Visual Studio中的项目配置中设置此模式。
  • 根据您的过滤器的创建方式,您可能还需要安装Visual c + +可再发行文件
  • 关于这句话:

我做了一些测试,并试图重新创建没有源的图形,他们不会连接在一起

这肯定是个问题,如果没有源过滤器和目标过滤器,则无法创建图形。 源过滤器通常会确定内容格式,压缩,颜色空间等。为了使用虚拟系统测试此应用程序,您需要提供对虚拟化操作系统内USB端口的直接访问,并安装捕获的驱动程序那里的设备,如在真实系统中。 否则DirectShow将无法检测到您的设备。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM