【问题标题】:AVI Decompressor suddenly stopped decoding video with DirectShow GrapheditAVI Decompressor 突然停止使用 DirectShow Graphedit 解码视频
【发布时间】:2012-07-24 21:47:18
【问题描述】:

我对使用 AVI 解压缩器过滤器的应用程序之一有疑问。错误返回没有可以找到合适的解压缩器......但是在过去的几个月里它每天都在工作。我想过重新注册quartz.dll,但没有运气。

然后我打开 Graphedit 并发现我可以将过滤器加载到图中但不再连接。

以前有人遇到过这种情况吗?任何帮助将不胜感激。

干杯。

编辑 如果问题出在注册表中,那么简单的系统还原就可以将注册表恢复到原来的状态。现在要弄清楚这个错误已经太晚了,因为它发生在客户端,我们决定恢复窗口以让它们恢复正常。但是可以进行冗余检查,例如在应用程序中构建自动还原点,以便在问题再次发生时纠正问题。有人认为这可行吗?

【问题讨论】:

  • 没有人跟进注册表的想法...但是下面 Roman 的回答确实显示注册表中存在不一致,所以我将他的回答标记为已检查。干杯。

标签: winapi video directshow


【解决方案1】:

AVI Decompressor Filter 是一个适配器过滤器,它使 VFW/VCM 编解码器可用于 DirectShow。您可以手动将过滤器添加到图表中这一事实并不意味着它会有用。此过滤器通常不会以这种方式工作,并且在大多数情况下,它是由 fitler graph 添加为Intelligent Connect 的一部分。

在您的情况下,重要的是您已由 AVI Decompressor Filter 转换为更适合进一步处理或演示的媒体类型。那里的媒体类型可能不是您期望的那种,或者底层 VCM 编解码器已经消失,VI Decompressor 无法再提取它。

在 Windows 7 中,AVI Decompressor 内部使用msyuv.dll,即“Microsoft UYVY Video Decompressor”。您的系统中可能有问题。您可能需要检查其注册为 VFW 编解码器:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32]
VIDC.UYVY="msyuv.dll"

对于 64 位操作系统,您可能需要查看在 64 位操作系统中影响 32 位应用程序的另一个关键:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Drivers32]
VIDC.UYVY="msyuv.dll"

【讨论】:

  • 媒体类型在过去几个月没有改变。采集源是一个Decklink,在BlackMagic自己的软件下运行良好,并且在APP本身内一直运行良好。它通过 SDI 引入源。
  • 那么媒体类型是什么?如果我没记错的话,Decklink 板 - 至少有一些 - 公开 UYVYHDYC 媒体类型。第一个是通过 VFW 编解码器,通过 AVI 解压缩器呈现的。第二个——我认为它需要一个额外的编解码器,比如 Decklink 的来渲染。
  • 使用的媒体类型是 UYVY,它在渲染到 EVR 之前连接到 AVI 解压器。
  • 有关 AVI Decompressor 内部使用的 Microsoft UYVY Video Decompressor,请参见上文。
  • 肯定会检查...是否有任何意义采取另一个重复的系统,保存注册表并将其加载到当前失败的系统中?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-14
  • 2012-11-24
  • 2016-08-29
  • 1970-01-01
  • 2012-06-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多