获得特定的视频帧

时间:2011-04-21 05:48:35

标签: c# .net directshow directshow.net

我一直在这里浏览(堆栈溢出),试图找到一种稳定的方法来获取视频文件中的图像(像素数组)。在C#.NET中我找到了:

http://www.codeproject.com/KB/graphics/ExtractVideoFrames.aspx

这几乎正是我要找的,但我一直收到这个错误:

Could not load file or assembly 'Interop.DexterLib,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
or one of its dependencies. An attempt was made to load
a program with an incorrect format.

所有内容编译都很好,但是当运行.net运行时不喜欢'Interop.DexterLib'时,我已经仔细检查它是否在exe文件夹中,并且项目正确链接并编译好。

在一些google之后,错误似乎围绕x86 .dll并在x64位操作系统中运行它们。为了否定这一点,他们建议为x86构建,VS2010没有这个选项,因为他们用“Any CPU”替换它?这是问题吗?有没有什么好方法可以解决它?

有没有更好的方法来获取C#中的视频帧,我看过DirectShow.Net,对于我的生活,我无法理解直接演示中的内容。我还没有找到一个简单的解决方案(如果可行)。

我的最终目标是能够从字节数组中的2个视频文件中获取帧...修改它们,然后将它们保存回新视频。首先要做的是将视频录入内存。

3 个答案:

答案 0 :(得分:0)

您可以使用corflags使您的64位程序集与x86平台兼容

Corflags description

答案 1 :(得分:0)

Visual Studio出了问题。我的2010年有这些选择: enter image description here

答案 2 :(得分:0)

该文章中的MediaDet是DirectShow的一部分。只需使用DirectShow.NET,您的链接问题就会消失。如果您需要将修改后的帧保存到另一个视频,则必须构建一个DirectShow图,只使用MediaDet对您没有帮助。