Compressão de Vídeo com FFmpeg

Um guia para iniciantes sobre compressão de vídeos com FFmpeg e a API do FFHub.

Este guia explica como comprimir vídeos usando o FFmpeg, com explicações detalhadas de cada parâmetro.

Entendendo o Comando Básico

ffmpeg -i input.mp4 -b:v 1M output.mp4

Vamos analisar cada parte:

ParâmetroSignificado
ffmpegO programa que estamos executando
-i input.mp4-i significa "input" (entrada), seguido do seu arquivo de origem
-b:v 1M-b:v significa "video bitrate", 1M = 1 Megabit por segundo
output.mp4O nome do arquivo de saída (sempre vem por último)

O que é bitrate? É a quantidade de dados usada por segundo de vídeo. Bitrate mais alto = melhor qualidade, mas arquivo maior. Bitrate mais baixo = arquivo menor, mas qualidade inferior.

Método 1: CRF (Recomendado para Iniciantes)

CRF (Constant Rate Factor) é a maneira mais fácil de comprimir vídeo. Você simplesmente escolhe um nível de qualidade:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4
ParâmetroSignificado
-c:v libx264-c:v significa "video codec", libx264 é o codificador H.264
-crf 23Nível de qualidade (0-51). Menor = melhor qualidade, arquivo maior

Guia de Valores CRF

CRFQualidadeQuando Usar
18Excelente (quase sem perdas)Arquivar vídeos importantes
23Boa (padrão)Uso geral
28OKCompartilhar online, redes sociais
33BaixaPrévias, rascunhos

Dica: Comece com CRF 23. Se o arquivo ficar muito grande, tente 28. Se a qualidade ficar muito baixa, tente 20.

Método 2: Tamanho de Arquivo Alvo

Se você precisa de um tamanho de arquivo específico, use o modo de bitrate:

ffmpeg -i input.mp4 -c:v libx264 -b:v 2M output.mp4

Valores comuns de bitrate:

  • 500K = 500 Kilobits/segundo (arquivo pequeno, qualidade inferior)
  • 1M = 1 Megabit/segundo (médio)
  • 2M = 2 Megabits/segundo (boa qualidade)
  • 5M = 5 Megabits/segundo (alta qualidade)

Velocidade de Codificação: Presets

A opção -preset controla a velocidade de codificação do FFmpeg:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset fast output.mp4
PresetVelocidadeTamanho do Arquivo
ultrafastMuito rápidoMaior
fastRápidoGrande
mediumNormal (padrão)Normal
slowLentoMenor
veryslowMuito lentoMenor possível

Dica: Use fast para resultados rápidos, slow para entrega final.

Reduzir Resolução

Resolução menor = arquivo muito menor:

ffmpeg -i input.mp4 -vf scale=-2:720 -c:v libx264 -crf 23 output.mp4
ParâmetroSignificado
-vf scale=-2:720-vf significa "video filter", scale redimensiona o vídeo
-2Calcula automaticamente a largura para manter a proporção
720Altura alvo em pixels (720p)

Resoluções comuns:

  • scale=-2:2160 → 4K
  • scale=-2:1080 → 1080p (Full HD)
  • scale=-2:720 → 720p (HD)
  • scale=-2:480 → 480p (SD)

Comprimir o Áudio Também

Adicione compressão de áudio para reduzir ainda mais o tamanho do arquivo:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4
ParâmetroSignificado
-c:a aac-c:a significa "audio codec", aac é um formato de áudio comum
-b:a 128kBitrate de áudio: 128 Kilobits/segundo

Guia de bitrate de áudio:

  • 320k → Música em alta qualidade
  • 192k → Boa qualidade
  • 128k → Padrão (recomendado)
  • 96k → OK para fala

Exemplos Completos

Melhor Equilíbrio (Recomendado)

Boa qualidade, tamanho de arquivo razoável:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4

Menor Tamanho de Arquivo

Para compartilhar online quando a qualidade é menos importante:

ffmpeg -i input.mp4 -vf scale=-2:720 -c:v libx264 -crf 28 -preset slow -c:a aac -b:a 96k output.mp4

Melhor Qualidade

Para arquivamento quando você quer preservar a qualidade:

ffmpeg -i input.mp4 -c:v libx264 -crf 18 -preset slow -c:a aac -b:a 192k output.mp4

Usando a API do FFHub

Envie seu comando para o FFHub para processar na nuvem:

curl -X POST https://api.ffhub.io/v1/tasks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "command": "ffmpeg -i https://your-storage.com/input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4"
  }'

Nota: Substitua a URL de entrada pela URL real do seu vídeo. O FFHub processará e fornecerá um link para download do resultado.

Referência Rápida

ObjetivoComando
Compressão básicaffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4
Arquivo menorffmpeg -i input.mp4 -c:v libx264 -crf 28 output.mp4
Maior qualidadeffmpeg -i input.mp4 -c:v libx264 -crf 18 output.mp4
Redimensionar para 720pffmpeg -i input.mp4 -vf scale=-2:720 -c:v libx264 -crf 23 output.mp4
Com áudioffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4