我需要在iOS应用程序中使用OpenGL解码mp4文件并将其绘制出来。 我需要从mp4文件中提取和解码h264帧,我听说可以使用CoreMedia实现此目的。 有人知道如何做吗?有使用CoreMedia的示例吗?
你需要的不是Core Media,而是AVFoundation。具体而言,您可以使用AVAssetReader从电影中加载并迭代帧。然后,您可以通过使用glTexImage2D()或(在iOS 5.0上)使用速度更快的纹理缓存将这些帧作为OpenGL ES纹理上传。如果您不想自己实现此功能,我在我的GPUImage框架中使用基于AVFoundation的电影加载和处理通过OpenGL ES工作。 GPUImageMovie类封装了电影读取和上传到纹理的过程。如果您想提取该纹理以在自己的场景中使用,则可以将GPUImageTextureOutput链接到它。这些类的示例可以在框架分发中的SimpleVideoFileFilter和CubeExample示例应用程序中找到。您可以直接使用此功能,也可以查看我编写的执行GPUImageMovie类中相同操作的代码。