Respuestas:
Esto es lo que funcionó para mí:
ffmpeg -i animated.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" video.mp4
movflags : esta opción optimiza la estructura del archivo MP4 para que el navegador pueda cargarlo lo más rápido posible.
pix_fmt : los videos MP4 almacenan píxeles en diferentes formatos. Incluimos esta opción para especificar un formato específico que tenga la máxima compatibilidad en todos los navegadores.
vf : los videos MP4 que usan H.264 deben tener dimensiones que sean divisibles por 2. Esta opción garantiza que ese sea el caso.
Fuente: http://rigor.com/blog/2015/12/optimizing-animated-gifs-with-html5-video
scale
con crop
), ya que solo va a cortar como máximo 1 píxel. La escala podría hacer que las cosas se
En mi caso, usar ffmpeg
directamente hizo el truco y proporcionó el mejor resultado:
$ ffmpeg -f gif -i infile.gif outfile.mp4
Otra forma de convertir animación GIF a video:
ffmpeg -i your_gif.gif -c:v libvpx -crf 12 -b:v 500K output.mp4
-crf valores pueden ir de 4 a 63. Valores más bajos significan mejor calidad. -b: v es la tasa de bits máxima permitida. Mayor significa mejor calidad.
Si desea realizar la salida en "n bucles" , mire esta solución de una vez
Entonces, convirtamos un normal.gif a loop.mp4
para el ejemplo de la película de 2 bucles:
ffmpeg -stream_loop 2 -i normal.gif loop.gif -y;ffmpeg -i loop.gif -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" loop.mp4 -y
por ejemplo de película de 5 bucles:
ffmpeg -stream_loop 5 -i normal.gif loop.gif -y;ffmpeg -i loop.gif -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" loop.mp4 -y
TENGA EN CUENTA: hay un -y [para sobrescribir]
ffmpeg
comando sin -y
, tendrá muchas menos posibilidades de sobrescribir accidentalmente algo que no desea. (También es probable que haya una manera de ffmpeg
canalizar el video en sí mismo, y hacerlo en un comando canalizado sin el archivo intermedio y la sobrescritura).
La versión de MacOs es la siguiente:
$ ffmpeg -i input.avi -pix_fmt yuv420p output.mp4