Vídeo para GIF

Vídeo para GIF - criador online de GIF animado — transforme um clip de vídeo num GIF animado em repetição, com a taxa de fotogramas, a largura e a qualidade de paleta que escolher. O GIF é um formato aberto de longa data, compreendido por praticamente todos os dispositivos e plataformas de conversa. Tudo é processado localmente no seu navegador, sem que os ficheiros sejam enviados para um servidor.
Entrada suportada: WebM, OGV (Ogg Video), MKV, AVI, GIF, WebP, APNG e outros formatos de vídeo comuns. Tudo é convertido localmente no seu navegador; os ficheiros nunca são enviados para um servidor.
A primeira utilização carrega um motor de processamento de vídeo de ~30 MB no navegador atual. Fica em cache e é reutilizado depois, por isso seja paciente.
🎥
Clique para selecionar ou arraste e largue um ficheiro de vídeo
Suporta WebM, OGV, MKV, AVI, GIF e outros formatos comuns; recomendado até 500 MB
Taxa de fotogramas: mais alto = mais suave mas ficheiro maior
Largura máxima: escalado automaticamente para preservar a proporção
Cores da paleta: menos cores = ficheiro menor, ligeira perda de qualidade
Conversão para GIF animado: extrai fotogramas à taxa escolhida, escala para a largura máxima, e constrói uma paleta de cores otimizada para a repetição. A faixa de áudio (se existir) é descartada.
Porque são os GIFs tão grandes? Paletas, pontilhado e o formato de 1987 a fazer de vídeo

GIF (Graphics Interchange Format, 1987) foi concebido como formato de imagem fixa com um pequeno bónus de animação, e nota-se. Duas propriedades conduzem tudo nesta página: cada fotograma está limitado a 256 cores escolhidas de uma paleta guardada, e os fotogramas são comprimidos com LZW — um compressor de bytes de uso geral da era do zip — que não faz ideia de que está a guardar um vídeo. Não há compensação de movimento, nem aritmética do tipo "este fotograma é quase igual ao anterior" como nos codecs de vídeo reais; cada fotograma é essencialmente uma imagem comprimida individualmente. Perceber a paleta é a chave para obter GIFs pequenos e bonitos.

Cinco factos para ancorar o resto desta página:
• cada fotograma tem no máximo 256 cores (28) de uma paleta; o vídeo de cor verdadeira tem de ser quantizado para baixo
• o pontilhado finge cores em falta espalhando pontos de entradas vizinhas da paleta — ficheiros maiores, gradientes mais suaves
• a temporização dos fotogramas é guardada em unidades de 10 ms: 10 fps → atraso 10 (100 ms); o piso prático é o atraso 2 (20 ms = 50 fps)
• os fotogramas são comprimidos com LZW de forma independente — a ausência de compressão entre fotogramas é o principal destruidor de tamanho
• menos cores, menos fotogramas, dimensões menores: cada botão encolhe a entrada do LZW, e o efeito multiplica-se
A paleta de 256 cores e o efeito de bandas

Um pixel de vídeo de cor verdadeira precisa de 24 bits (16,7 milhões de possibilidades); um pixel de GIF é um índice de 8 bits numa tabela de no máximo 256 cores. Converter um vídeo em GIF executa, portanto, a quantização de paleta: escolher as 256 cores que melhor representam o conteúdo, e depois encaixar cada pixel na mais próxima. Os gradientes pagam o preço — um céu que precise de 4000 azuis ligeiramente diferentes recebe 30, e a rampa suave colapsa em listras visíveis chamadas bandas. Os gráficos planos de alto contraste (logótipos, sprites de jogos, gráficos) quase não notam; as fotografias e o vídeo são os mais afetados. A qualidade da paleta de um conversor é grande parte da qualidade do seu resultado.

Pontilhado: trocar ruído por suavidade

O pontilhado é a correção clássica para as bandas: em vez de encaixar cada pixel na cor de paleta mais próxima, espalha uma mistura das duas cores mais próximas para que a média numa pequena área corresponda ao tom original. Os gradientes ficam dramaticamente mais suaves — as listras dissolvem-se num ruído fino que o olho mistura à distância normal de visualização. O custo é o tamanho do ficheiro: o ruído é detalhe de alta frequência, e o LZW comprime listras regulares muito melhor do que pontos espalhados. É esse o compromisso fundamental do GIF que esta página expõe: desligue o pontilhado para ficheiros menores com bandas, ligue-o para gradientes suaves a um custo de tamanho maior.

Temporização dos fotogramas: o piso de 20 ms

O GIF guarda o atraso entre fotogramas em unidades de 1/100 de segundo. 10 fps é atraso 10 (100 ms por fotograma); 20 fps é atraso 5 (50 ms). O valor útil mais pequeno é 2 (20 ms, ou seja 50 fps), e na prática a maioria dos navegadores limita tudo abaixo disso a 100 ms — pedir 60 fps produz em silêncio uma reprodução mais lenta. Acima do piso, cada aumento de fps multiplica o número de fotogramas: 15 fps → 50 fps para o mesmo clip significa mais de três vezes os fotogramas, e o tamanho do GIF escala aproximadamente de forma linear com o número de fotogramas. Um clip de 10 segundos a 15 fps são 150 fotogramas; a 50 fps seriam 500.

Porque é que os GIFs incham face a um vídeo real

Os codecs de vídeo modernos gastam a maioria dos seus bits a descrever a mudança entre fotogramas — uma câmara fixa significa que os fotogramas seguintes custam quase nada. O LZW do GIF vê cada fotograma como uma imagem nova (o seu único truque entre fotogramas é um sinalizador de transparência que salta os pixels idênticos ao fotograma anterior, o que ajuda muito menos do que a verdadeira compensação de movimento). A regra prática: para o mesmo clip, espere que um GIF seja muitas vezes maior do que um WebM bem codificado à mesma resolução. Se o destino aceitar vídeo real, prefira-o; o GIF só ganha onde a sua universalidade e o comportamento de reprodução automática/repetição importam.

Ideias erradas comuns
  • "O GIF é comprimido, por isso é eficiente para vídeo." O LZW é um compressor ao nível do byte de 1987 sem modelo de movimento; para imagens em movimento é o formato amplamente usado na web menos eficiente.
  • "O meu original está a 60 fps, por isso o GIF também devia estar." O piso de atraso de 20 ms limita o GIF a 50 fps, e os navegadores elevam os atrasos abaixo desse piso. A fidelidade fotograma a fotograma não é algo que o GIF consiga entregar.
  • "O pontilhado é apenas ruído que devia ser desligado." É um compromisso deliberado de qualidade/tamanho: desligado dá ficheiros menores com bandas, ligado dá gradientes suaves que custam bytes.
  • "Menos cores parece sempre horrível." Para gráficos planos e animação de alto contraste, até 64 cores podem parecer idênticas a 256 — e encolhem ainda mais o ficheiro.

Ferramentas relacionadas: Vídeo para WebP/APNG para animação de cor verdadeira com compressão real, GIF para vídeo para o sentido inverso (paleta para cor verdadeira), Vídeo para WebM para o mesmo clip como vídeo real, e o Cortador de vídeo para aparar a origem antes de converter.