El marco multimedia GStreamer 1.20.0 está disponible

Después de un año y medio de desarrollo, se lanzó GStreamer 1.20, un conjunto multiplataforma de componentes escritos en C para crear una amplia gama de aplicaciones multimedia, desde reproductores multimedia y conversores de archivos de audio/vídeo, hasta aplicaciones VoIP y sistemas de streaming. El código GStreamer tiene licencia LGPLv2.1. Al mismo tiempo, están disponibles las actualizaciones de los complementos gst-plugins-base 1.20, gst-plugins-good 1.20, gst-plugins-bad 1.20, gst-plugins-ugly 1.20, así como el enlace gst-libav 1.20 y el Servidor de transmisión gst-rtsp-server 20. A nivel de API y ABI, la nueva versión es compatible con versiones anteriores de la rama 1.0. Pronto se prepararán ensamblados binarios para Android, iOS, macOS y Windows (en Linux se recomienda utilizar 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 de los codecs MPEG-2 y VP9, ​​funcionando sin estado de guardado (Stateless).
  • Para Windows, se agregó compatibilidad con AV3 y MPEG-11 al decodificador basado en Direct1D2/DXVA.

Fuente: opennet.ru

Añadir un comentario