找不到中间过滤器的组合

2023-12-09

我正在使用 Visual Studio 制作一个 Windows 窗体应用程序。该应用程序允许您输入照片的名称,然后将该图像保存到网络上的特定位置。当我在笔记本电脑上使用它时,效果非常好。但是,当我尝试在桌面上运行它时,它不起作用。相反,我收到消息:

System.Runtime.InteropServices.COMException(0x80040217):否 可以找到中间过滤器的组合来使 联系。

在 DirectShowLib.DsError.ThrowExceptionForHR(Int32 小时)

在 OrderProductCapture.Capture.SetupGraph(DsDevice dev, Int32 iWidth, Int32 iHeight、Int16 iBPP、控制 hControl)

在 OrderProductCapture.Capture.ctor(Int32 iDeviceNum, Int32 iWidth, Int32 iHeight、Int16 iBPP、控制 hControl)

在 OrderProductCapture.frmMain.ctor()

调用堆栈说:

OrderProductCapture.exe!OrderProductCapture.Capture(int iDeviceNum, int iWidth, int iHeight, short iBPP, System.Windows.Forms.Control hControl) Line 82
OrderProductCapture.exe!OrderProductCapture.frmMain.frmMain() Line 50
OrderProductCapture.exe!OrderProductCapture.Program.Main() Line 19

我已经在谷歌上搜索过很多次了,并且我已经查看了大多数类似的问题。两台电脑均使用Windows 7专业版。任何帮助都会很棒。

这是我的代码捕获异常的代码。我不认为代码是错误的,因为它在我的笔记本电脑上运行良好。

public Capture(int iDeviceNum, int iWidth, int iHeight, short iBPP, Control hControl)
    {
        DsDevice [] capDevices;

        // Get the collection of video devices
        capDevices = DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice);

        if (iDeviceNum + 1 > capDevices.Length)
        {
            throw new Exception("No video capture devices found at that index!");
        }

        try
        {
            // Set up the capture graph
            SetupGraph( capDevices[iDeviceNum], iWidth, iHeight, iBPP, hControl);

            // tell the callback to ignore new images
            m_PictureReady = new ManualResetEvent(false);
        }
        catch
        {
            Dispose();
            throw;
        }
    }

当必须在媒体格式之间进行转换时,您可以以编程方式强制它使用某些特定的过滤器链并根据您的需求严格配置它,但 DirectSHOW 还具有“猜测”要使用的正确工具的能力。它知道操作系统中正式安装的所有小型媒体处理程序,并尝试匹配它们,以便构建最终所需的“转换”。

然而,DirectShow 仍然needs那些要安装的微型转换器。 DS 能够分析和连接它们,但不会为您提供对奇异媒体类型的任何支持。通常,如果操作系统是“全新且干净”的,即使是非异国情调的操作系统也可能会出现问题。

如果我没记错的话,该错误基本上意味着(在这台有问题的机器上)缺少一些“编解码器”。

这些东西通常伴随着:

  • 网络摄像头/麦克风/声卡的驱动程序
  • 音频处理软件(声音编辑器、媒体录音机、媒体播放器……)
  • “编解码器包”之类CCCP(真的,不要被他们的标志迷惑了)
  • 特定编解码器/过滤器包
  • (...)

我现在要做的第一件事是:

  • 回想一下我尝试转换的内容
  • 尝试阅读所有错误消息和日志,并查明是否提到了一些有问题的过滤器,也许需要重新安装
  • 比较程序运行的计算机与有问题的计算机上安装的音频相关软件
  • 根据上述内容,尝试推断缺少什么编解码器
  • 找到它,下载,安装

另外,您可以阅读以下代码SetupGraph()功能。我敢打赌,有一个明确的参考正在使用的格式,这可能会指出缺少什么编解码器。

编解码器有时也会损坏(实际上不是其本身,而是它们的配置和注册条目可能会损坏)。如果您确定计算机上有正确的编解码器,重新安装或“修复”(如果有这样的选项)它们会有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

找不到中间过滤器的组合 的相关文章

  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