Utilia

Vídeo para GIF

Transforma parte de um vídeo MP4, MOV ou WebM num GIF animado no navegador, com paleta de cores otimizada, estimativa de tamanho e pré-visualização.

O GIF é criado pelo FFmpeg compilado para WebAssembly, em duas passagens (uma paleta de cores ajustada ao teu clip e depois os fotogramas). Na primeira vez são transferidos cerca de 30 MB, que ficam depois na cache do navegador. Um navegador é mais lento do que um programa de computador: mantém os clips curtos.

Como criar um GIF a partir de um vídeo

  1. Larga um vídeo na caixa acima, ou clica nela para escolher um ficheiro (até 300 MB).
  2. Os primeiros 5 segundos ficam selecionados. Vai até ao momento que queres e carrega em Definir início aqui e depois em Definir fim aqui, ou escreve os tempos em segundos (12,5) ou em minutos:segundos (0:12,5). Reproduzir seleção volta a mostrar a parte escolhida.
  3. Escolhe os Fotogramas por segundo e a Largura. A linha ao lado do botão mostra a duração, o número de fotogramas, o tamanho em píxeis e uma estimativa aproximada do tamanho do ficheiro.
  4. Carrega em Criar GIF. Aparece uma barra de progresso com um botão Cancelar.
  5. O GIF animado aparece como pré-visualização. Se gostares, transfere-o; se for demasiado pesado, muda as definições e cria-o de novo.

Como funciona a conversão

Um GIF só pode ter 256 cores por fotograma, enquanto um fotograma de vídeo tem milhões. A qualidade de um GIF depende sobretudo de quais 256 cores são escolhidas. Esta ferramenta usa o método de duas passagens do FFmpeg, o recomendado para GIF com bom aspeto:

  1. Passagem da paleta. O FFmpeg lê uma vez a parte selecionada e cria uma paleta com as 256 cores que melhor representam este clip em particular (palettegen), dando mais peso às zonas em movimento.
  2. Passagem de codificação. Lê o clip outra vez e associa cada fotograma a essa paleta (paletteuse), com um dithering leve por difusão de erro para suavizar os degradês. Só as zonas que mudam entre fotogramas recebem novo dithering, o que evita ruído intermitente e mantém o ficheiro mais pequeno.

Os fotogramas são também reamostrados para a taxa escolhida e redimensionados com o filtro Lanczos, que mantém o texto e os contornos nítidos. O resultado repete-se em ciclo infinito, como a maioria dos GIF na web.

Tudo corre no navegador, com o FFmpeg compilado para WebAssembly. Na primeira vez, são transferidos cerca de 30 MB, que ficam na cache do navegador. O teu vídeo nunca é enviado.

Manter o GIF pequeno

O GIF é um formato antigo e pouco eficiente: um GIF pesa muitas vezes 5 a 10 vezes mais do que o mesmo clip em MP4. O tamanho cresce com largura × altura × número de fotogramas, por isso:

  • Encurta o clip. 2 a 6 segundos é o habitual para uma reação ou uma demonstração.
  • Baixa os fotogramas por segundo. 10 fps é suficientemente fluido para a maior parte do conteúdo e pesa metade de 20 fps. As gravações de ecrã ficam muitas vezes bem a 5–8 fps.
  • Reduz a largura. Passar de 640 px para 480 px divide o número de píxeis por quase dois. 480 px é um bom valor por defeito para conversas e redes sociais.

A estimativa de tamanho assume cerca de 0,3 bytes por píxel por fotograma. Os clips reais variam muito: as gravações de ecrã com cores lisas comprimem muito melhor, as imagens de câmara com grão muito pior. Quando a estimativa passa dos 15 MB ou o clip ultrapassa os 450 fotogramas, a ferramenta mostra um aviso. Acima de 1500 fotogramas recusa, porque a conversão demoraria demasiado e usaria demasiada memória num navegador.

Limites

Um navegador é mais lento do que um programa de computador: cada passagem descodifica o vídeo num único núcleo do processador. Clips curtos com larguras moderadas convertem-se em segundos; clips longos em Full HD podem demorar minutos. Para um excerto longo, corta-o primeiro com o cortador de vídeo e converte só essa parte. Os ficheiros que o navegador não consegue reproduzir (AVI, alguns MKV) podem ser convertidos na mesma, mas sem pré-visualização: escreve os tempos de início e de fim.

Perguntas frequentes

O meu vídeo é enviado?

Não. A conversão corre no navegador, com o FFmpeg compilado para WebAssembly. Nada é enviado para um servidor.

Porque é que o meu GIF é tão grande?

Porque o GIF comprime mal: cada fotograma é guardado quase como uma imagem completa com 256 cores. Encurta a seleção, baixa os fotogramas por segundo ou reduz a largura. Reduzir a largura para metade divide o tamanho por cerca de quatro.

Que taxa de fotogramas devo escolher?

10 fps é um bom equilíbrio entre fluidez e tamanho. Usa 15–25 fps para movimento rápido, como desporto ou jogos, e 5–8 fps para gravações de ecrã ou apresentações de diapositivos.

Porque é que há duas passagens?

A primeira passagem encontra as 256 cores que melhor se adaptam ao teu clip; a segunda desenha cada fotograma com elas. Uma paleta genérica única provoca faixas de cor e cores erradas, e é por isso que os GIF feitos desta forma ficam muito mais limpos.

A estimativa de tamanho é exata?

É uma orientação aproximada, não uma promessa. Usa uma proporção média, e o tamanho real depende de quanto a imagem se mexe e de quão detalhada é. O tamanho exato aparece depois da conversão.

O GIF mantém o som?

Não. O formato GIF não tem áudio. Para manteres o som, corta antes o vídeo, ou extrai o áudio em MP3 à parte.