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
.
- Cómo y comprensión del evento de arrastre y zoom con GLSurfaceView
- Buscando el framework OpenGL ES para el desarrollo multiplataforma en Win / Linux / MacOSX / Android / IOS
- AndEngine: colisión de dos sprites
- ¿Cómo texturo el mapa en una superficie curvada?
- Recibe la entrada completa de unicode android en C / C ++
Estoy utilizando el ejemplo siguiente como el código base
Quería saber ….
- ¿Es este el camino correcto? . ¿Hay alguna alternativa mejor?
- 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
- ¿Qué es JNI Graphics o cómo usarlo?
- Combinación de SurfaceView con otras vistas, como TextView y botones
- OpenGL ES 2.0 artefactos / dithering en FBO en Mali-400
- ¿El emulador de Android admite OpenGL ES 3.0?
- Programación Android Camera.PreviewCallback (con OpenGL y OpenCV)
- Android: ¿Cómo crear VR-controles parecidos a YouTube?
- GLSurfaceView onDrawFrame comportamiento de borrado
- ¿Por qué está bloqueando glClear en OpenGLES?
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.
- Uso de Gson para analizar subclases con diferentes campos
- Widget selector de Android para cadenas arbitrarias