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âmetro | Significado |
|---|---|
ffmpeg | O 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.mp4 | Nome 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âmetro | Significado |
|---|---|
-c:v libx264 | -c:v significa "codec de vídeo", libx264 é o encoder H.264 |
-crf 23 | Nível de qualidade (0-51). Menor = melhor qualidade e arquivo maior |
Guia de valores CRF
| CRF | Qualidade | Quando usar |
|---|---|---|
| 18 | Excelente (quase lossless) | Arquivar vídeos importantes |
| 23 | Boa (padrão) | Uso geral |
| 28 | Razoável | Compartilhar online, redes sociais |
| 33 | Baixa | Previews, 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
| Preset | Velocidade | Tamanho do arquivo |
|---|---|---|
ultrafast | Muito rápida | Maior |
fast | Rápida | Maior |
medium | Normal (padrão) | Normal |
slow | Lenta | Menor |
veryslow | Muito lenta | Menor 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âmetro | Significado |
|---|---|
-vf scale=-2:720 | -vf significa "video filter", scale redimensiona o vídeo |
-2 | Calcula a largura automaticamente, mantendo o aspect ratio |
720 | Altura alvo em pixels (720p) |
Resoluções comuns:
scale=-2:2160→ 4Kscale=-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âmetro | Significado |
|---|---|
-c:a aac | -c:a significa "codec de áudio", aac é um formato comum |
-b:a 128k | Bitrate de áudio: 128 Kilobits/segundo |
Guia de bitrate de áudio:
320k→ Música de alta qualidade192k→ Boa qualidade128k→ 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
| Objetivo | Comando |
|---|---|
| Compressão básica | ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4 |
| Arquivo menor | ffmpeg -i input.mp4 -c:v libx264 -crf 28 output.mp4 |
| Qualidade maior | ffmpeg -i input.mp4 -c:v libx264 -crf 18 output.mp4 |
| Redimensionar para 720p | ffmpeg -i input.mp4 -vf scale=-2:720 -c:v libx264 -crf 23 output.mp4 |
| Com áudio | ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4 |