Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.NET应用程序中可预测帧捕获的选项_.net_Directshow_Video Capture - Fatal编程技术网

.NET应用程序中可预测帧捕获的选项

.NET应用程序中可预测帧捕获的选项,.net,directshow,video-capture,.net,Directshow,Video Capture,我在C#工作,需要捕获视频文件的各个帧。我希望尽可能快地(比实时更快)找到特定的帧数,并将每N帧捕获为图形文件格式,如BMP或JPEG。非常希望捕获的帧是可预测和可重复的,即不丢弃帧 我对DirectShow有一些经验,但不知道在现代Windows.NET环境中,该技术是否是解决此问题的最佳方法。理想情况下,我希望找到一个基于.NET或COM的库来尽可能地进行抽象。我不需要在屏幕上实际显示视频文件,事实上我更希望没有用于视频播放的Windows用户界面 有人对技术或特定产品有什么建议吗?它们需要

我在C#工作,需要捕获视频文件的各个帧。我希望尽可能快地(比实时更快)找到特定的帧数,并将每N帧捕获为图形文件格式,如BMP或JPEG。非常希望捕获的帧是可预测和可重复的,即不丢弃帧

我对DirectShow有一些经验,但不知道在现代Windows.NET环境中,该技术是否是解决此问题的最佳方法。理想情况下,我希望找到一个基于.NET或COM的库来尽可能地进行抽象。我不需要在屏幕上实际显示视频文件,事实上我更希望没有用于视频播放的Windows用户界面

有人对技术或特定产品有什么建议吗?它们需要与基于MPEG-2和MPEG-4的视频文件兼容,包括DivX。QuickTime支持将是一个不错的奖励。

Aloha

(免费)程序Image Grabber II.net完全按照您所描述的那样运行。我似乎记得资料来源也发表过,但现在找不到了。它需要.NET框架


-eNode

我不明白为什么您需要“比实时更快”地执行此操作,因为您被认为需要进行某种处理而不显示任何视频

我使用.Net和.Net 2.0编写了类似的东西。使用directshow需要一些以前的经验,否则您将很难尝试

您还可以从windows访问IMediaDet界面以进行帧捕获。这种方法比较简单,但有一定的局限性,例如MPEG2支持。我注意到它也不支持“some”flv。请点击查看样品

Quicktime支持将意味着安装

我可以发布我使用DirectShow.Net编写的代码。让我知道,如果你需要它(我需要美化前张贴:P)


编辑:注意:对于您的“可预测”捕获,根本没有问题,因为视频不是实时播放的,而是暂停的,所以您可以搜索到任何点,然后提取帧。

如果其他人有这种问题,另一个选项是基于Delphi的ActiveX控件,名为。虽然它不是免费的,但它非常便宜,并且可以很好地作为DirectShow的薄包装


TVideoGrabber很难解决我的问题,因为我的应用程序没有GUI——它是作为Windows服务运行的。我确实让它工作,但实例化多个控件(一开始可能不是线程安全的)并作为Windows服务在.NET的假事件循环中运行。。。嗯,有几件事可能会出错。尽管我已经确保控件只从创建线程进行操作,但我似乎仍然存在并发性问题。但这是另一个问题……:)

谢谢你的建议,我也找不到源代码。看来DirectShow是赢家。谢谢你的链接。我需要比实时更快的速度,因为我希望尽可能快地对视频中的图像进行附加处理,并且帧捕获是用户等待时间的一部分。:)在这种情况下,您总是可以升级到更快的硬件。通常,实时意味着它对时间非常敏感。至于您的情况,这只是您的用户等待多长时间的问题。你可以用进度条来娱乐他们。你需要DirectShow的代码吗?我在DirectShow.NET上找到了一些东西,谢谢!这个项目很有挑战性,因为我必须在Windows服务环境中使用DirectShow,没有GUI,我必须伪造自己的消息泵,等等。