我在 Snow Leopard 上编写了一个 64 位 Cocoa 应用程序,用于提取单个帧
来自使用 QuickTime API 的电影。它使用[QTMovie currentFrameImage],
不幸的是,这非常慢,正如这里指出的:
https://stackoverflow.com/questions/5843702/export-every-frame-from-a-movie-using-quicktime-api https://stackoverflow.com/questions/5843702/export-every-frame-from-a-movie-using-quicktime-api
Apple 的开发者网站描述了以下替代方法:
QTPixelBufferContext使用 NewMovieFromProperties 创建:
http://developer.apple.com/library/mac/#qa/qa1443/_index.html http://developer.apple.com/library/mac/#qa/qa1443/_index.html
使用这种方法,我编写了一个 32 位应用程序,能够提取
帧速率要快得多,但 API 似乎
(例如 QTVisualContextRef)不适用于 64 位应用程序,正如所指出的
在这里:
http://www.mailinglistarchive.com/html/[电子邮件受保护]/2009-01/msg00014.html http://www.mailinglistarchive.com/html/quicktime-api@lists.apple.com/2009-01/msg00014.html
和这里:
错误:“QTVisualContextRef”之前预期有说明符限定符列表 https://stackoverflow.com/questions/4708257/error-expected-specifier-qualifier-list-before-qtvisualcontextref
我的应用程序需要是 64 位的,所以我正在寻找另一种提取方法
快速帧。目前有没有人使用框架完成此任务
雪豹上可用吗?
Edit:
我没有找到在雪豹上快速提取帧的方法,但我确实找到了
一种使用 Lion 上的 AV Foundation 来实现此目的的方法。 AV 基金会已可用
适用于 iOS,但它对于从 Lion 开始的 Mac OS 来说是新的。一个很好的描述
如何使用 AV Foundation 快速提取帧可以在7twenty7com http://www.7twenty7.com/blog/2010/11/video-processing-with-av-foundation.