【问题标题】:How to get the image stream when I use GLsurfaceview renderer使用 GLsurfaceview 渲染器时如何获取图像流
【发布时间】:2016-12-29 03:04:51
【问题描述】:

当我用手指在 glsurfaceview 中渲染时,我想获取图像流 目的是记录渲染表单 glsurfaceview ,我是用相机使用surfacetexture对.mp4进行编码的,但是我在绘制时无法从glsurfaceview获取渲染。

【问题讨论】:

  • 相关:stackoverflow.com/a/22461402/295004,请注意答案底部的链接。
  • 嗨@Morrison Chang 感谢相关链接,同样的问题,我想记录屏幕,同样的原因我想编码 GLsurfaceview 内容避免上视,我想在 4.4 中做,即使我知道 5.0 中有有用的 MediaProjection API,再次感谢您的建议,帮助我的问题更具体

标签: android glsurfaceview


【解决方案1】:
  • 通过EGL14.eglGetCurrentContext() 获取您的GLSurfaceView 的EGLContext

  • 使用上面的EGLContext作为单独线程中的共享上下文来创建另一个EGLContext进行录制

  • 录制的EGLContext 将渲染为来自MediaCodec.createInputSurface 的Surface,它也使用来自GLSurfaceView 的相同纹理

  • 使用MediaMuxer 将MediaCodec 输出复用到mp4

  • 然后你就可以把你的GLSurfaceView录制成mp4了

参见sample code中的示例

【讨论】:

  • 嗨@Alijandro 谢谢你的建议,我会试试这个方法,看起来可以,我最近在Android中搜索Opengl ES2.0理论,我认为EGL接口可以帮助我解决问题,再次感谢。
  • 我使用另一种方式来记录 glsurface,方法是绑定 Multiple 纹理而不是您的方式,但再次感谢
  • @CapybaraChan 恭喜!你能分享一些你的解决方案的信息吗?如果你不介意,其他人到这里会发现更多有价值的信息。我们鼓励人们在这里分享他们的知识,如果您不介意,可以将您的解决方案发布为答案并将其标记为最佳答案。
  • @CapybaraChan 如果您不介意分享解决方案,我也在研究这个问题。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-08
  • 1970-01-01
  • 1970-01-01
  • 2015-09-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多