Despois de ano e medio de desenvolvemento, lanzouse GStreamer 1.20, un conxunto multiplataforma de compoñentes escritos en C para crear unha ampla gama de aplicacións multimedia, desde reprodutores multimedia e conversores de ficheiros de audio/vídeo, ata aplicacións VoIP e sistemas de streaming. O código GStreamer ten licenza LGPLv2.1. Ao mesmo tempo, están dispoñibles actualizacións dos complementos gst-plugins-base 1.20, gst-plugins-good 1.20, gst-plugins-bad 1.20, gst-plugins-ugly 1.20, así como a ligazón gst-libav 1.20 e o Servidor de streaming gst-rtsp-server 20. A nivel de API e ABI, a nova versión é compatible con versións anteriores coa rama 1.0. En breve prepararanse as montaxes binarias para Android, iOS, macOS e Windows (en Linux recoméndase utilizar paquetes da distribución).
Melloras clave en GStreamer 1.20:
- O desenvolvemento en GitLab pasou a usar un único repositorio común a todos os módulos.
- Engadiuse unha nova biblioteca GstPlay de alto nivel, que substitúe á API de GstPlayer e ofrece unha funcionalidade similar para reproducir contido, a diferenza do uso dun bus de mensaxes para notificar ás aplicacións en lugar dos sinais GObject.
- Engadiuse compatibilidade para decodificar a información de transparencia WebM, permitindo a reprodución de vídeos VP8/VP9 con áreas transparentes.
- Os perfís de codificación agora admiten a configuración de propiedades adicionais específicas da aplicación.
- Compositor admite conversión e mestura de vídeo multiproceso.
- As clases de payloader e payloader teñen compatibilidade unificada para traballar con cabeceiras RTP adicionais (Extensións de cabeceira RTP).
- Engadiuse compatibilidade co mecanismo SMPTE 2022-1 2-D (corrección de erros directos).
- Encodebin e transcodebin para os códecs VP8, VP9 e H.265 implementan un modo de codificación intelixente, no que a transcodificación só se realiza cando é necesario e o resto do tempo envíase o fluxo existente.
- O complemento souphttpsrc agora é compatible con libsoup2 e libsoup3.
- Engadiuse a posibilidade de decodificar os datos de entrada a nivel de fotogramas intermedios (subcadros), o que lle permite comezar a decodificación sen esperar a que se reciba o fotograma completo. O soporte para esta optimización inclúese nos descodificadores OpenJPEG JPEG 2000, FFmpeg H.264 e OpenMAX H.264/H.265.
- Ao decodificar vídeo para os protocolos RTP, WebRTC e RTSP, ofrécese o tratamento automático da perda de paquetes, a corrupción de datos e as solicitudes de fotogramas clave.
- Engadiuse compatibilidade para cambiar os datos de códec sobre a marcha aos paquetes de contedores multimedia mp4 e Matroska, o que che permite cambiar o perfil, o nivel e a resolución dos fluxos de entrada H.264/H.265.
- Engadiuse un modo para crear contedores multimedia mp4 fragmentados.
- Engadiuse soporte de audio ao porto baseado en WPE (WebKit Port for Embedded).
- Engadiuse a posibilidade de usar CUDA para a conversión do espazo de cor, a escala de elementos e a carga de elementos.
- Engadiuse soporte para a memoria NVMM (NVIDIA Memory Module) para os elementos OpenGL glupload e gldownload.
- Compatibilidade con WebRTC mellorada.
- Propúxose un novo complemento para VA-API (Video Acceleration API), que admite máis decodificadores e elementos de post-procesamento.
- A API de AppSink engadiu soporte para eventos ademais dos búfers e listas de búfers.
- Engadíronse configuracións adicionais para as colas internas a AppSrc.
- Actualizáronse as ligazóns do idioma Rust e engadíronse 26 novos complementos escritos en Rust (gst-plugins-rs).
- Engadíronse elementos aesdec e aesenc para o cifrado e o descifrado mediante o algoritmo AES.
- Engadíronse elementos fakeaudiosink e videocodectestsink para probar e depurar.
- Ferramentas melloradas para crear compilacións minimalistas de GStreamer.
- Engadida a posibilidade de construír con FFmpeg 5.0.
- Para Linux, implementáronse versións dos códecs MPEG-2 e VP9, que funcionan sen gardar estado (Stateless).
- Para Windows, engadiuse soporte AV3 e MPEG-11 ao descodificador baseado en Direct1D2/DXVA.
Fonte: opennet.ru