2011-08-12 6210 views
4

我需要在iOS上播放自定义格式的视频,并自行完成所有渲染。如何在没有AVPlayer或电影播放器​​的iOS上播放视频

我目前的选择是OpenGL ES,但它从分析结果(主要是在glTexImage2D)中花费太多的CPU。

我的需求有更快的替代方案吗?

谢谢!

+1

您是否在使用'glTexImage2D()'来创建纹理,或者仅针对每个帧? – genpfault

+2

我怀疑通过OpenGL ES在屏幕上显示视频是否是您的限制因素。在视频处理应用程序中,我可以从iPhone 4相机捕捉并以简单的60 FPS将其反馈回屏幕:http://www.sunsetlakesoftware.com/2010/10/22/gpu-accelerated-video -processing-mac-and-ios。你的瓶颈必须在其他地方,最有可能在你的解码程序中。 –

+0

@genpfault我对每一帧都使用glTexImage2D,因为这是我知道的将图像绘制到屏幕上的方式。我是OpengGL的新手 –

回答

0

AVPlayer将会很快,因为代码已经过优化,可以使用GPU加速和llvm优化进行解压缩。如果你想使用OpenGL ES,你最终可能会使用EAGLContext,创建纹理着色器和做其他低级优化。我们的应用程序可以在非常低的CPU负载下以高帧率在视频之上复合多个层。

+0

但AVPlayer无法处理我的视频压缩为的格式。它认为这个课程仅用于标准文件或流媒体播放 –

0

我想你可以使用egl的openmax应用程序层集成,它将通过egl将视频流式传输到opengl es 2.0,并且可以存储或显示到opengl es屏幕。可以帮助你,如果我可以有片段:)