Estou com um problema ao incorporar GIFs personalizados (criados com o ScreenToGif) em posts do Discourse. Ao incorporar um GIF, ele funciona por um instante e depois trava na primeira imagem, como no exemplo:
Ele parece funcionar conforme o esperado na pré-visualização do post. E quando abro o GIF carregado em uma nova aba, ele também funciona lá. O problema ocorre apenas dentro do próprio Discourse.
Tentei quatro alternativas:
Carregar o GIF em outro site (por exemplo, um bucket S3) e depois criar um link para ele. Isso funciona até que o bot do sistema venha e baixe o arquivo localmente, momento em que ele trava novamente.
Também pensei que isso pudesse ter a ver com redimensionamento, então tentei remover a formatação Markdown da imagem, por exemplo:
Como o GIF funcionou quando segui o link para uma nova aba, tentei substituir o URI abreviado “upload” pelo URL completo da imagem carregada, por exemplo:
Finalmente, pensei que o problema pudesse estar na interpretação do código Markdown pelo Discourse, então tentei usar uma tag HTML de imagem bruta com o URL completo da imagem carregada:
Infelizmente, nada funcionou. Se eu controlasse o fórum onde gostaria de postar, sei que poderia desativar os downloads locais. Mas, infelizmente, não tenho esse controle!
Como está funcionando aqui, mas não no seu site, sugiro fazer uma reconstrução do seu site e tentar novamente. Fizemos várias alterações recentes relacionadas a GIFs. Em alguns períodos, tivemos bugs como o que você relatou, e seu site pode estar em uma versão afetada.
Definitivamente não é um tamanho de arquivo, mas um arquivo “malformado” que o gifscicle está corrigindo. É comum ver algumas ferramentas criando arquivos defeituosos. Sempre passo meus GIFs por uma boa ferramenta como o ffmpeg antes de compartilhar. Mas mesmo assim, você pode facilmente obter um arquivo malformado se as dimensões forem ímpares, por exemplo.
O GIF é um formato complicado, e hoje existem opções melhores, como MP4 e WEBP, para a maioria dos aplicativos.
Para o que vale, encontrei alguns casos em que gifsicle não funciona. Especificamente, às vezes é necessário usar --colors 256 para obter um GIF funcional. Mas outras vezes, é necessário omitir a flag.