Oferta de HalloweenTruco o trato: ¡arregla el vídeo!Los tres planes bajan. La licencia perpetua ahorra $30Hasta el 2 de nov., 23:59 (hora del Pacífico)

Ver precios

Decodificación y codificación de vídeo por hardware en Windows y Mac: D3D11, CUDA, Vulkan, OpenGL y Metal

Cómo funcionan NVDEC, NVENC, Quick Sync, AMF, D3D11VA, Vulkan Video y VideoToolbox, qué es una cadena GPU sin copias y cuándo compensa codificar por GPU.

Lo esencial

La decodificación y la codificación de vídeo por hardware ceden el trabajo pesado del códec a motores de función fija de la GPU en lugar de a la CPU. En Windows, las aplicaciones llegan a esos motores mediante D3D11VA, D3D12, el SDK de NVIDIA basado en CUDA, AMD AMF, Intel oneVPL o Vulkan Video; en un Mac, mediante VideoToolbox. El resultado es menos carga de CPU, exportaciones más rápidas y fotogramas que pueden quedarse en la memoria de la GPU.

  • Las GPU llevan motores de vídeo dedicados (NVDEC y NVENC de NVIDIA, Quick Sync de Intel, VCN de AMD, el motor multimedia de Apple) que decodifican y codifican al margen de los núcleos gráficos.
  • Windows llega a ellos a través de varias API: D3D11VA y vídeo de D3D12, el SDK de NVIDIA basado en CUDA, AMD AMF, Intel oneVPL y Media SDK, y Vulkan Video. Los Mac usan VideoToolbox.
  • La ganancia real suele ser una menor carga de CPU: en nuestra prueba, decodificar H.264 en 4K por hardware consumió en torno a un 95 % menos de tiempo de CPU que hacerlo por software.
  • La codificación por hardware es rápida, pero gasta más bits para la misma calidad. Nuestra codificación HEVC por GPU igualó la puntuación VMAF de x265 3,3 veces más rápido, con un 15 % más de bits.
  • Una cadena sin copias mantiene los fotogramas en la memoria de la GPU entre la decodificación, el procesado, la visualización y la codificación, con puentes entre D3D11, CUDA, OpenGL, Vulkan y Metal.

Qué le pasa a un fotograma

Toda aplicación de vídeo recorre las mismas cuatro etapas: decodificar el archivo comprimido en fotogramas, procesarlos (escalado, color, modelos de IA) y después mostrarlos en pantalla o codificarlos en un archivo nuevo. Cada etapa puede ejecutarse en la CPU o en la GPU, y cada traspaso entre ambas cuesta tiempo.

Los fotogramas son más grandes de lo que la mayoría imagina. Un fotograma 4K en 10 bits 4:2:0 (el formato P010 que usan las GPU) ocupa 3840 × 2160 × 1,5 muestras × 2 bytes, unos 24,9 MB. A 60 fotogramas por segundo, eso son 1,5 GB cada segundo, en cada sentido, si los fotogramas van y vienen entre la memoria del sistema y la de la GPU. Una cadena que decodifica, procesa y codifica en la GPU sin ese viaje de ida y vuelta se llama «sin copias» (zero-copy), y de ahí sale la mayor parte de la velocidad del software de vídeo actual.

Los motores de vídeo de su GPU

La decodificación y la codificación de vídeo no se ejecutan en los mismos núcleos que dibujan los juegos o ejecutan los modelos de IA. Las GPU llevan bloques de función fija separados para ellas:

FabricanteMotor de decodificaciónMotor de codificaciónAcceso mediante
NVIDIANVDECNVENCNVIDIA Video Codec SDK (con CUDA), D3D11VA, D3D12, Vulkan Video
IntelQuick Sync VideoQuick Sync VideoIntel oneVPL (Iris Xe y posteriores), Media SDK (GPU más antiguas), D3D11VA, D3D12, Vulkan Video
AMDVCNVCNAMD AMF, D3D11VA, D3D12, Vulkan Video
AppleMotor multimediaMotor multimediaVideoToolbox

