在iOS上使用CoreMedia.framework解码视频

时间:2012-04-04 17:16:43

标签: ios video h.264 mp4 core-media

我需要解码mp4文件并在ios应用程序中使用OpenGL绘制它。我需要从mp4文件中提取和解码h264帧,我听说使用CoreMedia可以做什么。有人知道怎么做吗? CoreMedia使用的任何例子?

1 个答案:

答案 0 :(得分:7)

这不是你正在寻找的核心媒体,它是AVFoundation。特别是,您将使用AVAssetReader从电影加载并迭代帧。然后,您可以使用glTexImage2D()或(在iOS 5.0上)使用更快的纹理缓存将这些帧作为OpenGL ES纹理上传。

如果你不想推出自己的实现,我在我的GPUImage框架内通过OpenGL ES进行基于AVFoundation的电影加载和处理。 GPUImageMovie类封装了电影阅读和上传到纹理的过程。如果要提取该纹理以在自己的场景中使用,可以将GPUImageTextureOutput链接到它。可以在框架分发中的SimpleVideoFileFilter和CubeExample示例应用程序中找到这两个类的示例。

您可以直接使用它,或者只是查看我编写的代码以在GPUImageMovie类中执行这些相同的操作。