iOS从视频中提取所有帧

时间:2015-10-14 12:04:43

标签: ios objective-c video

我必须从视频文件中提取所有帧,然后将它们保存到文件中。 我尝试使用AVAssetImageGenerator,但它非常慢 - 每帧需要1s - 3s(样本1280x720 MPEG4视频),而不保存到文件进程。

是否还有更快的速度? OpenGL,GPU,(...)?

我将非常感谢向我展示正确的方向。

1 个答案:

答案 0 :(得分:3)

AVAssetImageGenerator是一个随机访问(搜索)界面,并且搜索需要时间,因此一个优化可能是使用AVAssetReader,它将快速和顺序地为您提供框架。您也可以选择以yuv格式工作,这将为您提供更小的帧(我认为)更快的解码。

然而,那些原始帧是巨大的:是1280px * 720px * 4字节/像素(如果在RGBA中),每个大约3.6MB。如果你想保留它们,你将需要一些非常严重的压缩(想到MPEG4 @ 720p)。

那么你想要实现什么目标?

您确定要以108MB / s(30fps)或864MB / s(240fps)的速度填充用户的磁盘吗?

相关问题