Compressão de vídeo com FFmpeg — FFHub

Guia para iniciantes sobre como comprimir vídeos com FFmpeg e a API do FFHub.

Este guia mostra como comprimir vídeos com FFmpeg, explicando cada parâmetro.

Entendendo o comando básico

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

Cada parte significa:

ParâmetroSignificado
ffmpegO programa que estamos rodando
-i input.mp4-i significa "input", seguido do arquivo de origem
-b:v 1M-b:v significa "bitrate de vídeo", 1M = 1 Megabit por segundo
output.mp4Nome do arquivo de saída (sempre por último)

O que é bitrate? É a quantidade de dados usada por segundo de vídeo. Bitrate maior = melhor qualidade e arquivo maior. Bitrate menor = arquivo menor e qualidade mais baixa.

Método 1: CRF (recomendado para iniciantes)

CRF (Constant Rate Factor) é a forma mais simples de comprimir vídeo. Você 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 "codec de vídeo", libx264 é o encoder H.264
-crf 23Nível de qualidade (0-51). Menor = melhor qualidade e arquivo maior

Guia de valores CRF

CRFQualidadeQuando usar
18Excelente (quase lossless)Arquivar vídeos importantes
23Boa (padrão)Uso geral
28RazoávelCompartilhar online, redes sociais
33BaixaPreviews, rascunhos

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

Método 2: tamanho de arquivo alvo

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

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

Valores comuns de bitrate:

  • 500K = 500 Kilobits/segundo (arquivo pequeno, qualidade baixa)
  • 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 do FFmpeg:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset fast output.mp4
PresetVelocidadeTamanho do arquivo
ultrafastMuito rápidaMaior
fastRápidaMaior
mediumNormal (padrão)Normal
slowLentaMenor
veryslowMuito lentaMenor possível

Dica: use fast para resultado rápido, slow para entrega final.

Reduzir resolução

Resolução menor = arquivo bem 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 a largura automaticamente, mantendo o aspect ratio
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 mais o 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 "codec de áudio", aac é um formato comum
-b:a 128kBitrate de áudio: 128 Kilobits/segundo

Guia de bitrate de áudio:

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

Exemplos completos

Melhor equilíbrio (recomendado)

Boa qualidade, tamanho 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 não é prioridade:

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 arquivar preservando 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 o comando para o FFHub 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 input pela URL real do seu vídeo. O FFHub processa e retorna um link de download.

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
Qualidade maiorffmpeg -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
Compressão de vídeo com FFmpeg — FFHub — FFHub Docs