Risposte:
Ecco cosa ha funzionato per me:
ffmpeg -i animated.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" video.mp4
movflags - Questa opzione ottimizza la struttura del file MP4 in modo che il browser possa caricarlo il più rapidamente possibile.
pix_fmt - I video MP4 memorizzano i pixel in diversi formati. Includiamo questa opzione per specificare un formato specifico che abbia la massima compatibilità tra tutti i browser.
vf - I video MP4 che utilizzano H.264 devono avere dimensioni divisibili per 2. Questa opzione garantisce che sia così.
Fonte: http://rigor.com/blog/2015/12/optimizing-animated-gifs-with-html5-video
scale
con crop
), poiché taglierai solo al massimo 1 pixel. Il ridimensionamento potrebbe rendere le cose sfocate
Nel mio caso, usare ffmpeg
direttamente ha fatto il trucco e ha fornito il miglior risultato:
$ ffmpeg -f gif -i infile.gif outfile.mp4
Un altro modo per convertire l'animazione GIF in video:
ffmpeg -i your_gif.gif -c:v libvpx -crf 12 -b:v 500K output.mp4
i valori -crf possono andare da 4 a 63. Valori più bassi significano una migliore qualità. -b: v è il bitrate massimo consentito. Più alto significa migliore qualità.
Se vuoi fare l'output in "n loop" , guarda questa soluzione in un colpo solo
Quindi, convertiamo un normal.gif in loop.mp4
per esempio film 2 loop:
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
per esempio di film a 5 loop:
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
ATTENZIONE: c'è un -y [per la sovrascrittura]
ffmpeg
comando senza -y
, avrai molte meno possibilità di sovrascrivere accidentalmente qualcosa che non vuoi. ( Probabilmente c'è anche un modo per ffmpeg
reindirizzare il video su se stesso e farlo in un comando con pipe senza il file intermedio e la sovrascrittura.)
La versione di MacOs è la seguente:
$ ffmpeg -i input.avi -pix_fmt yuv420p output.mp4