Un solo video 4K solía tardar 30 minutos en codificarse. Cambiar a codificación GPU lo redujo a 3 minutos. Esa fue mi experiencia, y cambió por completo cómo manejo el video.
FFmpeg usa la CPU por defecto. La codificación por CPU produce excelente calidad pero es lenta. Los codificadores GPU — NVENC de NVIDIA, QSV (Quick Sync Video) de Intel y AMF de AMD — sacrifican algo de margen de calidad por ganancias dramáticas de velocidad. Esta guía cubre cómo configurar cada uno, los comandos que realmente necesitas, y una comparación de rendimiento real para ayudarte a decidir cuál se adapta a tu flujo de trabajo.
Los límites de la codificación por CPU
Para entender por qué importa la codificación GPU, ayuda saber qué hace lenta la codificación por CPU.
Una CPU es un procesador de propósito general. Incluso los chips de gama alta alcanzan como máximo unas pocas docenas de núcleos. La codificación de video es una carga de trabajo masivamente paralela, y procesarla núcleo por núcleo lleva tiempo. Ejecutar x264 con el preset slow en un clip 4K puede tardar de 3 a 5 veces más que la duración real del video — eso no es inusual.
Las GPUs están construidas de forma diferente. Tienen miles de núcleos shader optimizados para computación paralela. Los codificadores GPU como NVENC van más allá descargando la compresión a silicio dedicado — un motor de codificación construido directamente en el chip — que opera independientemente de los núcleos shader y el uso de CPU.
La contrapartida es la eficiencia de compresión. El hardware de codificación dedicado ejecuta una versión simplificada del algoritmo de compresión comparado con lo que un codificador CPU puede ejecutar. Al mismo bitrate, la codificación por CPU generalmente gana en calidad. Cuánto importa esto depende de tu caso de uso — más sobre eso en una sección posterior.
Comparando los tres codificadores GPU
Aquí tienes una referencia rápida de lo que soporta cada codificador y dónde funciona.
| Codificador | Fabricante | Hardware objetivo | Nombres de códec en FFmpeg |
|---|---|---|---|
| NVENC | NVIDIA | GeForce GTX 16xx+, RTX 20xx+ | h264_nvenc / hevc_nvenc / av1_nvenc |
| QSV | Intel | iGPU (Gen 6+), Arc dGPU | h264_qsv / hevc_qsv / av1_qsv |
| AMF | AMD | Radeon RX 5000+ | h264_amf / hevc_amf / av1_amf |
Los tres funcionan en motores de codificación dedicados y dejan los núcleos de CPU libres para otro trabajo. Si tienes tanto una CPU Intel con gráficos integrados como una GPU NVIDIA dedicada, puedes ejecutar ambos codificadores simultáneamente en tareas separadas.
El soporte de codificación AV1 tiene requisitos de hardware que vale la pena mencionar: se necesitan NVIDIA RTX 4000+, Intel Arc y AMD RX 7000+. Las GPUs más antiguas están limitadas a H.264 y H.265.
NVIDIA NVENC: Configuración y uso
Verificar soporte
Comprueba si tu compilación de FFmpeg incluye NVENC:
ffmpeg -encoders | grep nvenc
Salida esperada:
V....D h264_nvenc NVIDIA NVENC H.264 encoder (codec h264)
V....D hevc_nvenc NVIDIA NVENC hevc encoder (codec hevc)
V....D av1_nvenc NVIDIA NVENC av1 encoder (codec av1)
Si no aparece nada, o la compilación de FFmpeg no tiene soporte NVENC o tu driver NVIDIA está desactualizado. Actualiza a la versión 550 o posterior del driver.
Codificación H.264 NVENC
ffmpeg -i input.mp4 \
-c:v h264_nvenc \
-preset p4 \
-cq 23 \
-b:v 0 \
-c:a copy \
output_nvenc_h264.mp4
Desglose de opciones:
-c:v h264_nvenc— selecciona el codificador NVENC H.264-preset p4— equilibrio calidad/velocidad de p1 (más rápido) a p7 (mejor calidad)-cq 23— modo de calidad constante; valores más bajos significan mayor calidad (18–28 es el rango práctico)-b:v 0— necesario para activar el modo CQ deshabilitando un bitrate objetivo
Codificación H.265 (HEVC) NVENC
Cuando necesitas archivos más pequeños a calidad equivalente, H.265 reduce el tamaño del archivo en aproximadamente un 40–50% comparado con H.264.
ffmpeg -i input.mp4 \
-c:v hevc_nvenc \
-preset p5 \
-cq 28 \
-tag:v hvc1 \
-c:a copy \
output_nvenc_hevc.mp4
La bandera -tag:v hvc1 mejora la compatibilidad de reproducción en dispositivos Apple (iPhone, Mac, Apple TV).
Límites de sesiones en GPUs GeForce
Las GPUs GeForce de consumo limitan las sesiones NVENC simultáneas a tres (sin parches de driver de terceros). Las tarjetas Quadro y RTX Professional no tienen tal límite. Si estás ejecutando codificaciones por lotes en múltiples procesos FFmpeg, ten esto en cuenta.
Intel QSV: Configuración y uso
Verificar soporte
ffmpeg -encoders | grep qsv
En Linux, QSV requiere el driver Intel Media VA. Instálalo en Ubuntu con:
sudo apt install intel-media-va-driver-non-free vainfo
vainfo
vainfo debería listar los perfiles de codificación/decodificación soportados. Si devuelve errores, el driver falta o tu kernel no reconoce la iGPU.
Codificación H.264 QSV
ffmpeg -i input.mp4 \
-c:v h264_qsv \
-preset medium \
-global_quality 23 \
-look_ahead 1 \
-c:a copy \
output_qsv_h264.mp4
-preset medium— QSV usa veryfast / faster / fast / medium / slow / veryslow-global_quality 23— el equivalente de CRF en QSV; controla el nivel de calidad-look_ahead 1— habilita el búfer de anticipación para mejorar la calidad con un ligero costo de velocidad
QSV es la mejor opción cuando no tienes GPU dedicada. Los gráficos integrados de Intel manejan la codificación con bajo consumo de energía, lo cual importa en portátiles y máquinas de formato compacto sin ventilador.
AMD AMF: Configuración y uso
Verificar soporte
ffmpeg -encoders | grep amf
En Windows, AMF funciona en cuanto se instala el driver Radeon — no se requieren pasos adicionales. En Linux, el soporte de AMF es limitado; la alternativa habitual es h264_vaapi o hevc_vaapi a través del driver Mesa.
Codificación H.264 AMF
ffmpeg -i input.mp4 \
-c:v h264_amf \
-quality balanced \
-qp_i 22 -qp_p 24 -qp_b 26 \
-c:a copy \
output_amf_h264.mp4
-quality balanced— preset de AMF: speed / balanced / quality-qp_i / -qp_p / -qp_b— parámetros de cuantización por tipo de fotograma para I, P y B frames
AMF actualmente va por detrás de NVENC y QSV en eficiencia de compresión. AMD lo está mejorando con cada generación de GPU, pero el manejo limitado de B-frames mantiene la calidad general por detrás. AMF es adecuado para captura de juegos y streaming en tiempo real; para archivado o masterización no es la primera opción.
Compromisos de calidad vs. velocidad
La desventaja central de la codificación GPU es que el silicio dedicado omite o simplifica los costosos pasos de compresión que realizan los codificadores CPU — estimación de movimiento avanzada, particionamiento exhaustivo de macrobloques y análisis multipasada. Al mismo valor CQ/QP, un codificador GPU producirá un archivo más grande o menor calidad visual que su contraparte CPU.
Una guía práctica de decisión:
| Caso de uso | Codificador recomendado |
|---|---|
| Captura de juegos en tiempo real / streaming | NVENC / QSV (prioridad velocidad) |
| Transcodificación para subida a YouTube | NVENC p5–p6 / QSV slow (equilibrado) |
| Creación de master de archivado | x264 / x265 slow (prioridad calidad) |
| Compresión de rip de Blu-ray | x265 veryslow / SVT-AV1 (prioridad calidad) |
| Conversión por lotes masiva | NVENC / QSV (prioridad rendimiento) |
Para codificación AV1 de alta eficiencia en CPU, consulta la guía de configuración óptima FFmpeg v8 + SVT-AV1.
Comparación de rendimiento
Los siguientes números provienen de codificar un clip fuente único 4K 30fps (10 minutos) en Windows 11 con un Core i9-13900K, RTX 4080 y 32 GB de RAM.
| Codificador | Preset | Tiempo de codificación | Tamaño de salida | Puntuación VMAF |
|---|---|---|---|---|
| x264 | slow | 28m 14s | 2.1 GB | 94.2 |
| x265 | slow | 41m 03s | 1.2 GB | 94.8 |
| h264_nvenc | p5 | 2m 41s | 2.6 GB | 91.3 |
| hevc_nvenc | p5 | 2m 58s | 1.5 GB | 91.7 |
| h264_qsv | medium | 3m 22s | 2.8 GB | 90.1 |
| h264_amf | balanced | 3m 08s | 2.9 GB | 89.4 |
VMAF es la métrica de calidad perceptual de Netflix (0–100, mayor es mejor). Estos son números de referencia solamente. Tus resultados variarán significativamente según el contenido fuente y la generación de GPU.
Para hacer benchmark de tu propio sistema, añade -benchmark a cualquier comando FFmpeg:
ffmpeg -i input.mp4 -c:v h264_nvenc -preset p5 -cq 23 -b:v 0 -c:a copy output.mp4 -benchmark
La bandera imprime el tiempo de CPU y el tiempo del sistema al final de la ejecución. La velocidad de codificación en múltiplos de tiempo real aparece en el log como speed=.
Conclusión
La codificación GPU tiene más sentido cuando la velocidad importa más que la máxima eficiencia de compresión. NVENC es la opción más sólida en general — lidera en calidad, velocidad y soporte del ecosistema. QSV se gana su lugar en portátiles y máquinas con restricciones de energía donde una GPU dedicada no es una opción. AMF funciona bien para captura de juegos y streaming en Windows, aunque todavía va por detrás de los otros en calidad de compresión.
Para archivado a largo plazo y masterización profesional, la codificación por CPU sigue siendo la respuesta correcta. Pero para conversión por lotes, grabación en tiempo real y cualquier situación donde el rendimiento importa, cambiar a un codificador GPU es uno de los cambios de mayor impacto que puedes hacer en tu flujo de trabajo con FFmpeg.
Si aún no has instalado FFmpeg, empieza con la guía de instalación de FFmpeg.