Grabación de una superficie con MediaCodec
Por lo tanto, en mi aplicación, puedo mostrar efectos (como el filtro borroso, gaussiano) al vídeo que viene de la cámara usando la biblioteca GPUImage .
Básicamente, I (biblioteca) tomará la entrada de la cámara, obtendrá los datos de bytes sin procesar, los convertirá en formato RGBA a partir del formato YUV, luego aplicará efectos a esta imagen y se mostrará en la Surface
de GLSurfaceView
con OpenGL. Finalmente, para el usuario, se ve como un video con efectos aplicados.
- ¿Es mejor usar GL_FIXED o GL_FLOAT en Android
- Opengl fondo transparente y Vista previa de cámara no les gusta texturing
- Android OpenGL Renderizar a un frameBuffer en la resolución original (pequeña) y luego escalarla (viewPort) al tamaño de la pantalla
- Alternativa para glBlitFrameBuffer () en OpenGL ES 2.0
- ¿Puedo usar gloss en Android?
Ahora quiero grabar los marcos de Surface
como un video usando la API de MediaCodec .
Pero esta discusión dice que no podemos pasar una Surface
predefinida a MediaCodec
.
He visto algunas muestras en bigflake donde está creando la Surface
usando MediaCodec.createInputSurface()
pero para mí, la Surface
viene del GLSurfaceView
.
Entonces, ¿cómo puedo grabar un marco de una Surface
como un video?
Voy a grabar el audio en paralelo, combinar ese video y audio usando FFMPEG y presentar al usuario como un video con efectos aplicados.
- SoftKeyboard para Android
- Renderización de Android OpenGLES con C ++ y Java
- Cuarzo 2D o OpenGL ES? Pros y contras a largo plazo, posibilidad de migración a otras plataformas
- ¿Qué versiones de GLSL puedo usar en OpenGL ES 2.0?
- ¿Hay algún dispositivo Android con un tamaño de pantalla mayor que GL_MAX_TEXTURE_SIZE?
- Transformaciones de matrices Android de OpenGL ES
- Renderización de Android y Planet
- Uso de opengl para renderizar cada elemento en un listview en android
Usted puede ver un ejemplo completo de esto en Grafika .
En particular, la actividad "Show + capture camera" registra la salida de la cámara a .mp4. También demuestra la aplicación de algunas técnicas simples de procesamiento de imágenes en el sombreado GL. Utiliza un GLSurfaceView
y una danza convoluted para mantener la grabación va a través de cambios de orientación.
También posiblemente de interés, la "Record GL app con FBO" registra la actividad de OpenGL ES haciendo un par de maneras diferentes. Utiliza SurfaceView
simple y es mucho más sencillo.
- Medición de la frecuencia cardíaca usando Xiaomi MiBand y BLE
- Android: publicar una aplicación con diferentes capturas de pantalla correspondientes a diferentes idiomas?