Compresión de vídeo con FFmpeg: CRF vs CBR vs VBR explicados

Control de bitrate: empezando por lo básico

Para entender la diferencia entre CRF, CBR y VBR, primero hay que hablar del bitrate.

El bitrate es la cantidad de datos de vídeo producida por unidad de tiempo, generalmente medida en kbps (kilobits por segundo) o Mbps (megabits por segundo). Determina directamente la nitidez, la fluidez y el tamaño final del archivo de vídeo. Con la misma resolución, frecuencia de fotogramas y códec, un bitrate más alto preserva más detalles pero produce un archivo más grande, mientras que un bitrate más bajo reduce el tamaño del archivo a costa de desenfoque, bandas de color y artefactos de bloqueo.

Entonces, ¿por qué necesitamos controlar el bitrate? La razón es que la complejidad de los fotogramas de vídeo cambia constantemente. Los fondos estáticos y las áreas de color uniforme pueden reconstruirse sin pérdida con muy pocos datos, mientras que el movimiento rápido, las texturas ricas y los cambios bruscos requieren muchos más bits para mantenerse nítidos. Si fuerza un bitrate constante en todo el vídeo, las escenas simples desperdician espacio de almacenamiento y las escenas complejas se quedan sin bits y se degradan visiblemente.

El objetivo central del control de bitrate es asignar bits a cada fotograma de forma inteligente, dentro de un presupuesto fijo de almacenamiento o ancho de banda, y encontrar el mejor equilibrio entre calidad y tamaño. Los tres modos —CRF, CBR y VBR— son esencialmente tres estrategias de asignación diferentes.

Los tres modos de control de bitrate explicados

CRF (Constant Rate Factor)

El principio rector del CRF es una calidad constante. El codificador asigna los bits dinámicamente según la complejidad de cada fotograma: gasta menos bits en escenas simples y más bits en escenas complejas, manteniendo la calidad percibida uniforme durante todo el vídeo. Tanto si el fotograma es un paisaje inmóvil como una secuencia de acción, el espectador percibe más o menos la misma calidad visual.

El CRF se controla mediante un entero entre 0 y 51 (para los codificadores x264 y x265). Un valor más bajo significa mayor calidad y un archivo más grande; un valor más alto significa menor calidad y un archivo más pequeño. Un valor de 0 produce una codificación sin pérdida, 51 es la calidad más baja y 23 suele ser el punto de referencia predeterminado visualmente sin pérdida.

La mayor ventaja del CRF es la simplicidad combinada con calidad estable. No necesita fijar un bitrate objetivo por adelantado, porque el codificador distribuye los bits automáticamente según la complejidad de la escena. Por ello, el CRF es el modo preferido para la mayoría de tareas no en tiempo real, como la compresión sin conexión, el almacenamiento de archivos y la publicación web.

CBR (Constant Bitrate)

El CBR mantiene el bitrate fijo durante toda la duración. No importa lo compleja o simple que sea una escena, el codificador genera la misma cantidad de datos por segundo. Esto significa que en las escenas simples los bits asignados son redundantes o incluso desperdiciados, mientras que en las escenas complejas los bits pueden ser insuficientes, provocando artefactos visibles.

La fortaleza del CBR reside en su previsibilidad y compatibilidad con el búfer. Estas propiedades lo hacen especialmente adecuado para la transmisión en directo y la transmisión de vídeo en tiempo real, donde la estabilidad del ancho de banda es crítica. En estos escenarios el ancho de banda de red suele ser fijo, y las grandes fluctuaciones de bitrate pueden desbordar el búfer o congestionar la red, provocando tartamudeo. El CBR sacrifica parte de la calidad a cambio de estabilidad de transmisión.

VBR (Variable Bitrate)

El VBR permite que el bitrate fluctúe dentro de un rango especificado. El codificador pondera la complejidad de la escena y una calidad objetivo, ajustando el bitrate entre un mínimo y un máximo configurados. El VBR normalmente requiere fijar un bitrate objetivo (o calidad objetivo) junto con límites superior e inferior, lo que lo hace más flexible que el CBR a la vez que añade una restricción de bitrate que el CRF no tiene.

