我正在寻找最快的方式来解码iPhone上的本地mpeg-4视频帧。我只关心每10帧中像素的亮度值。我不需要在任何地方渲染视频。解码iPhone GPU上的视频帧
我试过ffmpeg,AVAssetReader,ImageAssetGenerator,OpenCV和MPMoviePlayer,但它们都太慢了。我能得到的最快速度是〜2x(一分钟内扫描2分钟的视频)。我想要更接近10倍的东西。
假设我上面的尝试没有使用GPU,是否有任何方法可以通过GPU上运行的某些东西来实现我的目标? OpenGL似乎主要用于渲染输出,但我已经看到它用作传入视频的过滤器。也许这是一个选择?
在此先感谢!
看起来好像我需要成为WWDC 2011的参与者才能获得该示例。我仍然担心这是实时转码。我想获得15倍的速度(1分钟内扫描15分钟的视频)。我认为瓶颈在帧解码中。 – 2012-03-02 17:35:34
@simon。d - 我在我的答案中描述了ChromaKey示例中使用的技术:http://stackoverflow.com/a/9704392/19679,您可以抓住我的GPUImage代码来查看编码影片的动作。不过,我还没有更新我的电影阅读代码以使用快速纹理上传。由于iOS设备具有用于解码H.264的专用硬件,我感到有理由肯定的说,与使用iOS 5.0快速纹理上传的AVFoundation相比,您无法获得更快的电影解析。 – 2012-03-22 23:34:25
Apple的RosyWriter示例代码还演示了此AVCaptureSession - > OpenGL链接。请参阅[这里](https://developer.apple.com/library/ios/samplecode/RosyWriter/Introduction/Intro.html)。 – bcattle 2014-05-27 18:57:16