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.

  • Android pinch / zoom y glfrustum
  • Las aplicaciones de Android OpenGL dejan de funcionar después de cargarlas en el emulador
  • ¿Cómo usar MediaMuxer / MediaCodec InputSurface con GLSurfaceView?
  • Multiplicación apropiada de matrices para rotación / traducción
  • Libgdx SpriteBatch render a la textura
  • Uso de OpenGL desde el hilo principal de Android
  • Mejor opción para representar video para iOS y Android
  • Luz de punto libgdx no funciona en la malla generada
  • Error: glBufferData usando Cordova
  • Dibuja Pixel con OpenGLEs para Android
  • Esfera 3D OpenGL
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.