Estoy tratando de combinar unarchivo de audioy ungifen unvideoy tengo algunos problemas a pesar de probar bastantes soluciones con Stack Overflow.
Me gustaría que la duración combinada del archivo coincida con la del audio, así como preservar la transparencia del GIF.
- La duración del archivo de audio es00:00:17.53
- La duración del archivo GIF es00:00:00.40, es transparente.
Logré combinarlos pero la duración que obtengo es bastante incorrecta y se pierde la transparencia con el siguiente comando:
ffmpeg -i input.mp3 -ignore_loop 0 \
-i input.gif -movflags +faststart \
-vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" \
-shortest -strict -2 \
-c:v libx264 -c:a aac -b:a 192k -b:v 2M -pix_fmt yuv420p output.mp4
La duración del vídeo resultante es00:00:24.21
- ¿Existe alguna forma de conseguir la duración de salida correcta sin tener que utilizar
-t 00:00:17.53
la opción? - Intenté convertir usando otros códecs como libvpx-vp9 pero no pude lograr la transparencia correcta. ¿Hay algún otro códec que deba usar?
Editar: Logré generar un video transparente (formato webm) usando el siguiente comando:
ffmpeg -i source.mp3 -ignore_loop 0 -i source.gif -c:v libvpx -pix_fmt yuva420p -auto-alt-ref 0 -t 00:00:17.53
Sin embargo, mi primera pregunta acerca de que la duración no es automáticamente correcta sigue en pie.