Capturar vídeo con proporción de aspecto 1: 1 en Android

Estoy tratando de desarrollar una aplicación para Android que grabaría un video 15sec 640×640 usando MediaRecorder, extraería todos los fotogramas usando ffmpeg, aplicaría algunos filtros artísticos usando gpuimage y luego combinaría los fotogramas de nuevo a un video usando ffmpeg.

Estoy enfrentando problemas en la grabación de un video de la resolución 640×640. (Instagram aplicación Android hace esto)

Intenté usar setVideoSize de MediaRecorder (640, 640) y el vídeo de salida es 640×640 pero el video se parece a un video de 640×480 estirado verticalmente para hacer que 640×640. Supongo que es porque 640×640 no es una resolución devuelta por la lista de resolución de captura de video compatible del dispositivo. ¿Hay alguna manera de decir grabador de medios para mantener la relación de aspecto al hacer tal escalado para que yo consiga un video que fue escalado de 640×480 a 640×640 por el ancho de cultivo en lugar de estirar sabio en altura?

Finalmente terminé con la captura en 640×480, recortándolo a 480×480 mientras se divide a marcos usando ffmpeg, y finalmente cuando los fotogramas se combinan de nuevo con el video usando ffmpeg, es escalado a 640×640.

 String[] ffmpegCommand = {"/sdcard/frames/ffmpeg", "-i", "/sdcard/frames/test.3gp", "-vf", "crop=480:480:80:0,transpose=1", "-r", "30", "-an", "-qscale:v", "2", "-vsync", "1", "-threads", "4", "/sdcard/frames/image%03d.jpg"}; 

La transposición = 1 es necesaria cuando la aplicación está funcionando en modo vertical.

Nota: Al capturar, para mostrar sólo la parte del video que se incluirá en el vídeo recortado final, agregé dos barras negras de 80 píxeles en la parte superior de la vista previa para ocultar los 80 píxeles de cada lado del video que más tarde Se recorta de Así que el usuario obtiene lo que ve en la vista previa.

  • Grabación de vídeo en Android usando JavaCV (Actualizado 2014 02 17)
  • Android: ¿Cómo configurar la última versión de FFMPEG en android studio?
  • Se ha abandonado BufferQueue: Al reproducir vídeo con TextureView
  • Cómo manejar la orientación del vídeo desde dispositivos móviles
  • Decodificación h264 ByteStream en Android
  • Android, ¿cómo puedo eliminar los controles de VideoView?
  • Android: el video se puede reproducir desde la galería pero cuando lo reproduzco usando el video de tipo Intent.ACTION_VIEW, no se puede reproducir
  • Problema de compatibilidad de vídeo: el video grabado en Android no se reproduce en el iPhone
  • cordova android - cómo jugar videofile que se encuentra dentro del proyecto en sí
  • Phonegap: ¿Es posible reproducir varios videos simultáneamente en la misma página usando etiqueta de vídeo html5?
  • Los videos de incrustación de YouTube no funcionan en la vista web. ¿Qué tiene de malo este código?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.