NVIDIA lo dice claramente: sus GPU contienen decodificadores y codificadores por hardware separados de los núcleos CUDA. De ahí se siguen dos consecuencias. La primera, que decodificar y codificar por hardware apenas ralentiza el resto del trabajo de la GPU, así que un modelo de IA puede ejecutarse mientras el motor de vídeo decodifica los fotogramas siguientes. La segunda, que lo que un motor puede hacer está fijado en el silicio: la compatibilidad con códecs, profundidades de bits y formatos de croma depende de la generación de la GPU. La matriz de compatibilidad de NVIDIA, por ejemplo, presenta la codificación 4:2:2 como novedad de su generación Blackwell. Consulte la matriz de su fabricante antes de dar por hecho que un códec está acelerado.

Las API de decodificación y codificación en Windows y Mac

A un mismo motor de vídeo se suele poder llegar a través de varias API. Cada una tiene sus puntos fuertes:

APIPlataformaQué la distingue
D3D11VAWindowsIndependiente del fabricante, integrada en Windows, la forma más ampliamente compatible de decodificar en cualquier GPU; los fotogramas llegan a texturas D3D11 listas para mostrarse
Vídeo de D3D12WindowsLa misma idea independiente del fabricante sobre Direct3D 12, con control explícito de la memoria y las colas; también codifica
NVDEC y NVENC (Video Codec SDK)Windows, LinuxAcceso directo a los motores de NVIDIA, el juego completo de controles del codificador y fotogramas en memoria CUDA para procesarlos con CUDA
AMD AMFWindows, LinuxAcceso a los motores de vídeo de AMD y al cálculo en GPU para conversión y escalado
Intel oneVPL y Media SDKWindows, LinuxAcceso a Quick Sync: oneVPL para Iris Xe y posteriores, Media SDK para gráficos Intel más antiguos
Vulkan VideoWindows, Linux, otrasUn estándar multifabricante: decodificación, codificación, cálculo y gráficos en una sola API explícita
VideoToolboxmacOSEl framework de Apple para codificar y decodificar con aceleración por hardware en el motor multimedia del Mac

La decodificación y la codificación por software (libavcodec, x264, x265, SVT-AV1) siguen siendo la alternativa para todo lo que el hardware no puede asumir, y la referencia de calidad.

Las cinco cadenas: D3D11, CUDA, OpenGL, Vulkan y Metal

La decodificación produce fotogramas; la cadena decide dónde viven y quién trabaja con ellos a continuación. Cada API gráfica o de cálculo es un tipo de cadena distinto:

  • D3D11 es el caballo de batalla del vídeo en Windows. Los decodificadores escriben directamente en texturas D3D11, el procesador de vídeo las convierte y las escala, y la cadena de intercambio las muestra. Es madura, funciona en cualquier GPU con Windows y es el destino natural de los fotogramas decodificados por hardware.
  • CUDA es la plataforma de cálculo de NVIDIA. Los fotogramas decodificados por NVDEC pueden quedarse en memoria CUDA para procesarse y pasar directamente a NVENC. NVIDIA documenta una API de interoperabilidad CUDA–Direct3D 11, de modo que los resultados de CUDA pueden convertirse en texturas D3D11 sin una copia a través de la memoria del sistema.
  • OpenGL es la API gráfica más portable y sigue siendo habitual en reproductores y editores. En Windows comparte texturas con D3D11 mediante extensiones de interoperabilidad, WGL_NV_DX_interop2 de NVIDIA o la independiente del fabricante GL_EXT_memory_object_win32, que importa memoria D3D11 en OpenGL.
  • Vulkan es la API explícita moderna: gráficos, cálculo y, con Vulkan Video, decodificación y codificación en un mismo sitio, con cualquier fabricante. La extensión VK_KHR_external_memory_win32 permite que Vulkan comparta memoria con D3D11 en Windows.
  • Metal es la API de GPU de Apple para gráficos y cálculo en Apple silicon. Según Apple, la memoria unificada del chip permite que todas sus partes accedan a los mismos datos sin copiarlos entre bancos de memoria, así que un fotograma decodificado con VideoToolbox puede procesarse y mostrarse sin cruzar un bus.

