Tema: [ CONSULTA ] Generar un Time Lapse.
Ver Mensaje Individual
  #2  
Viejo 16/06/15, 08:31:06
Array

[xs_avatar]
canselleiro canselleiro no está en línea
Usuario muy activo
· Votos compra/venta: (17)
 
Fecha de registro: oct 2009
Localización: Rías Baixas
Mensajes: 571
Modelo de smartphone: Xiaomi Mi5s
Tu operador: Pepephone
Probablemente seas ususario de güindous y le tengas alergia a la línea de comandos pero esta solución es muy rápida y cómoda. Se trata de usar FFmpeg para crear el vídeo.

Para ello colocas todas las imágenes involucradas en un directorio concreto, abres la consola y te colocas en él:
Código:
cd /RUTA/AL/DIRECTORIO
Primero hay que decidir la tasa de fotogramas por segundo (FPS), para que le vídeo se vea fluído el FPS no debe bajar de 24. Dividiendo el número de imágenes entre el FPS se obtiene la duración en segundos del vídeo.
Por ejemplo, la cámara Yi generó 1750 fotos y queremos un FPS=25, entonces el vídeo duarará 1750/25=70 segundos=1min 10s

El siguiente paso es decidir la resolución del vídeo (RES). Acá hay que tener en cuenta que la YI, a día de hoy, solo saca fotos en formato 4:3. Si se desea un vídeo en formato 16:9 es necesario distorsionar la imagen alargándola o hacer un recortado de la zona central (más recomendable).
La resolución se puede definir mediante valores personalizados (1600x1024, 800x600...) o empleando resoluciones predefinidas:
  • xga - 1024x768 (4:3)
  • uxga - 1600x1200 (4:3)
  • hd480 - 852x480 (16:9)
  • hd720 - 1280x720 (16:9)
  • hd1080 - 1920x1080 (16:9)
  • 2k - 2048x1080 (1,90:1)
  • 2kflat - 1998x1080 (1,85:1)
Con estos datos ya podemos ejecutar FFmpeg (hay que sustituir FPS y RES por el valor que corresponda):
- crear un timelapse sin recortar la imagen (RES debe estar en formato 4:3 para que no se deforme la imagen, por ejemplo, xga o uxga):
Código:
ffmpeg -r FPS -pattern_type glob -i "*.jpg" -c:v libx264 -vf scale=size=RES -pix_fmt yuv420p -y TIMELAPSE.mp4
- crear un timelapse recortando la parte central de la imagen (RES debe estar en formato 16:9, por ejemplo, hd720 o hd1080):
Código:
ffmpeg -r FPS -pattern_type glob -i "*.jpg" -c:v libx264 -vf "crop=w=iw:h=ceil((ih*9)/16):x=0:y=ceil((ih-oh)/2),scale=size=RES" -pix_fmt yuv420p -y TIMELAPSE.mp4
Todo esto parece un rollo patatero pero, al fin y al cabo, lo único que tienes que hacer es copipegar el código, modificar los valores y darle a enter.

Un ejemplo típico: quieres sacar un timelapse a 1080p/25, entonces el código sería:
Código:
ffmpeg -r 25 -pattern_type glob -i "*.jpg" -c:v libx264 -vf "crop=w=iw:h=ceil((ih*9)/16):x=0:y=ceil((ih-oh)/2),scale=size=hd1080" -pix_fmt yuv420p -y TIMELAPSE.mp4
Incluso puedes añadirle banda sonora:
Código:
ffmpeg -r 25 -pattern_type glob -i *.jpg -i MUSICA.mp3 -c:v libx264 -vf "crop=w=iw:h=ceil((ih*9)/16):x=0:y=ceil((ih-oh)/2),scale=size=hd1080" -pix_fmt yuv420p -c:a aac -b:a 192k -y TIMELAPSE.mp4
Espero te sirva de ayuda
__________________

Última edición por canselleiro Día 16/06/15 a las 12:05:37. Razón: Faltaba la resolución
Responder Con Cita
Los siguientes 5 usuarios han agradecido a canselleiro su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]