2011-04-21 79 views
1

我已浏览在这里(堆栈溢出)试图找到一个稳定的方式来获得图像(像素阵列)进行视频文件的总称。在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文件夹中,并且项目已经正确链接并编译好了。

经过一番googleing的错误似乎是围绕86 .DLL文件,并在64位操作系统上运行它们。为了否定这一点,他们推荐构建x86,VS2010没有这个选项,因为他们用“任何CPU”代替它。这是问题吗?有没有什么好的方法来解决它?

有没有更好的方式来获得在C#中的视频帧,我已经看过DirectShow.Net和我的生活,我不能明白什么是内直接显示回事。我还没有找到像这样简单的解决方案(如果可行的话)。

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

回答

0

某处有问题,你的Visual Studio。我的2010有这些选项: enter image description here

+0

这可能是问题,可能会不会是因为这个项目是从VS2008“升级”?我在任何地方的“Build”页面上都没有“Platform Target:”。 ?在平台我得到的唯一选项是“活动(所有CPU)(我试图做的事:http://preview.tinyurl.com/3rn3l5o),但都没有效果 – blackboots 2011-04-21 06:05:42

+0

在2010年开始的工作室一个新的DLL项目,然后使用。 – Vnuk 2011-04-21 06:15:26

+0

完成上述步骤后,我可以从Visual Studio顶部的下拉菜单中打开“配置管理器...”,创建了一个新的“主动解决方案配置”,然后让我更改为x86或x64。然后,编译器给我关于/不安全的未使用。在检查“允许不安全代码”后,编译并现在(可能是由于我选择了错误的视频文件),我不断收到错误:没有找到视频流。谢谢你的信息。 – blackboots 2011-04-21 06:16:43

0

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