Lo difícil no es ninguna API en concreto, sino las fronteras entre ellas. Un fotograma decodificado con CUDA pero mostrado con OpenGL necesita un puente, y un puente que recurre a la memoria del sistema tira por la borda la ventaja de decodificar en la GPU.

Qué mostraron nuestras pruebas

Probamos un portátil corriente: un Intel Core i7-1360P con gráficos integrados Intel Iris Xe, con FFmpeg 8.1. FFmpeg mostró tres vías por hardware en él: D3D11VA, D3D12VA y Vulkan.

Decodificación de 5 segundos de H.264 en 4K (121 fotogramas a 25 Mbps):

VíaTiempo de CPU (usuario y sistema)Tiempo real transcurrido
Software (libavcodec)4,45 s0,55 s
D3D11VA0,22 s0,40 s
D3D12VA0,30 s0,48 s
Vulkan0,25 s0,52 s

La CPU decodificó el H.264 deprisa repartiendo el trabajo entre muchos hilos, pero para ello consumió unos 4,5 segundos de tiempo de CPU. Las tres vías por hardware terminaron más o menos igual de rápido con en torno a un 95 % menos de tiempo de CPU, lo que deja el procesador libre para todo lo demás de la cadena.

Codificación de 5 segundos de metraje 1080p con mucho detalle, con un objetivo de 4 Mbps:

CodificadorTiempoBitrate realVMAF
x264, preset medium (software)3,7 s3,4 Mbps71,6
x265, preset medium (software)7,0 s3,5 Mbps72,5
H.264 en la GPU (D3D12)2,1 s4,3 Mbps67,2
HEVC en la GPU (D3D12)2,1 s4,1 Mbps72,8
Gráficos de barras: tiempo de CPU para decodificar H.264 en 4K según la vía, y tiempo de codificación con VMAF y bitrate para x264, x265 y H.264 y HEVC por GPU

El codificador HEVC de la GPU igualó la puntuación VMAF de x265 3,3 veces más rápido, pero necesitó en torno a un 15 % más de bits para conseguirlo; su codificador H.264 usó un 26 % más de bits que x264 y aun así puntuó por debajo. Es el intercambio de costumbre: los codificadores por hardware están afinados para la velocidad y el consumo, y los de software, para la calidad por bit. Con este controlador, los codificadores Vulkan Video de FFmpeg no llegaron a arrancar, un recordatorio de que la compatibilidad cambia según la GPU y el controlador. Cómo puntuamos la calidad de vídeo explica qué mide VMAF.

Cómo usa KwaFlux cada vía

KwaFlux no apuesta por una sola API. Su motor multimedia incluye un plugin para cada vía de decodificación y de codificación, y puentes entre las cadenas, de modo que puede elegir en cada equipo una ruta por hardware que funcione y mantener los fotogramas en la GPU.

