如何使用openGL(视图预览层)和UIkit元素在iPhone上录制屏幕到视频?

如何使用openGL(视图预览层)和UIkit元素在iPhone上录制屏幕到视频?,iphone,opengl-es,gpu,movie,gpuimage,Iphone,Opengl Es,Gpu,Movie,Gpuimage,我到处搜索,尝试混合和匹配不同的代码位,但我没有找到任何有效的方法,也没有找到任何有相同问题的人 基本上,我希望能够创建iPhone应用程序的视频演示,其中包括标准UIKit元素和来自摄像头(视频预览层)的图像。我不想使用airPlay或iOS模拟器在桌面上投影然后捕获,因为我希望能够在室外公开制作视频。我已经成功地用它捕获了屏幕上的视频,但是视频预览层是空白的。我读到它是因为它使用openGL,我捕获的是CPU,而不是GPU。我已经成功地使用Brad Larson的GPUImage来捕获视频预

我到处搜索,尝试混合和匹配不同的代码位,但我没有找到任何有效的方法,也没有找到任何有相同问题的人


基本上,我希望能够创建iPhone应用程序的视频演示,其中包括标准UIKit元素和来自摄像头(视频预览层)的图像。我不想使用airPlay或iOS模拟器在桌面上投影然后捕获,因为我希望能够在室外公开制作视频。我已经成功地用它捕获了屏幕上的视频,但是视频预览层是空白的。我读到它是因为它使用openGL,我捕获的是CPU,而不是GPU。我已经成功地使用Brad Larson的GPUImage来捕获视频预览层,但它没有捕获UIView的其余部分。我见过将两者结合并转换为图像的代码,但我不确定这对于实时视频捕获来说是否太慢。有人能给我指出正确的方向吗?

< P>这可能不是最干净的解决方案,但它仍然有效:你考虑过越狱吗?我希望苹果真的为此起诉我,但如果你真的想录制你的屏幕,那么只需安装一个屏幕记录器。可以找到足够的选项:

如果您不喜欢,请恢复您的手机以进行以前的备份


(作为记录:我反对越狱并从生产力的角度发布这篇文章)

我对iPhone一无所知,但如果你能控制OpenGL代码,你可以用glReadPixels(慢速!)获取内容,或者渲染到纹理。然后与CPU端截图混合。提示为Thanx。我已签出对纹理的渲染。但我不确定初始化代码和捕获代码应该放在哪里。我当前使用的UIView捕获函数都封装在单独的camera处理类类中。我应该在照相机处理类的CaptureOutput回调中移动该功能吗?我希望保持它的独立性,这样我就可以将它插入任何应用程序。事实上,网络上任何地方都没有可以将CPU+GPU结合在一起的代码,这让我觉得这可能是不可能的,或者说太慢了。我说,我对这些iPhone类一无所知。RenderToTexture:在开始设置纹理时需要回调,在渲染前需要回调以设置目标帧缓冲区,在渲染后需要回调以获取纹理。glReadPixels:渲染后只需要回调。