在Android上使用OpenGL播放视频时,超出最大纹理大小

时间:2014-07-24 07:00:35

标签: android video opengl-es textures

我正在使用GL_OES_EGL_image_external扩展来播放OpenGL视频。问题是在某些设备上,视频尺寸超过了OpenGL的最大纹理尺寸。有什么方法可以动态处理这个问题,例如动态缩小帧或我是否必须预先缩小视频大小?

1 个答案:

答案 0 :(得分:0)

如果你真的在OpenGL ES中达到最大纹理尺寸(FWIW,我相信这对于最近的设备大约是2048x2048)那么你可以做一些事情:

您可以在setVideoScalingMode(VIDEO_SCALING_MODE_SCALE_TO_FIT)上设置MediaPlayer。我相信这会将视频解析扩展到与其相关联的SurfaceTexture / Surface的大小。

你可以选择播放四个视频,然后将它们分开TEXTURE_EXTERNAL_OES,然后在GL中单独渲染这四个纹理。然而,这可能会破坏你的表现。

如果我看到错误消息和代码的某些上下文,我可能会提供更多信息。