Diagrama de la cadena de KwaFlux: decodificadores por hardware por orden de prioridad, puentes entre API en la memoria de la GPU, procesado con ONNX Runtime y DirectML o Core ML, visualización mediante D3D11, OpenGL, Vulkan o Metal, y codificadores por hardware por orden de prioridad
  • Ocho vías de decodificación, probadas por orden. En Windows, la configuración del motor prueba D3D11VA y luego D3D12VA, NVIDIA NVDEC, AMD AMF, Intel oneVPL, Intel Media SDK y Vulkan Video, y solo decodifica por software cuando ninguna de ellas puede con el archivo.
  • Seis vías de codificación. Para codificar, prueba NVIDIA NVENC, AMD AMF, Intel oneVPL, Media SDK y Vulkan Video antes del software. Su tabla de codificadores incluye también los codificadores VideoToolbox de Apple.
  • Cuatro backends de renderizado. La imagen se dibuja con D3D11, OpenGL, Vulkan o Metal. El valor por defecto, AUTO, deja que el motor elija, y un backend que la plataforma no admite vuelve a AUTO.
  • Puentes que evitan la memoria del sistema. Los fotogramas de NVDEC llegan a D3D11 mediante la interoperabilidad D3D11 de CUDA; D3D11 y OpenGL comparten texturas mediante WGL_NV_DX_interop2 o GL_EXT_memory_object_win32; Vulkan comparte memoria con D3D11 mediante VK_KHR_external_memory_win32; D3D12 y D3D11 intercambian fotogramas mediante handles DXGI compartidos. Cuando en un equipo OpenGL no dispone de un puente eficiente, el reproductor pasa a D3D11 en lugar de copiar cada fotograma.
  • Una GPU por trabajo. En portátiles con dos GPU, el motor empareja los adaptadores por su LUID, de modo que la decodificación, el procesado y la visualización no hacen rebotar fotogramas entre la GPU integrada y la dedicada.
  • Recuperación, no cierres inesperados. Si Windows reinicia el controlador gráfico (TDR), el reproductor reconstruye su dispositivo D3D11. Cada puente tiene una vía por CPU, y una exportación cuyo codificador de GPU no puede arrancar se codifica por software.
  • IA en cualquier GPU reciente. En Windows, el procesamiento de IA se ejecuta con ONNX Runtime y DirectML, que funciona en GPU DirectX 12 de Intel, AMD y NVIDIA. En macOS 13 o posterior, el componente de aceleración GPU ejecuta las funciones compatibles mediante Core ML de Apple. Qué GPU necesita y KwaFlux en Mac tratan la parte del hardware.

Dos ajustes le permiten orientarlo. Ajustes › Rendimiento › Decodificación por hardware activa o desactiva la decodificación por hardware (se aplica tras reiniciar), y Procesador de IA elige Automático, GPU o CPU para el trabajo de IA. En el Conversor, Conversión rápida › Aceleración por GPU codifica H.264 y HEVC en la tarjeta gráfica. Viene desactivada por defecto: KwaFlux advierte de que es más rápida, pero de calidad algo inferior a la codificación por software con el mismo bitrate, lo que coincide con nuestra prueba. Cada archivo muestra una insignia Codificado en GPU, o Codificado por software si el codificador de la GPU no pudo arrancar.

Cómo comprobar su propio equipo

Liste las vías por hardware que FFmpeg puede usar:

ffmpeg -hide_banner -hwaccels

Compare el tiempo de CPU de la decodificación por software y por hardware. La línea de -benchmark muestra el tiempo de usuario (utime), de sistema (stime) y real (rtime):

ffmpeg -hide_banner -benchmark -i input.mp4 -an -f null -
ffmpeg -hide_banner -benchmark -hwaccel d3d11va -hwaccel_output_format d3d11 -i input.mp4 -an -f null -

Codifique HEVC en la GPU mediante D3D12 y compárelo con x265 con el mismo objetivo:

ffmpeg -hide_banner -loglevel error -y -init_hw_device d3d12va=gpu -filter_hw_device gpu -i input.mp4 -vf "format=nv12,hwupload" -c:v hevc_d3d12va -rc_mode VBR -b:v 4M -maxrate 6M -c:a copy gpu_hevc.mp4
ffmpeg -hide_banner -loglevel error -y -i input.mp4 -c:v libx265 -preset medium -b:v 4M -c:a copy cpu_hevc.mp4

Después puntúe cada uno frente a la fuente. Descargue antes vmaf_v0.6.1.json del repositorio VMAF de Netflix en la misma carpeta, porque algunas compilaciones de FFmpeg no incluyen un modelo integrado:

