FFMPEG Kullanarak Oluşturulan GIF Boyutunu Azaltın


6

Ben dönüştüren android uygulama geliştiriyorum mp4 dosya içine gifs kullanma ffmpeg. Sorun, üretilen giflerin büyüklükte olmasıdır. Ve bir başka sorun da, başka bir şey kullanamıyorum ffmpeg (Örneğin. imagemagick için convert, ya da palletes şimdilik) üretilen gif boyutunu azaltmak.

kullanıyorum komut budur: ffmpeg -y -i file.mp4 -pix_fmt rgb24 -r 10 -s 320x480 file.gif

Peki, dönüşüm optimize etmek için başka bir yolu var mı?

Yanıtlar:


4

GIF'ler için ffmpeg kullanmanın standart yolu

Bir palet oluştur videodan

ffmpeg -y -i file.mp4 -vf palettegen palette.png

Sonra,

ffmpeg -y -i file.mp4 -i palette.png -filter_complex paletteuse -r 10 -s 320x480 file.gif

Daha fazla seçenek belgelendi İşte .


3
Garip bir şekilde, bir palet oluşturmak GIF'in boyutunu üç katına çıkarsa da, varsayılan palet üzerindeki kaliteyi büyük ölçüde artırdı. Her zamanki gibi ffmpeg ile GIF'i üretmenin en iyi yolunu buldum (muhtemelen bu cevapta daha iyi bir paletle), sonra sadece çerçevenin değişmeyen parçalarını saydam hale getirebilecek bir optimizasyon aracı (çevrimiçi olanlar da var) ile çalıştırın. diğer optimizasyonları uygular.
Jason C

1
vid=       
start_time=00:00:01
duration=5       
height=ih/2      # input height halved , can replace with pixils . 
width=-2         # keeps aspect ratio . can replace with pixils . 
fps=25           # frames per a second .

filters="fps=$fps,scale=$width:$height:flags=lanczos"

ffmpeg -ss $start_time                             \
       -t  $duration                               \
       -i  "$vid"                                  \
       -vf "$filters,palettegen"                   \
       -y  palette.png                             &&
ffmpeg -ss $start_time                             \
       -t  $duration                               \
       -i  "$vid"                                  \
       -i  palette.png                                \
       -lavfi "$filters [x]; [x][1:v] paletteuse"  \
       -y  "$vid".gif                              &&
rm palette.png 

belgelere bağlantı

Daha fazla bilgi


Nerede $palette betiğinizde ayarlanıyor mu?
confetti

komutun çalıştırıldığı yer
FireInTheSky

1
afedersiniz . palet dosyasında bir hata oluştu. şimdi düzeltildi.
FireInTheSky
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.