Tras un año y medio de desarrollo, se ha lanzado GStreamer 1.20. Se trata de un conjunto de componentes multiplataforma escritos en C para crear una amplia gama de aplicaciones multimedia, desde reproductores multimedia y convertidores de archivos de audio/vídeo hasta aplicaciones VoIP y sistemas de streaming. El código de GStreamer se distribuye bajo la licencia LGPLv2.1. Simultáneamente, están disponibles actualizaciones para los plugins gst-plugins-base 1.20, gst-plugins-good 1.20, gst-plugins-bad 1.20, gst-plugins-ugly 1.20, así como para el wrapper gst-libav 1.20 y el servidor de streaming gst-rtsp-server 20. La nueva versión es compatible con versiones anteriores de la rama 1.0 a nivel de API y ABI. Próximamente se prepararán compilaciones binarias para AndroidIOS, macOS и Windows (en Linux (Se recomienda utilizar los paquetes de la distribución).
Mejoras clave en GStreamer 1.20:
- El desarrollo en GitLab pasó a utilizar un único repositorio común para todos los módulos.
- Se ha agregado una nueva biblioteca GstPlay de alto nivel, que reemplaza la API GstPlayer y ofrece una funcionalidad similar para reproducir contenido, diferenciándose por el uso de un bus de mensajes para notificar a las aplicaciones en lugar de señales de GObject.
- Se agregó soporte para decodificar información de transparencia WebM, lo que permite la reproducción de videos VP8/VP9 con áreas transparentes.
- Los perfiles de codificación ahora admiten la configuración de propiedades adicionales específicas de la aplicación.
- Compositor admite la conversión y mezcla de vídeos de subprocesos múltiples.
- Las clases depayloader y payloader tienen soporte unificado para trabajar con encabezados RTP adicionales (Extensiones de encabezado RTP).
- Se agregó soporte para el mecanismo SMPTE 2022-1 2-D (corrección de errores hacia adelante).
- Encodebin y transcodebin para los códecs VP8, VP9 y H.265 implementan un modo de codificación inteligente, en el que la transcodificación se realiza solo cuando es necesario y el resto del tiempo se reenvía el flujo existente.
- El complemento sopahttpsrc ahora es compatible con libsoup2 y libsoup3.
- Se agregó la capacidad de decodificar datos de entrada a nivel de fotogramas intermedios (subtrama), lo que le permite comenzar a decodificar sin esperar a que se reciba el fotograma completo. La compatibilidad con esta optimización está incluida en los decodificadores OpenJPEG JPEG 2000, FFmpeg H.264 y OpenMAX H.264/H.265.
- Al decodificar video para los protocolos RTP, WebRTC y RTSP, se proporciona manejo automático de pérdida de paquetes, corrupción de datos y solicitudes de fotogramas clave.
- Se ha agregado soporte para cambiar datos de códec sobre la marcha a los empaquetadores de contenedores de medios mp4 y Matroska, lo que le permite cambiar el perfil, el nivel y la resolución para los flujos de entrada H.264/H.265.
- Se agregó un modo para crear contenedores de medios mp4 fragmentados.
- Se ha agregado compatibilidad con audio al puerto basado en WPE (WebKit Port for Embedded).
- Se agregó la capacidad de usar CUDA para la conversión de espacios de color, escalado de elementos y carga de elementos.
- Se agregó soporte para memoria NVMM (Módulo de memoria NVIDIA) para elementos de carga y descarga de OpenGL.
- Soporte WebRTC mejorado.
- Se ha propuesto un nuevo complemento para VA-API (Video Acceleration API), que admite más decodificadores y elementos de posprocesamiento.
- La API de AppSink ha agregado soporte para eventos además de buffers y listas de buffers.
- Se han agregado configuraciones adicionales para colas internas a AppSrc.
- Se actualizaron los enlaces del lenguaje Rust y se agregaron 26 nuevos complementos escritos en Rust (gst-plugins-rs).
- Se agregaron elementos aesdec y aesenc para cifrado y descifrado utilizando el algoritmo AES.
- Se agregaron elementos fakeaudiosink y videocodectestsink para pruebas y depuración.
- Herramientas mejoradas para crear compilaciones minimalistas de GStreamer.
- Se agregó la capacidad de compilar con FFmpeg 5.0.
- para Linux Se han implementado versiones sin estado de los códecs MPEG-2 y VP9.
- para Windows El decodificador basado en Direct3D11/DXVA ahora es compatible con AV1 y MPEG-2.
Fuente: opennet.ru
