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.mp4Vamos analisar cada parte:
| Parâmetro | Significado |
|---|---|
ffmpeg | O 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.mp4 | O 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âmetro | Significado |
|---|---|
-c:v libx264 | -c:v significa "video codec", libx264 é o codificador H.264 |
-crf 23 | Nível de qualidade (0-51). Menor = melhor qualidade, arquivo maior |
Guia de Valores CRF
| CRF | Qualidade | Quando Usar |
|---|---|---|
| 18 | Excelente (quase sem perdas) | Arquivar vídeos importantes |
| 23 | Boa (padrão) | Uso geral |
| 28 | OK | Compartilhar online, redes sociais |
| 33 | Baixa | Pré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.mp4Valores 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| Preset | Velocidade | Tamanho do Arquivo |
|---|---|---|
ultrafast | Muito rápido | Maior |
fast | Rápido | Grande |
medium | Normal (padrão) | Normal |
slow | Lento | Menor |
veryslow | Muito lento | Menor 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âmetro | Significado |
|---|---|
-vf scale=-2:720 | -vf significa "video filter", scale redimensiona o vídeo |
-2 | Calcula automaticamente a largura para manter a proporção |
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 ainda mais o tamanho do 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 "audio codec", aac é um formato de áudio comum |
-b:a 128k | Bitrate de áudio: 128 Kilobits/segundo |
Guia de bitrate de áudio:
320k→ Música em alta qualidade192k→ Boa qualidade128k→ 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.mp4Menor 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.mp4Melhor 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.mp4Usando 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
| 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 |
| Maior qualidade | 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 |