我是iOS的新手,但是我已经在Android上实现了一个基于FFmpeg的播放例程。我计划在iOS上再做一次。
似乎我可以使用OpenGL ES 1.1 / 2.0从FFmpeg视频中绘制帧到屏幕上。然而,OpenGL ES似乎很困难。此外,由于视频纹理的宽度,我遇到了一些限制。我不得不将视频帧分割成许多图像,并将它们绘制到屏幕上以组成帧。
有没有更简单的方法在iOS上使用OpenGL ES渲染这个视频?在iOS中,有没有其他方法可以将2-D视频帧快速绘制到屏幕上?
发布于 2011-12-20 21:33:16
阿。所以你想渲染一个非POT源。这可以在不拆分到多个纹理的情况下完成-通过创建最接近的罐子大小的纹理,渲染到该纹理,并仅对实际包含图像的部分进行by。看看here中的一个例子(C++)。相关部分:
//Calculating the texture size
double exp = ceil(log((double)max(Texture.HardwareHeight, Texture.HardwareWidth))/log(2.0));
texsize = min(pow(2, exp), (double)maxSize);然后
//draw the original frame 1:1 into the (larger) texture
float ymax = min(2.0f*((float)Texture.HardwareHeight/(float)texsize) - 1.0f, 1.0f); //clamping is for cards with
float xmax = min(2.0f*((float)Texture.HardwareWidth/(float)texsize) - 1.0f, 1.0f); //smaller max hardware texture than the current frame size在渲染时使用这些最大值,而不是1.0作为纹理坐标。
https://stackoverflow.com/questions/8563012
复制相似问题