2017-04-04 2 views
1

En partant, j'ai ce gif à partir d'images google:Glitchiness quand j'ajouter de la transparence à un gif et le convertir en WebM

enter image description here

Puis-je convertir le bleu à la transparence:

convert octopus.gif -transparent "#00AEFF" octopus-transparent.gif 

Maintenant j'ai ceci (notez que le glitchiness a déjà commencé à apparaître)

enter image description here

Maintenant pour la grande finale, je le convertir en WebM:

convert octopus-transparent.gif tmp%03d.png 

ffmpeg -framerate 25 -f image2 -i ./tmp%03d.png -c:v libvpx -pix_fmt yuva420p octopus.webm 

Voir la capture d'écran ci-dessous. Il est encore transparent, mais la taille est plus stable, et franchement il commence à regarder un peu la chair de poule:

enter image description here

Je ne sais vraiment pas beaucoup sur les codecs vidéo et j'ai juste loin avec l'aide des autres. J'apprécierais des conseils quant à comment je peux changer ces commandes pour éviter les défauts.

+1

Votre problème est que vous utilisez le mode d'élimination GIF 1 vous devriez plutôt forcer/utiliser 2 ou 3 voir double: [Comment corriger .gif avec canal alpha corrompu (pixels bloqués) collectés avec Graphicsmagick?] (http://stackoverflow.com/a/43316830/2521214) le '-dispose background' dans la réponse acceptée ici fait exactement cela cependant :) – Spektre

Répondre

2

Votre problème peut être dû à des cadres de taille inégales à partir d'une optimisation, il faut donc ajouter -coalesce à votre commande, de sorte qu'il est

convert octopus.gif -coalesce -fuzz 25% -transparent "#00AEEF" miff:- | convert -dispose background - octopus-transparent.gif 

Si vous voulez juste enregistrer en tant que GIF à nouveau, vous pouvez ajouter - couche optimiser avant d'enregistrer. Mais si vous voulez sortir sur webm, vous devrez peut-être éviter l'optimisation des couches.

De même, vous n'avez pas de couleur bleue constante, vous avez donc besoin de -fuzz.

Le tube à convertir permet de définir la méthode d'élimination. Il ne fonctionnera pas en ligne dans le premier converti, car il doit être réglé juste après la lecture de l'entrée et ramassera donc l'arrière-plan bleu plutôt que le transparent.

Quelle est votre version IM? Peut-être avez-vous besoin d'une mise à jour Je reçois cela en utilisant IM 6.9.8.3 Q16:

enter image description here