![](/img/trans.png)
[英]How do I get the iOS App launch event by clicked icon from home screen?
[英]How do I render frames from FFmpeg to the screen in an iOS app?
我是iOS的新手,但是我已经在Android上实现了基于FFmpeg的播放例程。 我打算在iOS上再次进行。
看来我可以使用OpenGL ES 1.1 / 2.0将FFmpeg视频的帧绘制到屏幕上。 但是,OpenGL ES似乎很困难。 另外,由于视频纹理的宽度,我遇到了一些限制。 我必须将视频帧分割成许多图像,然后将它们绘制到屏幕上以组成帧。
有没有更简单的方法可以在iOS上使用OpenGL ES渲染此视频? 在iOS中还有其他方法可以将2-D视频帧快速绘制到屏幕上吗?
啊。 因此,您想要呈现非POT源。 无需拆分为多个纹理即可完成此操作-通过创建最接近POT大小的纹理,渲染为该纹理,然后仅涂抹实际包含图像的部分,即可完成此操作。 在这里查看示例(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。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.