Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Filtro de video de Android

Estoy intentando crear una aplicación donde pueda agregar filtros a un video grabado. Básicamente, quiero replicar la funcionalidad que existe en el video de Instagram, o Viddy.

He hecho la investigación y no puedo juntar todo. He mirado en el uso de GLSurfaceView para reproducir el video grabado y sé que podría utilizar NDK para hacer la manipulación de píxeles y enviar de nuevo a la SurfaceView o guardar de alguna manera. El problema es, no sé cómo enviar los datos de píxeles porque no parece haber ninguna función para acceder a él. Esta idea vino de la función de cámara "onPreviewFrame". La función devuelve una matriz de bytes que me permite manipular los píxeles y mostrarlos.

Otra idea es usar GLSurfaceView y usar OpenGL para representar el filtro. GLSurfaceView tiene un procesador que puede establecer, pero no estoy muy familiarizado con OpenGL. Pero una vez más, esto se remonta a la obtención de los píxeles de cada marco de vídeo. También leí acerca de rasgar cada marco como una textura y luego manipular la textura en OpenGL, pero las respuestas que he encontrado no son muy detalladas.

Por último, he buscado JavaCV. Tratando de usar FFmpegFrameGrabber, pero no he tenido mucho tampoco. Quería agarrar un marco, pero cuando intento escribir ByteBuffer del marco a un ImageView, obtengo un error de "buffer no lo suficientemente grande para píxeles".

¿Cualquier guía estaría genial?

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.