Después de un año de desarrollo, se presenta el lanzamiento de GStreamer 1.26, un conjunto de componentes multiplataforma para crear una amplia gama de aplicaciones multimedia, desde reproductores de medios y convertidores de archivos de audio/video, hasta aplicaciones de VoIP y sistemas de streaming. El código de GStreamer se distribuye bajo la licencia LGPLv2.1. Por separado, se desarrollan actualizaciones de los plugins gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, así como el envoltorio gst-libav y el servidor de streaming gst-rtsp-server. A nivel de API y ABI, la nueva versión es compatible hacia atrás con la rama 1.0. Las compilaciones binarias se prepararán pronto para Android, iOS, macOS y Windows (en Linux se recomienda usar paquetes de la distribución).
Mejoras clave de GStreamer 1.26:
- Se han añadido codificador y decodificador para el formato de video VVC (Versatile Video Coding), conocido también 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 alta eficiencia en la transmisión y almacenamiento de todas las resoluciones de pantalla (desde SD y HD hasta 4K y 8K), soporta video de rango dinámico extendido (HDR, High Dynamic Range) y video panorámico en 360 grados.
- Se han añadido codificador y decodificador para el estándar de codificación de video LCEVC (Low Complexity Enhancement Video Coding), que implementa una capa adicional con metadatos para mejorar la calidad de los códecs existentes H.26x y MP4/ISOBMFF.
- Se han añadido codificador y decodificador para el formato de imágenes JPEG XS, que se posiciona como un sistema ligero de codificación de imágenes, que asegura mínimas latencias durante la codificación y decodificación, y está orientado a optimizar la transmisión de secuencias de imágenes de muy alta calidad (hasta 8K). JPEG XS permite reducir significativamente el ancho de banda necesario sin pérdidas de calidad perceptibles para el ojo humano.
- Se ha añadido la capacidad de inserción y extracción de subtítulos ocultos para los formatos H.264 y H.265.
- Se ha mejorado el soporte para streaming adaptativo basado en los protocolos HLS (HTTP Live Streaming) y DASH (Dynamic Adaptive Streaming over HTTP). Se han añadido nuevos receptores de datos multimedia (sink) hlscmafsink y hlssink3 para la salida de fragmentos CMAF (fMP4) y MPEG-TS, así como hlsmultivariantsink para la salida variante.
- Se ha añadido soporte para los códecs H.266, JPEG XS, AV1 y VP9, así como para los metadatos SMPTE ST-2038 y ID3, en el empaquetador y desempaquetador de contenedores multimedia MPEG-TS.
- Se han añadido empaquetadores y desempaquetadores para el códec H.266/VVC en los formatos Matroska e ISO MP4. Se han añadido desempaquetadores para video en los formatos Hap y Lagarith en MP4.
- Se ha añadido soporte para SMPTE 2038, un sistema para adjuntar datos adicionales y metadatos a los contenedores multimedia.
- Se ha mejorado la integración con la API gráfica Vulkan. Se han ampliado las capacidades para la gestión de memoria, selección de espacio de color, gestión de dispositivos y funcionamiento en modo de pantalla completa. Se ha añadido soporte para las extensiones Vulkan destinadas a acelerar la decodificación de video H264 y H265. Se ha mejorado el rendimiento del codificador que utiliza Vulkan.
- Se ha mejorado la integración con OpenGL. Se ha añadido soporte para formatos adicionales de conversión de color y formatos de píxeles. Se ha añadido soporte para importar flujos utilizando DMABufs.
- Se ha mejorado la integración con la biblioteca Qt6 y QML.
- Se han ampliado los componentes para la integración con CUDA y el SDK de códec de video de NVIDIA. Se ha añadido un codificador para el formato AV1 basado en la API NVCODEC.
- Se ha implementado la biblioteca gst-d3d12 con codificadores y decodificadores basados en la API Direct3D 12.
- Se ha añadido soporte para el control de claves MIKEY en el lado del cliente en la pila RTSP.
- Se ha añadido soporte para la reorganización de canales de audio en audioconvert.
- Se ha añadido soporte para OpenGL/WGL en Windows en el complemento basado en la biblioteca GTK3.
- Se ha añadido soporte para los formatos JPEG y PNG en el elemento imagefreeze.
- Se ha implementado la posibilidad de reproducción en reversa en el elemento pitch.
- Se han mejorado los mecanismos de autenticación en servidores RTP en el elemento rtmp2. Se ha añadido soporte para la autenticación en CDN Limelight.
- Se han añadido elementos para acelerar la decodificación de H.266 (VVC), así como la codificación de VP8 y JPEG, en el complemento para integración con VA-API.
- Se han añadido elementos para trabajar con flujos basados en el protocolo QUIC (QUIC en crudo, RTP sobre QUIC y WebTransport).
- Se han añadido 23 nuevos elementos o complementos escritos en Rust al conjunto gst-plugins-rs. Los complementos escritos en Rust pueden utilizarse en programas de cualquier lenguaje y el trabajo con ellos es similar al uso de complementos en C y C++.
Fuente: opennet.ru
