Je rencontre un problème lors de l’intégration de GIF personnalisés (créés avec ScreenToGif) dans des messages Discourse. Lorsqu’un GIF est intégré, il fonctionne un instant avant de se figer sur la première image, comme dans cet exemple :
Il semble fonctionner correctement dans l’aperçu du message. De plus, lorsque j’ouvre le GIF téléchargé dans un nouvel onglet, il fonctionne également. Le problème ne se produit que sur Discourse lui-même.
J’ai essayé quatre solutions de contournement :
Télécharger le GIF sur un autre site (par exemple un bucket S3), puis y ajouter un lien. Cela fonctionne jusqu’à ce que le bot du système le télécharge localement, moment où il se fige à nouveau.
J’ai également pensé que cela pourrait être lié au redimensionnement, alors j’ai essayé de supprimer la syntaxe Markdown pour l’image, par exemple :
Puisque le GIF fonctionnait lorsque j’ai suivi le lien vers un nouvel onglet, j’ai essayé de remplacer l’URI abrégé “upload” par l’URL complète de l’image téléchargée, par exemple :
Enfin, j’ai pensé que le problème pourrait être lié à l’interprétation du code Markdown par Discourse, alors j’ai essayé d’utiliser une balise HTML brute avec l’URL complète de l’image téléchargée :
Malheureusement, rien n’a fonctionné. Si je contrôlais le forum où je souhaite publier, je sais que je pourrais désactiver les téléchargements locaux. Mais malheureusement, je ne le peux pas !
Puisque cela fonctionne ici mais pas sur votre site, je vous suggère de reconstruire votre site et de réessayer. Nous avons apporté de nombreuses modifications récentes autour des GIF. Pendant certaines périodes, nous avons eu des bugs comme celui que vous signalez, et votre site peut être sur une version concernée.
Ce n’est absolument pas une question de taille de fichier, mais d’un fichier « malformé » que gifscicle corrige. Il est courant de voir certains outils générer des fichiers défectueux. Je fais toujours passer mes GIF par un bon outil comme ffmpeg avant de les partager. Mais même ainsi, on peut facilement obtenir un fichier malformé si les dimensions sont impaires, par exemple.
Le format GIF est complexe, et il existe aujourd’hui de meilleures options comme MP4 et WEBP pour la plupart des applications.
Tous les GIF de ce sujet sont animés pour moi (Chrome sous Arch Linux), mais la version actuelle de FastImage indique qu’ils ne le sont pas à cause de ce bug.
Pour ce que ça vaut, j’ai trouvé quelques cas où gifsicle ne fonctionne pas. Plus précisément, il est parfois nécessaire d’utiliser --colors 256 pour obtenir un GIF fonctionnel. Mais d’autres fois, il est nécessaire de ne pas inclure ce drapeau.