将AVFrame转换为CVPixelBufferRef以在函数CVOpenGLESTextureCacheCreateTextureFromImage中使用

时间:2013-05-30 21:20:47

标签: ios opengl-es ffmpeg opengl-es-2.0 render

我在iOS平台上有一个自定义视频播放器,我阅读了许多关于使用CVOpenGLESTextureCacheCreateTextureFromImage API进行性能调整的线程。但是,这个API总是和Apple解码器一起使用,所以当Apple解码器提供CVPixelBufferRef时,我找不到任何方法将ffmpeg的AVFrame转换为CVPixelBufferRef ......

有人可以指导我这个话题吗?

是否可以为ffmpeg的AVFrame使用CVOpenGLESTextureCacheCreateTextureFromImage API?如果是,怎么样?

1 个答案:

答案 0 :(得分:0)

方法名称的fromImage部分为您提供了一个线索,您必须先将avframe转换为cgimageref。它是一个圆形的方式,但这就是你必须做的。直接写入缓冲区对象可能会更好。但你必须做这样的事情来获得一个像素缓冲区 https://github.com/mooncatventures-group/FFPlayer-beta1/blob/master/FFAVFrames-test/ViewController.m