Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iOS上使用CoreMedia.framework解码视频_Ios_Video_H.264_Mp4_Core Media - Fatal编程技术网

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

在iOS上使用CoreMedia.framework解码视频,ios,video,h.264,mp4,core-media,Ios,Video,H.264,Mp4,Core Media,我需要解码mp4文件,并在ios应用程序中使用OpenGL绘制它。我需要从mp4文件中提取和解码h264帧,我听说了使用CoreMedia可以做什么。有人知道怎么做吗?有没有CoreMedia使用的例子?你要找的不是核心媒体,而是AVFoundation。特别是,您可以使用Avassetrader从电影中加载并迭代帧。然后,您可以使用glTexImage2D()或(在iOS 5.0上)使用更快的纹理缓存将这些帧上载为OpenGL ES纹理 如果你不想自己实现这个,我在我的框架内通过OpenGL

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

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

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


您可以直接使用它,也可以查看我编写的代码,以便在GPUImageMovie类中执行相同的操作。

我尝试使用Avassetrader,当我尝试播放一个长文件时,它工作正常,但我需要播放从服务器下载的小视频文件序列。这是我自己实现的HTTP实时流媒体。我试图播放一个文件创建新的读卡器并播放下一个文件,但AVAsset/Avassetrader初始化需要一些时间,并且在片段之间有延迟。我想在first中添加新的mp4文件,但我找不到正确的方法。你知道怎么做吗?或者如何优化AVAsset/Avassetrader启动?我还使用您的库GPUImage实现一些视频效果。谢谢你干得好,伙计!抱歉,没有像您描述的那样使用多个电影输入。我观察到,AVFoundation的大部分内容似乎都是播放或录制单个媒体文件,而不是多个媒体文件。它是AVAsset的一个子类,支持多个序列文件。