Extraer / modificar marcos de video en Android

Tengo un archivo de video. Quiero obtener cada fotograma del vídeo y hacer algunas modificaciones en el marco, como dibujar otro mapa de bits en que, poner un poco de texto, etc

¿Hay alguna API / marco disponible para obtener marcos de vídeo en Android? He hecho algo similar en iOS usando su AVFramework.

Si es posible con ffmpeg, utilizaré algunos de los NDK de código abierto disponibles.

Opción A:

Puede crear un objeto SurfaceTexture y adjuntarlo al MediaPlayer de la siguiente manera

myPlayer = new MediaPlayer ... myRedirectionSurface = new Surface(mySurfaceTexture); myPlayer->setSurface(myRedirectionSurface); 

De esta manera, el flujo decodificado del reproductor es "redirigido" a SurfaceTexture y no al SurfaceView. El OnFrameAvailableListener se llama cuando tiene disponible un marco decodificado. Para acceder / modificar la imagen, puede utilizar los métodos de bloqueo / desbloqueo de la superficie en myRedirectionSurface.

NOTA IMPORTANTE: Necesita tener soporte API 14 para que esto funcione.

Opción B:

Como ha indicado la probabilidad de usar ffmpeg, puede lograr lo que pretende, ya que tiene acceso completo a los marcos de salida del decodificador. Puede comenzar con el puerto ffmpeg de RockPlayer o MoboPlayer. Pero en esta opción, el renderizado de la salida de vídeo de NDK no es staright-forward. !

  • Reproduce youtube / vimeo vídeo incrustado en HTML en Android WebView
  • Utilice Video chat en segundo plano como Skype usando WebRTC en Android
  • Ocultar una vista de superficie que se superpone a otra
  • Imposible mezclar archivos de audio y archivos de video usando MediaMuxer?
  • ¿Por qué mediaPlayer.seekTo (msec) no actualiza surfaceView cuando mediaPlayer está pausado?
  • Inconsistencias con el video HTML5 en un WebView de Android
  • Escala proporcional de Android VideoView
  • Android: ¿Cómo configurar la última versión de FFMPEG en android studio?
  • Inserción de un vídeo en MediaStore
  • Renderizado de vídeo en una textura en LibGDX
  • Android no puede usar hdmi en la pestaña creativa y necesita ser notificado en todos los dispositivos (máximo) tan pronto como hdmi esté conectado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.