Como converter vídeo para WebP animado com auto-corte usando FFmpeg

Converter vídeos para o formato WebP pode parecer complicado, mas com as ferramentas certas, o processo se torna bem simples. Se você precisa transformar vídeos em animações curtas e em loop, o WebP é uma excelente alternativa ao tradicional GIF, oferecendo melhor qualidade e tamanho de arquivo reduzido.

Este guia prático vai te mostrar como usar o ffmpeg, uma ferramenta poderosa e gratuita, para **converter vídeo para WebP**, cortar trechos específicos e até remover barras pretas automaticamente. Prepare-se para criar animações incríveis de forma fácil e rápida!

Ferramentas e Comandos Essenciais para Converter Vídeo para WebP

O ffmpeg é um canivete suíço para quem trabalha com vídeos. Ele permite converter vídeo para WebP e realizar diversas outras tarefas de edição e manipulação de mídia. Para começar, você precisa ter o ffmpeg instalado no seu computador. Se ainda não o tem, confira este artigo sobre como remover ou adicionar metadados para mais informações.

Com o ffmpeg instalado, o primeiro passo é usar o comando básico para **converter vídeo para WebP**:

$ ffmpeg -i <in_file> -loop 1 -an -vf fps=fps=20 <out_file>

Este comando converte um vídeo inteiro para WebP, criando uma animação em loop. A opção -loop 1 garante que o vídeo fique em loop infinito, -an remove o áudio e -vf fps=fps=20 define a taxa de quadros para 20 fps, um bom equilíbrio entre qualidade e tamanho do arquivo.

Mas e se você quiser apenas um trecho específico do vídeo? Sem problemas! O ffmpeg também resolve isso:

$ ffmpeg -i <in_file> -ss <start_time> -to <end_time> -loop 1 -an -vf fps=fps=20 <out_file>

Com este comando, você pode usar -ss para definir o tempo de início e -to para definir o tempo de término do trecho que deseja converter. Os tempos podem ser especificados em segundos (ex: 77) ou no formato “00:01:17”.

Automatizando o Processo com um Script

Para facilitar ainda mais o processo de converter vídeo para WebP, você pode criar um script simples em bash. Isso evita que você tenha que digitar o comando completo toda vez.

#!/bin/bash
start=""
end=""

if [ ! -z "$2" ]; then
  start="-ss $2"
fi

if [ ! -z "$3" ]; then
  end="-to $3"
fi

ffmpeg -i "$1" $start $end -loop 1 -an -vf fps=fps=20 "$4"

Salve este script como vid2webp e dê permissão de execução (chmod +x vid2webp). Agora você pode usá-lo assim:

$ vid2webp infile.mp4 10 20 outfile.webp

Este comando irá cortar o trecho do vídeo infile.mp4 entre os segundos 10 e 20, e salvar como outfile.webp. Bem mais prático, não é?

Removendo Barras Pretas Automaticamente

Uma das maiores vantagens deste método é a capacidade de remover automaticamente as barras pretas que aparecem em vídeos com diferentes proporções. Para isso, usamos o filtro cropdetect do ffmpeg.

Primeiro, precisamos identificar as dimensões do vídeo sem as barras pretas. O seguinte trecho de código faz isso:

crop=$(ffmpeg $start -i "$1" -vframes 10 -vf cropdetect -f null -  2>&1 | grep -m 1 -oP 'crop=\K[0-9:]+')

Este comando analisa os primeiros 10 frames do vídeo e detecta as dimensões do corte necessário para remover as barras pretas. Em seguida, extraímos a largura e a altura:

width=$(echo "$crop" | cut -d':' -f1)
height=$(echo "$crop" | cut -d':' -f2)

Agora, podemos aplicar um redimensionamento (scale) para garantir que o vídeo tenha o tamanho desejado:

scale=0.8
width=$(echo "$width * $scale" | bc)
height=$(echo "$height * $scale" | bc)
if [ "$height" -gt "$width" ]; then
  scale="-2:$height"
else
  scale="$width:-2"
fi

Finalmente, adicionamos os parâmetros de corte e redimensionamento ao nosso comando ffmpeg:

ffmpeg -i "$1" $start $end -loop 1 -an -vf crop="$crop",scale="$scale",fps=fps="$fps" "$4"

Com este comando, o ffmpeg irá cortar as barras pretas, redimensionar o vídeo e **converter vídeo para WebP**, tudo em um único passo.

O Resultado Final

Com este script completo, você pode **converter vídeo para WebP** de forma rápida e fácil, removendo as barras pretas automaticamente. Basta executar o script várias vezes em diferentes trechos do vídeo:

$ vid2webp infile.mp4 0 10 a.webp
$ vid2webp infile.mp4 10 18 b.webp
$ vid2webp infile.mp4 18 25 c.webp

Para uma versão mais completa do script, com tratamento de erros, variáveis de ambiente e geração automática de nomes de arquivos, confira o repositório no Github.

Este guia detalhado te mostra como **converter vídeo para WebP** de maneira eficiente, utilizando o poder do ffmpeg e um script simples. Com estas ferramentas, você pode criar animações incríveis e otimizadas para a web em poucos minutos.

Este conteúdo foi auxiliado por Inteligência Artificiado, mas escrito e revisado por um humano.

Leave a Comment