我需要解码 mp4 文件并在 ios 应用程序中使用 OpenGL 绘制它。我需要从 mp4 文件中提取和解码 h264 帧,我听说使用 CoreMedia 可以做什么。有人知道怎么做吗?CoreMedia 使用的任何示例?
问问题
4593 次
1 回答
9
您要找的不是 Core Media,而是 AVFoundation。特别是,您将使用 AVAssetReader 从电影中加载并遍历帧。然后,您可以使用glTexImage2D()
或(在 iOS 5.0 上)使用更快的纹理缓存将这些帧作为 OpenGL ES 纹理上传。
如果您不想推出自己的实现,我可以在我的GPUImage框架中通过 OpenGL ES 进行基于 AVFoundation 的电影加载和处理。GPUImageMovie 类封装了电影读取和上传到纹理的过程。如果您想提取该纹理以在您自己的场景中使用,您可以将 GPUImageTextureOutput 链接到它。这两个类的示例可以在框架分发中的 SimpleVideoFileFilter 和 CubeExample 示例应用程序中找到。
您可以直接使用它,或者只查看我编写的代码,以在 GPUImageMovie 类中执行这些相同的操作。
于 2012-04-04T17:58:33.377 回答