El VBR es común en escenarios que necesitan controlar el tamaño global del archivo preservando la calidad, como la codificación por segmentos de streaming. Cabe destacar que el codificador x264 también ofrece un modo VBR de 2 pasadas: la primera pasada recorre todo el vídeo para analizar la distribución de complejidad, y la segunda pasada asigna los bits con precisión basándose en ese análisis. Este modo controla el tamaño objetivo con precisión a la vez que optimiza la distribución de bits, pero tarda aproximadamente el doble que una codificación de una pasada, lo que lo hace ideal para tareas sin conexión con requisitos estrictos de tamaño.

Comparación de las fluctuaciones de bitrate entre los tres modos

El gráfico siguiente visualiza el comportamiento de los tres modos en el mismo vídeo. El CBR es una línea horizontal plana, mientras que el CRF y el VBR suben y bajan con la complejidad de la escena. El CRF fluctúa con más libertad, mientras que el VBR está limitado por su suelo y techo configurados.

FFmpeg video compression workflow: command-line parsing, decoding, encoding, output

Cómo afecta el valor CRF a la calidad y el tamaño

Elegir el valor CRF adecuado es el paso más importante al usar el modo CRF. El gráfico siguiente muestra cómo cambian la calidad y el tamaño del archivo a medida que el valor CRF pasa de 18 a 30. Un CRF más bajo significa mayor calidad y un archivo más grande, mientras que un CRF más alto significa un archivo más pequeño a costa de calidad.

FFmpeg CRF bitrate control strategy diagram: constant quality vs variable bitrate compression effect comparison

Ejemplos de comandos FFmpeg: tres escenarios habituales

Aquí hay tres escenarios típicos de compresión, cada uno con un equilibrio distinto entre calidad y tamaño.

Escenario 1: Correo electrónico (H.264 + 720p + CRF 28)

Los adjuntos de correo electrónico suelen tener límites de tamaño, por lo que el vídeo debe comprimirse de forma agresiva. Una resolución de 720p con CRF 28 mantiene el archivo pequeño y aún visible.


ffmpeg -i input.mp4 \
  -c:v libx264 -preset medium -crf 28 \
  -vf "scale=-2:720" \
  -c:a aac -b:a 128k \
  output.mp4

Escenario 2: Publicación web (H.264 + 1080p + CRF 26)

El vídeo web necesita equilibrar nitidez con velocidad de carga. 1080p con CRF 26 es una combinación habitual que además ofrece la mayor compatibilidad.


ffmpeg -i input.mp4 \
  -c:v libx264 -preset medium -crf 26 \
  -vf "scale=-2:1080" \
  -c:a aac -b:a 128k \
  output.mp4

Escenario 3: Archivo (H.265 + resolución original + CRF 20)

El archivado prioriza la calidad y la eficiencia de compresión. Usando el codificador H.265 manteniendo la resolución original, CRF 20 logra una calidad casi visualmente sin pérdida a un tamaño más pequeño que H.264.


ffmpeg -i input.mp4 \
  -c:v libx265 -preset medium -crf 20 \
  -c:a aac -b:a 192k \
  output.mp4

Una nota rápida sobre los parámetros clave: -c:v define el códec de vídeo, donde libx264 corresponde a H.264 y libx265 a H.265; -preset intercambia velocidad de codificación por eficiencia de compresión, donde los presets más lentos ofrecen mejor compresión; -crf define el nivel de calidad; -vf "scale=-2:720" escala la altura a 720 píxeles calculando el ancho proporcionalmente y manteniéndolo par; y -c:a aac -b:a 128k codifica el audio como AAC a 128 kbps.

Guía de selección del valor CRF

La tabla siguiente lista los rangos de CRF habituales para referencia rápida. En la práctica, comience por la mitad del rango recomendado para su escenario, codifique un fragmento corto de prueba y ajuste a partir de ahí.