ffmpeg -hide_banner -i gpu_hevc.mp4 -i input.mp4 -lavfi "[0:v][1:v]libvmaf=model=path=vmaf_v0.6.1.json" -f null -

Si la codificación por hardware puntúa cerca de la de software con un bitrate similar, úsela para borradores y para compartir rápido; reserve la codificación por software para las copias de archivo. Para elegir el códec en sí, consulte H.264 vs H.265 vs AV1.

Problemas habituales

ProblemaCausa probableSolución
Un archivo se decodifica por software aunque la decodificación por hardware esté activadaUn códec, profundidad de bits o formato de croma que el motor no admite (a menudo 4:2:2 o 4:4:4)Consulte la matriz de compatibilidad del fabricante; la decodificación por software sigue funcionando
Los archivos codificados por GPU se ven menos nítidosLos codificadores por hardware aprovechan peor los bitsSuba el bitrate o desactive la aceleración por GPU para las copias finales
La codificación por GPU recurre al softwareFormato no compatible, codificador ocupado o problema del controladorActualice el controlador gráfico; en el Conversor solo se codifican por GPU H.264 y HEVC
Tirones en un portátil con dos GPUFotogramas que pasan de la GPU integrada a la dedicadaEjecute la app en la GPU a la que está conectada la pantalla, o actualice los controladores
La pantalla parpadea y la imagen se recuperaWindows reinició el controlador gráfico (TDR)Actualice el controlador; reduzca otras cargas de GPU durante las exportaciones largas
La decodificación por hardware no parece más rápidaLa CPU decodifica este códec deprisaFíjese en la carga de CPU: la ganancia es el tiempo de CPU ahorrado

Lo que esto no puede hacer

  • La decodificación por hardware no mejora la imagen. Los decodificadores producen los mismos fotogramas que el software; solo cambia dónde se hace el trabajo.
  • La codificación por hardware no supera a un preset de software lento en calidad por bit. Gana en velocidad y consumo.
  • Ninguna GPU acelera todos los códecs. La compatibilidad la fijan la generación del chip y el controlador.
  • Trabajar sin copias exige hardware compatible. Cuando dos API o dos GPU no pueden compartir memoria, los fotogramas toman la ruta más lenta por la CPU.

Conclusión

La decodificación y la codificación por hardware tratan de dónde se hace el trabajo: en motores de función fija en lugar de en la CPU y, a ser posible, sin que los fotogramas salgan de la memoria de la GPU. Active la decodificación por hardware para trabajar con más fluidez, use la codificación por GPU cuando la velocidad importe más que exprimir hasta el último bit de eficiencia, y mida ambas en su propio equipo.

KwaFlux decodifica, procesa y codifica vídeo en su propia GPU, en el Conversor y en cada módulo de IA. Sus archivos multimedia no se suben para procesarlos. Funciona en Windows 10 (64 bits, versión 1809 o posterior), Windows 11 y macOS 12 o posterior en Apple Silicon. Importar archivos y explorar la app no requieren cuenta. Iniciar sesión con un plan de pago solo hace falta para exportar, convertir, reparar un archivo o descargar un archivo desde un enlace.

Pruebe con su propio metraje

Descargue KwaFlux y previsualice gratis los efectos en su propio material antes de pagar: sin cuenta, procesado en su GPU y sin subir sus archivos. Las vistas previas de vídeo duran 1, 3 o 5 segundos; las de estabilización, 5, 15 o 30 segundos.

Preguntas frecuentes

¿La codificación por hardware es peor que la de software?

Por lo general, con el mismo bitrate, sí. Los codificadores por hardware priman la velocidad y el consumo sobre la eficiencia, así que necesitan más bits para la misma calidad. En nuestra prueba, el codificador HEVC de la GPU igualó la puntuación VMAF de x265 3,3 veces más rápido, pero con en torno a un 15 % más de bits.

¿La decodificación por hardware hace que el vídeo se reproduzca más rápido?

