Android Video Recording de la superficie de OpenGL (GLSURFACEVIEW)

Estoy trabajando en un proyecto donde necesitamos grabar la superficie renderizada de OpenGL. (Por ejemplo si usamos GLsurfaceView, necesitamos grabar la superficie junto con el audio del MIC)

Actualmente estoy usando MediaRecorder API estableciendo la fuente de video como VIDEO_SOURCE_GRALLOC_BUFFER .

Estoy utilizando el ejemplo siguiente como el código base

Quería saber ….

  1. ¿Es este el camino correcto? . ¿Hay alguna alternativa mejor?
  2. La prueba de muestra dada en el enlace es la grabación de audio y vídeo de la EGLSURFACE, pero no se muestra correctamente.

¿Cuál podría ser la razón?
Cualquier ayuda / punteros es realmente apreciada.

Gracias,
Satish

One Solution collect form web for “Android Video Recording de la superficie de OpenGL (GLSURFACEVIEW)”

El código que usted hace referencia no es un ejemplo, sino un código de prueba interno que ejerce una interfaz no pública. SurfaceMediaSource podría cambiar o desaparecer en una versión futura y romper su código.

Actualización: Android 4.3 (API 18) permite la entrada de superficie a MediaCodec . El ejemplo EncodeAndMuxTest muestra la grabación de marcos de OpenGL ES en un archivo .mp4.

La clase MediaRecorder no recibe la entrada Surface, así que en su caso necesitaría grabar el audio por separado y luego combinarlo con la nueva clase MediaMuxer .

Actualización # 2: Android 5.0 (API 21) permite la entrada de superficie a MediaRecorder, que a menudo es mucho más conveniente que MediaCodec. Si necesita utilizar MediaCodec, hay un ejemplo que muestra tres maneras diferentes de grabar la salida de OpenGL ES con ella en la actividad GL de Grafika .

La clase MediaProjection también puede ser útil para la grabación de pantalla.

  • Visualización del flujo de la cámara en un GLSurfaceView a través de SurfaceTexture
  • AndEngine RenderTexture Exception: GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
  • ¿Soporta el emulador de Android OpenGL ES 2.0?
  • Preservar el contenido del búfer tras eglSwapBuffers
  • Buscando un método multiplataforma para gráficos básicos 2D / 3D para iOS y Android
  • Cómo dibujar una imagen de fondo grande con libgdx - las mejores prácticas?
  • ¿Puedo hacer una aplicación C ++ bastante nativa con Android?
  • 'Texture2D': No se encontró ninguna función sobrecargada equivalente OpenGL ES2 Android (JAVA)
  • GLSurfaceView dentro del fragmento que no se representa cuando se reinicia
  • Esfera 3D OpenGL
  • Desarrollo de juegos Android 3D
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.