Rango CRFNivel de calidadTamaño del archivoCaso de uso
18-22Alta calidadGrandeArchivado, copia de seguridad de origen, reproducción de alta calidad
23-26EstándarModeradoPublicación web, streaming bajo demanda, reproducción móvil
27-30Compresión extremaPequeñoCorreo electrónico, mensajería instantánea, entrega con ancho de banda limitado

Comparación CRF vs CBR vs VBR

La tabla siguiente compara los tres modos en calidad, tamaño, velocidad de codificación y caso de uso para ayudarle a elegir según sus necesidades.

AspectoCRFCBRVBR
Estabilidad de calidadAlta (uniforme en todo)Baja (artefactos en escenas complejas)Media (limitada por los límites de bitrate)
Tamaño del archivoImpredeciblePredecibleAproximadamente predecible (2 pasadas más preciso)
Velocidad de codificaciónRápida (una pasada)RápidaMás lenta (2 pasadas, aproximadamente el doble de tiempo)
Caso de usoCompresión sin conexión, almacenamiento, publicación webStreaming en directo, transmisión en tiempo realEntrega por streaming, tareas con restricción de tamaño

Preguntas frecuentes

1. ¿Cómo elijo el valor CRF adecuado?

No existe un valor CRF universalmente correcto; depende de su equilibrio entre calidad y tamaño. Un buen punto de partida es CRF 23-26. Si la calidad se ve bien, aumente gradualmente el valor para reducir más el archivo; si la calidad es insuficiente, disminuya el valor. Para necesidades de archivado, 18-22 funciona bien, y para entrega sensible al tamaño, 27-30 es apropiado.

2. ¿Qué hago si el vídeo comprimido se ve borroso?

El desenfoque suele deberse a un bitrate insuficiente o a una reducción de resolución demasiado agresiva. Compruebe algunas cosas: primero, baje el valor CRF, por ejemplo de 28 a 24, para dar más bits al codificador; segundo, verifique que no haya reducido demasiado la resolución y súbala si es necesario; tercero, cambie a un preset más lento (como slow o slower) para cambiar tiempo de codificación por mejor calidad de compresión; cuarto, confirme que no haya aplicado filtros de reducción de ruido o desentrelazado demasiado fuertes, que también pueden suavizar la imagen si se configuran mal.

3. ¿Debo elegir H.264 o H.265?

H.264 tiene la mayor compatibilidad, soportado por prácticamente todos los dispositivos, sistemas operativos y navegadores modernos, lo que lo hace ideal para una distribución amplia como la reproducción web y móvil. H.265 (HEVC) es más eficiente, produciendo archivos aproximadamente 30-50% más pequeños que H.264 con la misma calidad, pero se codifica más despacio y no es compatible con algunos dispositivos y navegadores antiguos. Si su objetivo es el archivado o la distribución a dispositivos modernos, prefiera H.265; si la máxima compatibilidad es la prioridad, elija H.264.

Resumen

El control de bitrate es el corazón de la compresión de vídeo, y elegir el modo adecuado suele importar más que ajustar parámetros específicos. El CRF prioriza la calidad constante y es la primera opción para la compresión sin conexión y el almacenamiento de archivos; el CBR prioriza la estabilidad del bitrate y es adecuado para el streaming en directo y la transmisión en tiempo real; el VBR establece un equilibrio entre ambos y encaja en escenarios de distribución con restricciones de tamaño global.

En la práctica, dominar tres puntos cubre la mayoría de las necesidades: elegir el modo de control de bitrate que coincida con su escenario, fijar un valor CRF sensato y ajustarlo tras una codificación de prueba, y elegir entre H.264 y H.265 según los requisitos de compatibilidad. Combinado con el ajuste preset para intercambiar velocidad por eficiencia, FFmpeg le permite producir vídeos que equilibran calidad y tamaño en cualquier escenario.

Lecturas relacionadas:

¿Necesita comprimir archivos? Pruebe SmartSlim

Basado en un motor de compresión Rust de desarrollo propio, soporta más de 40 formatos en 10 categorías como PDF, imágenes, vídeo, Office y OFD. La compresión se realiza localmente y los datos no salen de su dominio.