我正在寻找一种使用 directshow 从我的网络摄像头捕获图像的方法,如果可能的话,我最好使用高清分辨率,并避免 60-100% 的 CPU 峰值。
有人可以朝正确的方向射击我如何做到这一点吗?
我尝试使用 DSPack,但这个组件使我的 CPU 飙升 90-100%
但是,如果这里有人知道如何使用 CPU 消耗更少的 DSPack,我也会很高兴:)
我正在寻找一种使用 directshow 从我的网络摄像头捕获图像的方法,如果可能的话,我最好使用高清分辨率,并避免 60-100% 的 CPU 峰值。
有人可以朝正确的方向射击我如何做到这一点吗?
我尝试使用 DSPack,但这个组件使我的 CPU 飙升 90-100%
但是,如果这里有人知道如何使用 CPU 消耗更少的 DSPack,我也会很高兴:)
我有一个使用 Mitov 的 VideoLibrary 的实时视频应用程序。它是精心设计、线程化并利用所有可用 CPU 内核的对象的集合。
当我带着一些新的需求去他的图书馆时,看到他预料到了这一点,我通常会感到惊喜。支持也很好。
它并不便宜:450 美元,但就我的需要而言,每一分钱都值得。非商业用途免费:http: //www.mitov.com/html/videolab.html。
他的 CaptureBitMap 演示将连续帧捕获到位图。您只需将几个组件放在一个表单上,然后编写六行代码!这个库有很多钩子可以比这个简单的例子更进一步。(在 Win 7、Delphi 2010 中,演示安装在此处:C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\LabPacks\Demos\Delphi2010\VideoLab\CaptureBitmap。但是,我知道他支持最早德尔福 7.)
他的库与众不同的一件事是它利用了英特尔 IPP 库: http: //software.intel.com/en-us/articles/intel-ipp。在英特尔芯片组上运行时,如果您选择发布英特尔 DLL,您将获得英特尔工程师可以从他们的芯片中挤出的最佳性能。如果 Mitov 的带有 IPP 的库不能足够快地处理您的视频,如果有任何视频库可以,我会感到惊讶。
Mitov 在 Delphi 社区中有一定的地位:他是 CodeRage 的多线程演讲者:http ://www.embarcadero.com/coderage5/sessions (周四会议。)
以上可能听起来像我是他公司的骗子。除了作为一个非常高兴的被许可人之外,我没有任何关系。我很高兴(并且松了一口气)我找到了他的工具并决定使用它们。
我在汽车内置的廉价机器上使用 dspack 很长时间了。他们有慢速 约 700mhz 的威盛处理器(单核)和 256MB 的 RAM。
该应用程序每秒从车顶上的摄像头捕获12 张图像,每次有新的 GPS 位置(每秒一次)进入时,它都会为图像添加坐标,并将其以 .jpg 格式存储在硬盘上。
当应用程序捕获图像并在表单上显示图像而不创建 .jpg 图像时,应用程序需要大约5% 的处理器时间(!)。
如果您使用 DsPack 获得 90% 的 CPU 时间,那可能是因为对图像进行了额外的处理。
我在研究中尝试了各种库来创建这个程序,dspack 在许多方面都是明显的赢家。我不会太早放弃它。