Kalitesi onları üretmek için harcadığı zaman kadar önemli olmayan pek çok küçük resim GIF'i üretiyoruz. Ffmpeg ile yüksek kaliteli GIF üretmek çok iyi bir şekilde kaplanmıştır, ancak düşük kaliteli olanları mümkün olduğunca çabuk nasıl üreteceğinizi bulmakta çok fazla şansım yok.
Palet hesaplama, yürütme zamanının çoğunu aşağıdaki komutla alır (burada çok zincirli süzgeç yanıtından alınmıştır: Web üzerinden bir video bölümünden en iyi palet paleti nasıl verimli bir şekilde oluşturulur ):
ffmpeg -y -threads 8 -r 24 -f image2 -start_number 1 -i "frames.%04d.jpg" -filter_complex "fps=24,scale=150:-1:flags=fast_bilinear,split=2 [a][b]; [a] palettegen [pal] fifo [b]; [b] [pal] paletteuse" output.gif
Bu komutun 1000 kareyle yürütme süresi yaklaşık 72 saniyedir. Bunun yaklaşık 67 saniyesi palet geçişidir ve daha sonra gerçek GIF nesnesinden yaklaşık 5 saniye içinde parlar. Tüm yürütme süresini olabildiğince düşürmek ve hız için birçok görüntü kalitesini feda etmek istiyorum.
ffmpeg -y -r 24 -f image2 -start_number 1 -i "frames.%04d.jpg" -filter:v "scale=150:-1:flags=fast_bilinear" output.gif
Bununla ilgili iki sorun: 1) Sadece 13 saniye (72 yerine 59 saniye), ve 2 ) Bu komutun palet hesaplamasını tamamen ortadan kaldırdığından% 100 emin değilim (yalnızca daha önce belirttiğim palet hesaplamasının dahil edilmediğini).
ffmpeg -i <input> <scale> <output.gif>
.
[b]
etiket eksik . Her iki durumda da, paleti kullanmak hızlı bir testten yargılamak yaklaşık 200 is yavaştır. Hiç kullanmamak sizin için bir seçenek değil mi?