studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android video opengl-es filter

para - manual de programacion android pdf



Filtro de video Android (2)

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

He investigado y no puedo reconstruirlo todo. He investigado el uso de GLSurfaceView para reproducir el video grabado y sé que podría usar NDK para hacer la manipulación de píxeles y enviarla de regreso a SurfaceView o guardarla de alguna manera. El problema es que no sé cómo enviar los datos de píxeles porque parece que no hay función para acceder a ellos. 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 renderizar el filtro. GLSurfaceView tiene un renderizador que puede configurar, pero no estoy muy familiarizado con OpenGL. Pero, nuevamente, esto se vuelve a obtener los píxeles de cada fotograma de video. También leí acerca de desgarrar cada cuadro como una textura y luego manipular la textura en OpenGL, pero las respuestas que he encontrado no son muy detalladas.

Por último, he investigado JavaCV. Tratando de usar FFmpegFrameGrabber, pero tampoco he tenido demasiado. Quería simplemente tomar un fotograma, pero cuando intento escribir el ByteBuffer del fotograma en un ImageView, aparece el error "buffer no lo suficientemente grande para píxeles".

¿Cualquier guía estaría genial?



Es bueno usar la biblioteca de filtros de exoplayer y esta hará su trabajo, pero para fusionar las capas filtradas con el video, debe hacer un trabajo adicional.

El enlace para el filtro de exoplayer está a su disposición: ExoplayerFilter

Tienes que ver el exoplayer para esto, pero sigue sus instrucciones y podrás hacer la tarea. Sígueme si surge algo.