iOS - AVAssetReader copyNextSampleBuffer可能会很慢

时间:2016-09-06 13:52:31

标签: ios objective-c video opengl-es decoding

我正在尝试实时解码视频(30 fps)并使用OpenGL显示/修改它。在iPod touch上,如果我对使用相机拍摄的视频进行解码,则对帧进行解码可能需要1秒以上,而30 fps应该最多为0.03秒。因此结果不是很好..

使用AVAssetReader可以实现吗?例如,Instagram在视频上实时应用滤镜(我认为是GLSL着色器),甚至可以在视频中导航。 Instagram在ipod touch上运行良好。

要解码的代码可以在这里找到答案: Best way to access all movie frames in iOS

更具体地说:Hardware accelerated h.264 decoding to texture, overlay or similar in iOS

提前谢谢

2 个答案:

答案 0 :(得分:0)

由于您提供的信息非常有限,我必须假设您的视频序列以YUV格式压缩,并且您将AVAssetReader的设置设置为其他格式,如kCVPixelFormatType_32BGRA,这会强制iOS使用硬件加速转换为你的色彩空间,然后你慢慢感受到它。我建议不要设置任何设置,只使用其原始像素格式。

答案 1 :(得分:0)

实际上我的应用程序只是在CPU上做了太多工作,我有另一个进程分析图像。当我删除它时,解码速度非常快。