2011-11-17 35 views
9

¿Hay alguna manera de crear un video a partir de una serie de imágenes en Android? Tal vez una forma de extender MediaRecorder y poder tomar imágenes como entrada.Crear video a partir de imágenes

Intento realmente crear el video y almacenarlo (como un archivo mpeg4 por ejemplo).

Gracias por cualquier sugerencia.

+0

¡Bienvenido a Stackoverflow! Si una respuesta es útil, revísela.Si la respuesta responde con éxito a su pregunta, haga clic en la marca de verificación verde al lado para aceptar la respuesta. –

+0

Hola. ¿Se las arregló para crear al final el video en formato mpeg4 a partir de esas imágenes? gracias – Paul

Respuesta

1

Puede usar AnimationDrawable en un ImageView.

Agregue marcos usando el método AnimationDrawable.addFrame(Drawable frame, int duration), e inicie la animación usando AnimationDrawable.start().

No estoy seguro de si es ideal, pero funcionaría.

+0

Hola iPaulPro y gracias por la respuesta. Creo que no estoy lo suficientemente claro. Intento realmente crear el video y almacenarlo (como un archivo mpeg4, por ejemplo). AnimationDrawable no crea ningún resultado. – HiddenDev

+0

Oh, ya veo. Es posible que desee editar su pregunta para describir mejor sus necesidades. –

+1

Me encanta cómo me siento, voté por responder correctamente la pregunta original. –

6

También estoy tratando de hacer lo mismo. He sido un consejo para usar Libav. http://libav.org/ Sin embargo, necesito construirlo con el NDK y actualmente tengo algunos problemas para hacerlo.

Estoy buscando algún documento al respecto. Te mantendré informado.

He creado un post al respecto: Libav build for Android

+0

También estoy tratando de lograr la misma tarea, pero desafortunadamente no me estoy acercando de ninguna manera me pueden ayudar. Soy totalmente extraño para ndk, ffmpeg y no hay mejor tutorial disponible. Cualquier ayuda es apreciada –

0

Podemos crear vídeo de las imágenes con ffmpeg.

Eche un vistazo a mi post para usar ffmpeg en android.

uso por debajo de comando para crear el vídeo de las imágenes colocadas en la misma carpeta

String command[]={"-y", "-r","1/5" ,"-i",src.getAbsolutePath(), 
"-c:v","libx264","-vf", "fps=25","-pix_fmt","yuv420p", dest.getAbsolutePath()}; 

Aquí,

src.getAbsolutePath() es la ruta absoluta de todas sus imágenes de entrada.

Por ejemplo, Si todas las imágenes se almacenan en la carpeta Imágenes dentro del directorio de imágenes con nombres extract_picture001.jpg, extract_picture002.jpg, extract_picture003.jpg ......

. Entonces,

String filePrefix = "extract_picture"; 
String fileExtn = ".jpg"; 
File picDir = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES); 
File dir = new File(picDir, "Images"); 
File src = new File(dir, filePrefix + "%03d" + fileExtn); 

Para la creación de vídeo a partir de imágenes colocados en carpeta diferente que tiene que crear un archivo de texto y añadir las rutas de imágenes a la misma y después especifique el camino de ese archivo de texto como una opción de entrada. Ejemplo ,

archivo de texto

file '/storage/emulated/0/DCIM/Camera/P_20170807_143916.jpg' 
duration 2 
file '/storage/emulated/0/DCIM/Pic/P_20170305_142948.jpg' 
duration 5 
file '/storage/emulated/0/DCIM/Camera/P_20170305_142939.jpg' 
duration 6 
file '/storage/emulated/0/DCIM/Pic/P_20170305_142818.jpg' 
duration 2 

Comando

String command[] = {"-y", "-f", "concat", "-safe", "0", "-i", textFile.getAbsolutePath(), "-vsync", "vfr", "-pix_fmt", "yuv420p", dest.getAbsolutePath()}; 

donde textFile.getAbsolutePath() es la ruta absoluta del archivo de texto

Control hacia fuera este ffmpeg doc para obtener más información

Cuestiones relacionadas