Comprimir vídeo sin perder calidad con FFmpeg: la guía completa
"Sin perder calidad" en vídeo digital significa "sin pérdida visualmente perceptible", no compresión matemáticamente lossless (que produce archivos enormes, ~10× mayor que el original). Esta guía cubre cómo reducir un vídeo al 30-50% de su tamaño manteniendo una calidad indistinguible al ojo humano, usando FFmpeg con los codecs y ajustes correctos.
Decisión 1: ¿Qué codec usar?
Tres opciones razonables en 2026:
| Codec | Tamaño relativo | Velocidad encoding | Compatibilidad |
|---|---|---|---|
| H.264 (libx264) | 100% (referencia) | Rápido | Universal — todo dispositivo desde 2010 |
| H.265 (libx265) | 50-70% | 3-5× más lento | Móviles modernos, Smart TVs, navegadores 2020+ |
| AV1 (libaom-av1, libsvtav1) | 35-50% | 10-30× más lento (libaom), 5× con SVT-AV1 | Navegadores 2023+, falta en TV antiguas |
Regla práctica:
- Para archivado personal o YouTube/Vimeo → AV1 con SVT-AV1 (mejor ratio tamaño/calidad)
- Para compartir por WhatsApp, email, plataformas variadas → H.265 (50% del tamaño con buen soporte)
- Para máxima compatibilidad (DVD playback, dispositivos antiguos) → H.264
Decisión 2: ¿Modo CRF o two-pass?
CRF (Constant Rate Factor) es el modo correcto el 95% de las veces. FFmpeg ajusta el bitrate frame a frame para mantener una calidad percibida constante:
# H.264 con CRF 23 (excelente calidad)
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset slow -c:a copy output.mp4
# H.265 con CRF 28 (~equivalente a CRF 23 en H.264, archivo 50% menor)
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset slow -c:a copy output.mp4
# AV1 con SVT-AV1 (más rápido que libaom-av1)
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 30 -preset 5 -c:a copy output.mp4
Two-pass solo es mejor cuando necesitas un tamaño final exacto (ej. cumplir con un límite de 100 MB para un upload):
# Pass 1 — analiza
ffmpeg -i input.mp4 -c:v libx264 -b:v 2M -pass 1 -an -f null /dev/null
# Pass 2 — codifica con info del pass 1
ffmpeg -i input.mp4 -c:v libx264 -b:v 2M -pass 2 -c:a copy output.mp4
Tabla de CRF de referencia
| CRF | H.264 | H.265 | Calidad percibida |
|---|---|---|---|
| 18 | Visualmente lossless | n/a | Indistinguible del original |
| 20 | Excelente | n/a | Indistinguible en visionado normal |
| 23 | Muy buena (default) | n/a | Compromiso ideal calidad/tamaño |
| 28 | Aceptable | Excelente | Pequeñas pérdidas en escenas complejas |
| 32 | Visiblemente comprimido | Aceptable | OK para streaming a baja resolución |
| 38 | Mala | Pobre | Solo para previews / proxies |
Conversión H.264 → H.265: si subías CRF 23 en H.264, en H.265 usa CRF 28 para calidad equivalente.
Decisión 3: ¿Bajar resolución también?
A veces la mayor reducción de tamaño viene de cambiar la resolución, no el bitrate. Tabla orientativa:
| Resolución original → destino | Reducción típica |
|---|---|
| 4K (3840×2160) → 1080p (1920×1080) | ~70% más pequeño |
| 1080p → 720p (1280×720) | ~55% más pequeño |
| 720p → 480p (854×480) | ~50% más pequeño |
Solo baja resolución si la audiencia no necesita la original (móvil = 1080p suficiente; TV grande = mantén 4K).
# Bajar a 1080p preservando aspect ratio
ffmpeg -i input.mp4 -vf scale=1920:-2 -c:v libx265 -crf 28 -preset slow -c:a copy output.mp4
# Bajar a 720p
ffmpeg -i input.mp4 -vf scale=1280:-2 -c:v libx265 -crf 28 -preset slow -c:a copy output.mp4
El -2 en lugar de -1 fuerza a que la altura sea múltiplo de 2 (requisito de H.264/H.265).
Audio: cuándo recodificar y cuándo copiar
Si el audio original ya está en AAC, MP3 o Opus a bitrate razonable, copia directamente sin recodificar:
-c:a copy
Si el audio es WAV/PCM (no comprimido) o estás reduciendo agresivamente el tamaño:
# AAC 128 kbps (estándar para vídeo web)
-c:a aac -b:a 128k
# Opus 128 kbps (mejor calidad/bit que AAC, soporte más nuevo)
-c:a libopus -b:a 96k
Ajustes preset: equilibrio velocidad vs eficiencia
H.264 y H.265 aceptan presets que controlan cuánto tiempo dedican a optimizar:
| Preset | H.264 vs medium |
H.265 vs medium |
|---|---|---|
ultrafast |
8× más rápido, 30% más grande | 10× más rápido, 40% más grande |
fast |
1.3× más rápido, 5% más grande | 1.5× más rápido, 8% más grande |
medium (default) |
Referencia | Referencia |
slow |
2× más lento, 5% más pequeño | 2× más lento, 10% más pequeño |
veryslow |
6× más lento, 8% más pequeño | 6× más lento, 15% más pequeño |
Para archivado: slow o veryslow. Para conversión rápida diaria: medium o fast. Nunca ultrafast salvo previews descartables.
Receta completa: archivado personal de vídeos
# Input típico: clip de móvil 4K H.264 ~500 MB, 5 minutos
# Objetivo: ~150 MB sin pérdida visible
ffmpeg -i clip.mp4 \
-c:v libx265 -crf 28 -preset slow \
-tag:v hvc1 \
-vf scale=-2:1080 \
-c:a aac -b:a 128k \
-movflags +faststart \
clip-archived.mp4
Banderas explicadas:
-tag:v hvc1— necesario para que iPhone/Apple TV reconozcan el H.265-vf scale=-2:1080— baja a 1080p (suficiente para visionado en cualquier pantalla doméstica)-movflags +faststart— mueve el moov atom al inicio del archivo, permite streaming sin descarga completa
Verificar el resultado
Antes de borrar el original, comprueba:
# Tamaño y bitrate
ffprobe -v quiet -show_format clip-archived.mp4 | grep -E 'size|bit_rate|duration'
# Compara visualmente abriendo ambos lado a lado en VLC o IINA
Una métrica objetiva útil es VMAF (Video Multimethod Assessment Fusion):
ffmpeg -i clip-archived.mp4 -i clip.mp4 \
-lavfi libvmaf -f null -
VMAF >90 = visualmente indistinguible. >80 = excelente. >70 = aceptable.
Errores comunes
- Re-codificar un vídeo ya muy comprimido — solo añade ruido sin reducir tamaño meaningfulmente. Si el bitrate del original ya es bajo (~1 Mbps en 1080p), no hay margen.
- Usar CRF 18 "por seguridad" — produce archivos casi tan grandes como el original sin ganancia visible.
- Subir el bitrate target — H.264 a 8 Mbps ya tiene ~95% de calidad perceptual; subir a 12 Mbps no se nota.
- Olvidar
-movflags +faststart— sin esto, el vídeo no streamea hasta descargar entero (mal para web). - Dejar
-preset mediumen archivado —slowahorra 5-10% más sin coste real para vos.
Conversiones relacionadas
- MOV a MP4 — paso previo si vienes de un iPhone
- AVI a MP4 — modernizar archivos antiguos antes de comprimir
- MKV a MP4 — cambiar contenedor sin recodificar
- MP4 a WebM — VP9/AV1 para streaming web
- MP4 a GIF — clips cortos donde la calidad importa menos
- MP4 a MP3 — extraer solo el audio si no necesitas vídeo