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.
- ¿Es esto posible tener la opinión de la textura para la cámara en forma circular para el androide?
- ¿Cómo mux archivo de audio y archivo de vídeo?
- Recortar video como whatsapp
- Reproducción de vídeo mediante la clase MediaPlayer
- Subir vídeo en twitter
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?
- Mover el archivo de video capturado por la cámara usando cordova (phonegap) no es refrescante galería thumbnail
- Aplicación de la aplicación demo de Android app?
- Buscando un ejemplo de trabajo de addTimedTextSource para agregar subtítulos a un video desde un archivo .srt en Android 4.1
- La aplicación de vista web de Android no permite que el reproductor de video pase a pantalla completa
- SeekTo en VideoView
- Uso de JWplayer en Android para reproducir video en Phonegap
- Transmisión de lista de vídeos mediante Exoplayer
- SurfaceView, SurfaceTexture y MediaPlayer no pueden reproducir mi video en android
Desde Android 4.3 puede utilizar una Surface
como entrada para su codificador. http://developer.android.com/about/versions/android-4.3.html#Multimedia
Así que puede utilizar GLSurfaceView y aplicar los filtros utilizando shaders fragmento.
Aquí encontrará algunos buenos ejemplos. http://bigflake.com/mediacodec/
- Obtener valor href de la etiqueta de anclaje en Android WebView cuando se hace clic en el enlace
- Cómo capturar la radio del módem Iniciar sesión en Android