Gifs incorporados em posts pausados após download local

Olá,

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:

  1. 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.

  2. Também pensei que isso pudesse ter a ver com redimensionamento, então tentei remover a formatação Markdown da imagem, por exemplo:

    ![](upload://4IHl8zz0sJiYl5Vm3H21YTEFo9z.gif)
    

    em vez de:

    ![example|690x383](upload://4IHl8zz0sJiYl5Vm3H21YTEFo9z.gif)
    
  3. 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:

    ![example|690x383](https://d11a6trkgmumsb.cloudfront.net/original/3X/2/1/211635b9ae2b0960e8e135299b3a91189b00c289.gif)
    
  4. 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:

    <img src="https://d11a6trkgmumsb.cloudfront.net/original/3X/2/1/211635b9ae2b0960e8e135299b3a91189b00c289.gif">
    

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.

Não acho que seja esse o problema. Para mim, não está funcionando aqui. Só consigo ver o primeiro quadro.

Será que pode haver alguma outra configuração padrão do Chrome que esteja atrapalhando?

Ah, consigo reproduzir isso no Chrome. Que estranho.

Original

Otimizado via Gifscicle
weird_optimized

Depois de passar pelo Gifscicle, funciona:

Obrigado por reproduzir. Qual comando gifcicle você executou para otimizar?

É simples:

gifscicle original.gif -o fixed.gif

A propósito, o Discourse já vem com suporte para autoplay de MP4 e WEBP, o que pode te dar melhores resultados!

Não acho que seja questão de tamanho de arquivo, pois já testei gifs muito maiores e menores sem sucesso.

Ótimo, deixe-me ver se isso funciona para meus GIFs reais. Vou atualizar quando terminar.

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.

Funcionou para todos os meus GIFs. Em alguns casos, também precisei adicionar a flag --colors 256.

Para quem está se perguntando, gerei os GIFs com defeito originalmente usando o gerador de GIFs “Neural Network” do ScreenToGif.

Obrigado pela ajuda @Falco

@nbianca alguma ideia de por que a miniatura do GIF não está animada? Parece que o GIF original está bem dentro dos limites.

Ele é animado no Firefox. Ou é um GIF mal formatado ou um bug do Chrome.

Não está animado para mim na versão mais recente do FF / Windows 10.

Interessante! Veja como aparece para mim no Linux: Firefox à esquerda e Chrome à direita:

Todos os GIFs neste tópico são animados para mim (Chrome no Arch Linux), mas a versão atual do FastImage diz que não são animados devido a esse bug.

Nesse caso, devemos pressionar para que isso seja mesclado o quanto antes :+1:

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.

Olá,

A correção para o seu problema foi aceita e já está disponível na versão mais recente.