FFmpeg 8.0 “Huffman”: novedades, códecs Vulkan y mejoras en rendimiento
Tras casi un año de desarrollo y con varios retrasos derivados de la modernización de su infraestructura, se dio a conocer el lanzamiento de la nueva versión de FFmpeg 8.0 “Huffman”, una de las versiones más relevantes del reconocido paquete multimedia.
La nueva versión no solo introduce mejoras técnicas de alto nivel, sino que también refuerza su infraestructura de desarrollo con la implementación de un nuevo forge en code.ffmpeg.org, basado en Forgejo, además de la actualización completa de sus servidores de listas de correo.
Principales novedades de FFmpeg 8.0 “Huffman”
Uno de los avances más llamativos de FFmpeg 8.0 es la incorporación de códecs basados en la API gráfica Vulkan 1.3, que aprovechan los sombreadores de cómputo para obtener un rendimiento superior. Gracias a esta tecnología, la codificación y decodificación de FFV1 y la decodificación de ProRes RAW alcanzan nuevas cotas de eficiencia mediante la paralelización de operaciones.
Los desarrolladores también trabajan en la implementación de Vulkan para ProRes y VC-2, actualmente en fase de prueba. Además, Vulkan se emplea en la aceleración de hardware para la decodificación de VP9, VVC (VAAPI) y H.264 (OpenHarmony), así como en la codificación de AV1 y H.264.
Nuevos decodificadores y codificadores
Otra de las mejoras que presenta esta nueva versión de FFmpeg 8.0, es la compatibilidad ampliada con los nuevos formatos y entre los nuevos decodificadores se encuentran APV (Advanced Professional Video), ProRes RAW, RealVideo 6.0, Sanyo LD-ADPCM, Xbox ADPCM IMA y G.728. Asimismo, se ha implementado un codificador para APV, apoyado en la biblioteca libopenapv.
El decodificador de VVC (H.266) ahora soporta extensiones como IBC (Copia entre Bloques), SSC (Codificación de Contenido de Pantalla), ACT (Transformación de Color Adaptativa) y el modo de paleta. También se añadió una versión del decodificador basada en VAAPI y la posibilidad de usar VVC dentro de contenedores Matroska.
Otro punto destacado es la codificación de canal alfa en libx265, el soporte para JPEG XL animado mediante libjxl y la mejora del manejo de audio y vídeo multipista en FLV v2.
Optimización y nuevas funciones
El rendimiento general también recibe mejoras gracias a optimizaciones basadas en AVX-512, que aceleran notablemente ciertas operaciones de decodificación. La mejora es abrumadora: el nuevo código alcanza una aceleración de entre 23 y 28 veces más rápido en comparación con la versión en C básica, lo que representa uno de los incrementos de rendimiento más notables en la historia reciente de este proyecto.
El trabajo fue liderado por Niklas Haas, quien implementó la versión AVX-512 del filtro vf_bwdif. Gracias a este avance, los usuarios que procesan vídeos en procesadores Intel y AMD modernos con soporte AVX-512 verán reducidos de forma significativa los tiempos de renderizado y conversión de contenidos entrelazados.
En números concretos, la variante bwdif8_avx512 es 23.28 veces más rápida, mientras que bwdif10_avx512 alcanza una aceleración de 28,27 veces frente a la línea base en C. Incluso si se compara con la versión previamente optimizada con AVX2, el nuevo código casi duplica el rendimiento.
En el apartado de filtros, se incluyen novedades como Whisper, que integra reconocimiento automático de voz con redes neuronales, detección de color para rangos alfa, pad_cuda para añadir relleno con CUDA y scale_d3d11, que permite cambiar la escala de vídeos usando Direct3D 11.
Limpieza y modernización del proyecto
La versión 8.0 también marca el final de varias tecnologías consideradas obsoletas. Se elimina el soporte para versiones de OpenSSL anteriores a 1.1.0, se descontinúa el ensamblador yasm en favor de nasm, y los codificadores basados en OpenMAX quedan oficialmente obsoletos. Además, la verificación de certificados TLS ahora está habilitada de forma predeterminada, un cambio importante en materia de seguridad.
Finalmente para quienes estén interesados en conocer más al respecto sobre este nuevo lanzamiento, pueden consultar el registro completo de cambios en este enlace.
Descargar y obtener FFmpeg 8.0
Finalmente, para quienes quieran realizar la instalación o actualización de FFmpeg 8.0 deben saber que este paquete se encuentra en la mayoría de las distribuciones de Linux o si lo prefieren pueden descargar su código fuente para su compilación desde el siguiente enlace.
Y para realizar la instalación desde el código fuente, basta con ejecutar la secuencia de comandos ya conocidos:
./configure make make install
Para el caso de los que son usuarios de Ubuntu, Debian o cualquier otro derivado de estas distribuciones, basta con abrir una terminal y en ella ejecutar el siguiente comando:
sudo apt install ffmpeg