Question Comment puis-je obtenir que ffmpeg convertisse un fichier .mov en fichier .gif?


J'essaie de convertir un .mov à un .gif et je n'ai pas de succès.

Voici l'erreur:

ffmpeg -pix_fmt rgb24 -i yesbuddy.mov output.gif
ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg developers
  built on Jun 12 2012 17:47:34 with clang 2.1 (tags/Apple/clang-163.7.1)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/0.11.1 --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-libfreetype --cc=/usr/bin/clang --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libass --enable-libvo-aacenc --disable-ffplay
  libavutil      51. 54.100 / 51. 54.100
  libavcodec     54. 23.100 / 54. 23.100
  libavformat    54.  6.100 / 54.  6.100
  libavdevice    54.  0.100 / 54.  0.100
  libavfilter     2. 77.100 /  2. 77.100
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
Option pixel_format not found.

Si je laisse de côté la partie -pix_fmt rgb24, il se plaint. Réflexions sur la façon de réparer?


79
2018-06-13 01:28


origine


FYI, Il existe une excellente solution pour des conversions de haute qualité ici. - ryanjdillon


Réponses:


L'ordre des arguments de ligne de commande est important. Cette ligne de commande devrait fonctionner mais générera un fichier géant:

ffmpeg -i yesbuddy.mov -pix_fmt rgb24 output.gif

Notez que vous souhaitez probablement réduire la cadence et la taille lors de la conversion, ainsi que spécifier une heure et une durée de démarrage. Vous ne voulez probablement pas convertir le fichier entier à la résolution et à la fréquence d'images d'origine.

ffmpeg -ss 00:00:00.000 -i yesbuddy.mov -pix_fmt rgb24 -r 10 -s 320x240 -t 00:00:10.000 output.gif

La taille du fichier sera toujours énorme. Vous pourrez peut-être utiliser ImageMagickOptimiseur GIF pour réduire la taille:

convert -layers Optimize output.gif output_optimized.gif

138
2018-06-13 04:37



Réponse génial, merci :) GIF est un format fou ... l'original .mov était 250k, le .gif converti de ffmpeg était 8mb, et le convertversion optimisée était un incroyable 10k! Impressionnant! - TooTallNate
ffmpeg se plaint du format de pixel et passe de rgb24 à pal8; la commande dans la réponse doit-elle être mise à jour? - user1071136
Format de pixel incompatible 'rgb24' pour codec 'gif' - highmaintenance
@Andy corrigé automatiquement sur rgb8 dans ma version de ffmpeg. - James Campbell
comment faire dans Android? - Ajay Shrestha


Après la conversion:

ffmpeg -i input.mp4 input.gif 

Essayez d'optimiser les cadres:

convert input.gif -verbose -coalesce -layers OptimizeFrame input_optframe.gif

Et utilise gifsicle faire l'optimisation finale:

gifsicle -O2 input_optframe.gif -o optimized.gif

Got 6.8 GIF à partir de vidéo 12.2mb avec presque la même qualité!


9
2017-11-05 19:01



Pensez à expliquer comment ces étapes fonctionnent et ce qu'elles font? - Raystafarian


J'ai créé un outil qui regroupe FFmpeg, ImageMagick et giflossy dans un seul programme de ligne de commande facile à utiliser que vous pouvez installer en une seule ligne: https://github.com/vvo/gifify

Je recommande à quiconque est prêt à utiliser des vidéos => GIF au lieu d'essayer de passer beaucoup de temps à parcourir 3 sites Web de documentation pour comprendre comment redimensionner le GIF ou modifier l'heure de début / fin.


5
2017-09-16 14:54



Et si Docker est exécuté sur votre machine, faites simplement un alias comme ceci: alias gifify='docker run -it --rm -v $(pwd):/data maxogden/gifify' puis l'utiliser gifify screencast.mkv -o screencast.gif --resize 800:-1 - sabbour


ffmpeg -y -i input.mp4 -f image2pipe -vcodec ppm - | convert -delay 2 -loop 0 -layers Optimize - gif:- | gifsicle -d 3 -O3 -o optimized.gif

utiliser d'abord ffmpeg pour convertir le fichier mp4 en images via pipe puis utilisez imagemagick pour le compresser en gif enfin optimisé avec gifsicle

Je ne sais pas pourquoi l'utilisation directe de gifscicle ne fonctionnera pas.

ou vous pouvez rendre le gif plus petit par ceci

convert -dither none -matte -depth 8 -deconstruct -layers optimizePlus -colors 32 in.gif out.gif

0
2018-04-04 21:43