Codificación two-pass en FFmpeg
Elige el tamaño objetivo, conviértelo en un bitrate y ejecuta dos pasadas. Ejemplo: un vídeo de 10 minutos que debe caber en 100 MB: 100 × 8.000 ÷ 600 s ≈ 1.333 kbps en total; restando 128 kbps de audio quedan unos 1.200 kbps para el vídeo.
ffmpeg -y -i input.mkv -c:v libx264 -preset medium -b:v 1200k -pass 1 -an -f null /dev/null— pasada 1 (solo análisis). En Windows, escribeNULen lugar de/dev/null.ffmpeg -i input.mkv -c:v libx264 -preset medium -b:v 1200k -pass 2 -c:a aac -b:a 128k output.mp4— pasada 2 (la codificación real).
Ambas pasadas deben usar los mismos ajustes de vídeo. FFmpeg escribe el análisis en ffmpeg2pass-0.log en la carpeta actual; la pasada 2 lo lee y después puedes borrarlo.
La diferencia fundamental
CRF y la codificación two-pass resuelven el mismo problema — equilibrar calidad y tamaño de archivo — pero desde direcciones opuestas:
- CRF (Constant Rate Factor): «Quiero este nivel de calidad. Dame el tamaño de archivo que haga falta para conseguirlo». Tú controlas la calidad; el tamaño del archivo es la variable.
- Two-pass: «Quiero este tamaño de archivo (bitrate objetivo). Dame la mejor calidad que quepa». Tú controlas el tamaño del archivo; la calidad es la variable.
| Característica | CRF | Two-Pass |
|---|---|---|
| Tú controlas | Nivel de calidad (número CRF) | Bitrate objetivo / tamaño de archivo |
| Variable | Tamaño de archivo | Calidad |
| Pasadas | 1 (pasada única) | 2 (análisis + codificación) |
| Velocidad | 1x (referencia) | ~2x más lento |
| Predicción del tamaño | Impredecible | Predecible |
| Consistencia de calidad | Calidad constante por fotograma | Distribución óptima de bits |
Cómo funciona CRF
La codificación CRF es un proceso de una sola pasada. El codificador procesa cada fotograma y pregunta: "¿Cuántos bits necesito para lograr este nivel de calidad en este fotograma concreto?"
- Los fotogramas de alta complejidad (explosiones, movimiento rápido) reciben más bits
- Los fotogramas de baja complejidad (planos estáticos, títulos) reciben menos bits
- La calidad se mantiene constante; el bitrate fluctúa
El resultado es un archivo de bitrate variable (VBR) donde cada fotograma recibe exactamente los bits que necesita — sin desperdicio en escenas simples, sin escasez en las complejas. Por eso CRF produce la relación óptima calidad-tamaño para codificación offline.
Cómo funciona two-pass
La codificación two-pass procesa el vídeo dos veces:
- Pasada 1 (Análisis): El codificador recorre todo el vídeo sin generar salida. Construye un mapa de complejidad fotograma a fotograma — qué escenas son simples, cuáles son complejas, dónde ocurren los cambios de escena.
- Pasada 2 (Codificación): Usando el análisis de la pasada 1, el codificador distribuye el bitrate objetivo de forma óptima entre todos los fotogramas. Las escenas complejas reciben una mayor parte del presupuesto de bitrate; las simples reciben menos.
El resultado: un archivo que alcanza con precisión el bitrate objetivo distribuyendo la calidad de la forma más uniforme posible entre todas las escenas.
Comparación de calidad
Con ajustes razonables, CRF y two-pass producen una calidad prácticamente idéntica. Las diferencias son sutiles:
- Ventaja de CRF: Cada fotograma recibe exactamente los bits que necesita. Ningún fotograma queda sin recursos. CRF puede producir una calidad promedio ligeramente mejor porque no está limitado por un presupuesto de bitrate.
- Ventaja de two-pass: Mejor distribución de bits para contenido extremo (vídeos largos con complejidad muy variable). La pasada de análisis ayuda al codificador a prepararse para las escenas complejas que vienen.
En la práctica, la diferencia de calidad entre CRF y una codificación two-pass bien ajustada es insignificante para la mayoría del contenido. Necesitarías un análisis VMAF fotograma a fotograma para detectar diferencias.
Comparación de velocidad
La diferencia de velocidad es sencilla:
- CRF: 1x tiempo de codificación (una sola pasada por el vídeo)
- Two-pass: ~1,7–2x tiempo de codificación (la primera pasada es rápida porque no genera salida, pero igualmente lleva tiempo)
Para un vídeo de 10 minutos a 1080p en una CPU moderna:
- CRF medium: unos 10 minutos a una velocidad de codificación de ~30 fps (18.000 fotogramas ÷ 30 fps = 600 s)
- Two-pass medium: unos 17–20 minutos, ya que la primera pasada es más rápida que la segunda. Un preset más rápido acorta ambas pasadas; nuestra guía de presets de FFmpeg: velocidad frente a tamaño de archivo muestra el equilibrio.
Cuándo usar CRF
CRF es la mejor opción para casi todos los escenarios habituales:
- Conversión de formato: MKV a MP4, MOV a MP4, cualquier conversión de formato donde quieras la mejor calidad
- Archivo personal: Almacenar tu videoteca con calidad constante
- Subida a la web: YouTube, redes sociales y la mayoría de plataformas aceptan archivos de bitrate variable
- Compartir: Cuando el tamaño del archivo no necesita ser exacto, CRF ofrece la calidad óptima
- Procesamiento por lotes: Un solo ajuste (CRF 23) funciona bien para todo tipo de contenido
Por eso nuestro convertidor usa CRF — produce la mejor calidad sin que los usuarios tengan que calcular bitrates objetivo.
Cuándo usar two-pass
La codificación two-pass es la mejor opción cuando el tamaño del archivo debe ser predecible:
- Autoría de DVD/Blu-ray: el contenido debe caber en la capacidad concreta del disco
- Streaming con ancho de banda limitado: el streaming con bitrate adaptativo (HLS/DASH) requiere objetivos de bitrate precisos para cada nivel de calidad
- Límites de tamaño de archivo: plataformas con límites de subida estrictos (Discord, 10 MB sin Nitro; correo, 25 MB) en las que necesitas garantizar que el resultado quepa
- Radiodifusión profesional: los flujos de trabajo de radiodifusión suelen exigir CBR u objetivos VBR precisos
Lo mejor de ambos: CRF limitado
Existe un enfoque híbrido llamado CRF limitado (calidad restringida) que combina las ventajas de ambos métodos:
ffmpeg -i input.mkv -c:v libx264 -crf 23 -maxrate 4000k -bufsize 8000k -c:a aac output.mp4
Esto le dice al codificador: «Busca la calidad de CRF 23, pero quédate en unos 4 Mbps o por debajo (promediado sobre el búfer de 8.000 kbits, unos 2 segundos)». En la práctica:
- Escenas simples: codificadas con calidad CRF 23 (muy por debajo de 4 Mbps)
- Escenas complejas: codificadas con calidad CRF 23 salvo que supere los 4 Mbps, en cuyo caso la calidad se reduce ligeramente para mantenerse dentro del límite
El CRF limitado es ideal para aplicaciones de streaming donde necesitas predecibilidad de ancho de banda sin sacrificar el enfoque de calidad primero de CRF.
VBR de 1 pasada vs 2 pasadas en Premiere Pro, Media Encoder y HandBrake
- Premiere Pro y Adobe Media Encoder: en los ajustes de exportación H.264, Codificación de velocidad de bits ofrece CBR, VBR, 1 pasada y VBR, 2 pasadas. VBR, 2 pasadas tarda más y suele repartir mejor los bits con el mismo objetivo.
- HandBrake: en la pestaña Video, cambia de Constant Quality a Avg Bitrate y activa el two-pass (llamado 2-Pass o Multi-Pass Encoding, según la versión).
- Regla general: con bitrates holgados, 1 pasada y 2 pasadas se ven igual; la segunda pasada compensa cuando el bitrate es justo para el contenido.