Después de cinco meses de desarrollo, el paquete multimedia FFmpeg 7.0 está disponible, que incluye un conjunto de aplicaciones y una colección de bibliotecas para realizar operaciones sobre diversos formatos multimedia (grabación, conversión y decodificación de formatos de audio y video). El paquete se distribuye bajo las licencias LGPL y GPL, y el desarrollo de FFmpeg se lleva a cabo en paralelo con el proyecto MPlayer.
Entre los cambios añadidos en FFmpeg 7.0 se pueden destacar:
- En la utilidad de línea de comandos ffmpeg se garantizó la ejecución paralela de operaciones de descompresión/compresión de contenedores multimedia, decodificación, codificación y aplicación de filtros.
- Se implementó el soporte para la codificación y decodificación de video en el formato MPEG-5 (EVC - Essential Video Coding), utilizando la biblioteca externa libxevd.
- Se añadieron descompresores y compresores de contenedores multimedia (demuxer/muxer) para el formato QOA (Quite OK Audio), utilizado para la transmisión de audio sin pérdida de calidad. Se afirma que la decodificación de QOA es tres veces más rápida que Ogg-Vorbis, logrando una calidad y nivel de compresión más altos que ADPCM.
- Se añadieron descompresores y compresores de contenedores multimedia (demuxer/muxer) para el formato IAMF (Immersive Audio Model and Format), que define un contenedor para la difusión de sonido envolvente. El formato incluye la transmisión de información adicional necesaria para el funcionamiento de los algoritmos de recreación de la escena sonora y mezcla del sonido, y considera la difusión de señales sonoras en un espacio tridimensional para recrear un sonido lo más cercano posible al natural. Se garantiza el soporte para metadatos IAMF para los formatos MP4 y ISOBMFF.
- Se añadió un decodificador experimental para el formato VVC (Versatile Video Coding), también conocido como el estándar de compresión de video H.266, desarrollado conjuntamente por los grupos de trabajo MPEG (ISO/IEC JTC 1) y VCEG (ITU-T), con la participación de empresas como Apple, Ericsson, Intel, Huawei, Microsoft, Qualcomm y Sony. H.266 sustituye a H.265 (HEVC) y proporciona una alta eficiencia en la transmisión y almacenamiento de todas las resoluciones de pantalla (desde SD y HD hasta 4K y 8K), soporta video con rango dinámico expandido (HDR, High Dynamic Range) y video panorámico en 360 grados.
- Se implementó la posibilidad de utilizar la API D3D12VA (Direct 3D 12 Video Encoding) para la aceleración por hardware de la decodificación de formatos H264, HEVC, VP9, AV1, MPEG-2 y VC1.
- Se ha agregado soporte para la aceleración de hardware en la decodificación en la utilidad ffplay, utilizando la API Vulkan y libplacebo.
- Se ha añadido soporte para el protocolo Content URI utilizado en la plataforma Android.
- Se han aumentado los requisitos del entorno de compilación: ahora se necesita un compilador que soporte el estándar C11 para compilar FFmpeg. En una de las próximas versiones, se espera utilizar C17 como versión mínima soportada.
- Para los codificadores basados en QSV (Intel Quick Sync Video), el método de control de la tasa de bits predeterminado se ha cambiado de VBR (tasa de bits variable) a CQP (tasa de bits constante).
- Se ha agregado un nuevo descompresor de contenedores de medios DVD-Video, basado en el uso de las bibliotecas libdvdnav y libdvdread del proyecto VideoLAN.
- Se ha añadido la capacidad de enviar metadatos en paquetes (PacketTypeMetadata) a la implementación del formato flv.
- Se ha agregado el codificador DXV DXT1.
- Se ha añadido el decodificador LEAD MCMP.
- Se han añadido los empaquetadores de contenedores de medios (muxer) RCWT (Raw Captions with Time) y AEA.
- Para los formatos MP4 e ISOBMFF, se ha implementado la posibilidad de incluir metadatos AVE (Ambient Viewing Environment).
- Se ha implementado soporte para la tecnología AFGS1 (AOMedia Film Grain Synthesis 1), utilizada en la especificación AV1 Film Grain y destinada a mejorar la eficiencia de las imágenes granuladas.
- Se ha añadido soporte para imágenes estáticas (still) en los formatos HEIF y AVIF, así como imágenes mosaico estáticas.
- Para el formato AV1 se ha implementado el perfil Dolby Vision.
- Se ha asegurado el soporte para el paso de metadatos HDR10 al codificar a través de las bibliotecas libx264, libx265 y libsvtav1.
- Se han añadido optimizaciones para acelerar el trabajo con el formato HEVC en arquitecturas AArch64 y Loongarch. Se han realizado optimizaciones de rendimiento para acelerar la codificación y decodificación de los formatos AAC, FLAC, JPEG-2000, LPC, RV4.0, SVQ, VC1 y VP8 en sistemas con arquitectura RISC-V.
- Nuevos filtros:
- tiltandshift — transformación de video al estilo Tilt-Shift, donde la atención se centra en una parte específica de la imagen, mientras que el resto se desenfoca para crear una impresión de juguete.
- quirc — detección y decodificación de códigos QR utilizando la biblioteca libquirc.
- fsync — sincronización de cuadros de video basada en información de un archivo externo.
- aap — utiliza el algoritmo Affine Projection para determinar la similitud de fragmentos de audio.
- Se ha añadido un backend dnn para crear filtros que utilizan modelos de aprendizaje automático, cargados mediante libtorch.
- Se ha añadido el filtro de bitstream showinfo para la salida de información de depuración sobre los paquetes.
- Se ha añadido el controlador qrencodesrc para insertar códigos QR.
- En la herramienta ffmpeg se ha implementado el soporte para decodificadores loopback, se permite el uso de la opción «-bsf» para flujos de entrada y salida, y se han eliminado las opciones obsoletas «-psnr» y «-map_channel».
- En la herramienta ffprobe se ha implementado la opción «-show_stream_groups option» y se ha asegurado la salida de metadatos al usar la opción «-export_side_data film_grain».
Fuente: opennet.ru