A veces. Su ventaja principal es una menor carga de CPU: en nuestra prueba con H.264 en 4K, la decodificación por hardware consumió en torno a un 95 % menos de tiempo de CPU a una velocidad similar. Importa sobre todo con códecs exigentes, resoluciones altas y cuando la CPU está ocupada con otras tareas.

¿Qué diferencia hay entre D3D11VA y NVDEC?

Ambas usan el mismo hardware de decodificación en una GPU NVIDIA. D3D11VA es la interfaz de Microsoft, independiente del fabricante, y entrega los fotogramas como texturas D3D11; NVDEC es la interfaz propia de NVIDIA y entrega los fotogramas a CUDA para procesarlos. Las aplicaciones eligen según adónde vayan después los fotogramas.

¿Los gráficos integrados pueden decodificar y codificar vídeo?

Sí. Las GPU integradas de Intel incluyen Quick Sync Video, y los chips recientes de AMD y Apple llevan sus propios motores de vídeo. Nuestro portátil de prueba decodificó H.264 en 4K y codificó HEVC con sus gráficos Iris Xe. La compatibilidad con cada códec depende de la generación.

¿Por qué mi archivo 4:2:2 se decodifica por software?

Porque muchos motores de vídeo de consumo solo decodifican 4:2:0, el formato de la mayor parte del vídeo de entrega, y la compatibilidad con 4:2:2 solo llegó en algunas generaciones más recientes. La decodificación por software sigue funcionando, con un coste de CPU mayor. El submuestreo de croma, explicado repasa los formatos.

Fuentes

  1. NVIDIA, "NVIDIA Video Codec SDK" (hardware decoders and encoders separate from the CUDA cores; NVENC codecs; 4:2:2 encoding on Blackwell) (consultado el 2026-10-22)
  2. NVIDIA, "Video Encode and Decode GPU Support Matrix" (consultado el 2026-10-22)
  3. NVIDIA, CUDA Runtime API, "Direct3D 11 Interoperability" (consultado el 2026-10-22)
  4. Intel, "Intel Video Processing Library (Intel VPL)" (hardware decode, encode, and processing; VPL runtime for Iris Xe and newer, Media SDK for older graphics) (consultado el 2026-10-22)
  5. AMD GPUOpen, "Advanced Media Framework (AMF) SDK" (access to AMD video engines, compute shaders, and hardware accelerators) (consultado el 2026-10-22)
  6. Microsoft Learn, "Direct3D 11 Video APIs" (consultado el 2026-10-22)
  7. Microsoft Learn, "WDDM support for timeout detection and recovery" (TDR resets an unresponsive graphics card) (consultado el 2026-10-22)
  8. ONNX Runtime, "DirectML Execution Provider" (DirectML is a DirectX 12 library for machine learning across a broad range of hardware) (consultado el 2026-10-22)
  9. Khronos, "VK_KHR_external_memory_win32" reference page (consultado el 2026-10-22)
  10. Khronos OpenGL Registry, "WGL_NV_DX_interop2" (sharing Direct3D 10 and 11 resources with OpenGL) (consultado el 2026-10-22)
  11. Apple Developer, "Video Toolbox" (hardware-accelerated video encoding and decoding) (consultado el 2026-10-22)
  12. Apple Developer, "Metal" (graphics and compute on Apple GPUs) (consultado el 2026-10-22)
  13. Apple Newsroom, "Apple unleashes M1" (unified memory lets the chip's components access the same data without copying it between pools of memory) (consultado el 2026-10-22)
  14. Netflix, "VMAF" repository (vmaf_v0.6.1.json model) (consultado el 2026-10-22)
  15. FFmpeg documentation (`-hwaccel`, `-hwaccel_output_format`, `-init_hw_device`, `-benchmark`) (consultado el 2026-10-22)
  • IA local
  • mejorador de vídeo IA
  • calidad de vídeo

Autor y editor de KwaFlux. Los artículos los revisa el equipo editorial de KwaFlux y se basan en nuestras notas de investigación de producto y las especificaciones publicadas.