Quelle commande utiliserais-je pour convertir un fichier vidéo mp4 ou mv4 en un gif animé, et inversement. C’est-à-dire convertir un gif animé en mp4 ou mv4.
Quelle commande utiliserais-je pour convertir un fichier vidéo mp4 ou mv4 en un gif animé, et inversement. C’est-à-dire convertir un gif animé en mp4 ou mv4.
Réponses:
Voici ce qui a fonctionné pour moi:
ffmpeg -i animated.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" video.mp4
movflags - Cette option optimise la structure du fichier MP4 afin que le navigateur puisse le charger le plus rapidement possible.
pix_fmt - Les vidéos MP4 stockent des pixels dans différents formats. Nous incluons cette option pour spécifier un format spécifique offrant une compatibilité maximale entre tous les navigateurs.
vf - Les vidéos MP4 utilisant H.264 doivent avoir une dimension divisible par 2. Cette option garantit que c'est le cas.
Source: http://rigor.com/blog/2015/12/optimizing-animated-gifs-with-html5-video
scale
par crop
), car vous ne couperez qu’au plus 1 pixel. La mise à l'échelle peut rendre les choses floues
Dans mon cas, utiliser ffmpeg
directement a fait l'affaire et a fourni le meilleur résultat:
$ ffmpeg -f gif -i infile.gif outfile.mp4
Une autre façon de convertir une animation GIF en vidéo:
ffmpeg -i your_gif.gif -c:v libvpx -crf 12 -b:v 500K output.mp4
Les valeurs -crf peuvent aller de 4 à 63. Des valeurs inférieures signifient une meilleure qualité. -b: v est le débit maximum autorisé. Plus haut signifie meilleure qualité.
Si vous voulez faire la sortie en "n boucles" , regardez cette solution en un coup
Convertissons donc un fichier normal.gif en boucle.mp4
pour exemple de film 2 boucles:
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
pour un exemple de film de 5 boucles:
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
ATTENTION: il y a un -y [pour l'écrasement]
ffmpeg
commande sans -y
, vous aurez beaucoup moins de chances d'écraser accidentellement quelque chose que vous ne voudriez pas. (Il existe probablement aussi un moyen de ffmpeg
canaliser la vidéo en elle-même et de le faire en une seule commande, sans le fichier intermédiaire ni l'écrasement.)
La version MacOs est la suivante:
$ ffmpeg -i input.avi -pix_fmt yuv420p output.mp4