0

我正在使用图像采集器类来捕获和处理视频中的每一帧。该类可以在这里找到:http: //www.codeproject.com/KB/graphics/FrameGrabber.aspx

但是,我在运行它时遇到问题。加载文件时,它会尝试将视频格式指针编组到 VideoInfoHeader(我使用的是 DirectShow.Net)。执行此操作的代码如下:

videoInfo = (VideoInfoHeader)Marshal.PtrToStructure(mediaType.formatPtr, typeof(VideoInfoHeader));

当我运行它时,它会立即从调试环境中崩溃,可能是堆栈溢出。单步执行时,我可以看到 formatPtr 始终等于 93,尽管我不知道该怎么做,因为我对编组相当陌生。

我检查了视频在 Windows Media Player 中运行良好。

这对于查找视频的尺寸以及标题的大小至关重要,在读取帧之前需要跳过它。

我正在运行 Windows 7 x64。

对此的任何帮助将不胜感激,我必须尝试十五种不同的帧抓取技术。

4

1 回答 1

2

也许您的 mediaType 结构损坏了,您在调用之前检查它包含的内容吗?哪里填的?

我还建议在 WinDbg 下运行您的应用程序。你可以找到那里发生的确切情况。

如果您不熟悉它,请尝试阅读Tess Ferrandez 的博客。周围也有很多关于用WinDbg调试的资料,随便搜一下。

于 2010-04-29T02:37:23.710 回答