Jawaban:
Inilah yang bekerja untuk saya:
ffmpeg -i animated.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" video.mp4
movflags - Opsi ini mengoptimalkan struktur file MP4 sehingga browser dapat memuatnya secepat mungkin.
pix_fmt - video MP4 menyimpan piksel dalam berbagai format. Kami menyertakan opsi ini untuk menentukan format tertentu yang memiliki kompatibilitas maksimum di semua browser.
vf - video MP4 yang menggunakan H.264 harus memiliki dimensi yang dapat dibagi oleh 2. Opsi ini memastikan hal itu terjadi.
Sumber: http://rigor.com/blog/2015/12/optimizing-animated-gifs-with-html5-video
scale
dengan crop
), karena Anda hanya akan memotong paling banyak 1 piksel. Scaling mungkin membuat hal-hal buram
Dalam kasus saya, menggunakan ffmpeg
secara langsung melakukan trik dan memberikan hasil terbaik:
$ ffmpeg -f gif -i infile.gif outfile.mp4
Cara lain untuk mengonversi animasi GIF ke video:
ffmpeg -i your_gif.gif -c:v libvpx -crf 12 -b:v 500K output.mp4
-RCF nilai bisa dari 4 ke 63. Nilai yang lebih rendah berarti kualitas yang lebih baik. -b: v adalah bitrate maksimum yang diizinkan. Lebih tinggi berarti kualitas yang lebih baik.
Jika Anda ingin membuat output dalam "n loop" , lihat solusi ini dalam satu kesempatan
Jadi, mari kita konversi normal.gif ke loop.mp4
untuk 2 loop contoh film:
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
untuk 5 loop contoh film:
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
HATI-HATI: ada -y [untuk ditimpa]
ffmpeg
perintah pertama tanpa -y
, Anda akan memiliki kesempatan jauh lebih sedikit untuk secara tidak sengaja menimpa sesuatu yang tidak Anda inginkan. (Ada juga mungkin cara untuk mendapatkan ffmpeg
video pipa ke dalam dirinya, dan melakukan hal ini dalam satu perintah pipa tanpa file intermediate dan menimpa itu.)
Versi MacOs adalah sebagai berikut:
$ ffmpeg -i input.avi -pix_fmt yuv420p output.mp4