Após um ano de desenvolvimento, foi lançado o GStreamer 1.26, um conjunto de componentes multiplataforma para criar uma ampla gama de aplicações multimídia, desde reprodutores de mídia e conversores de arquivos de áudio/vídeo, até aplicações de VoIP e sistemas de streaming. O código do GStreamer é distribuído sob a licença LGPLv2.1. Atualizações para os plugins gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, assim como a interface gst-libav e o servidor de streaming gst-rtsp-server, são desenvolvidas separadamente. No nível da API e do ABI, o novo lançamento é compatível retroativamente com a versão 1.0. Compilações binárias em breve estarão disponíveis para Android, iOS, macOS e Windows (no Linux, é recomendável usar pacotes da distribuição).
Principais melhorias do GStreamer 1.26:
- Adicionados codificador e decodificador para o formato de vídeo VVC (Versatile Video Coding), conhecido também como o padrão de compressão de vídeo H.266, desenvolvido em conjunto por grupos de trabalho da MPEG (ISO/IEC JTC 1) e da VCEG (ITU-T), com a participação de empresas como Apple, Ericsson, Intel, Huawei, Microsoft, Qualcomm e Sony. O H.266 substitui o H.265 (HEVC) e proporciona alta eficiência na transmissão e armazenamento de todas as resoluções de tela (de SD e HD até 4K e 8K), suporta vídeo com faixa dinâmica ampliada (HDR, High Dynamic Range) e vídeo panorâmico em 360 graus.
- Adicionados codificador e decodificador para o padrão de codificação de vídeo LCEVC (Low Complexity Enhancement Video Coding), que implementa uma camada adicional com metadados para melhorar a qualidade dos codecs existentes H.26x e MP4/ISOBMFF.
- Adicionados codificador e decodificador para o formato de imagens JPEG XS, que é posicionado como um sistema leve de codificação de imagens, proporcionando latências mínimas durante a codificação e decodificação, e focado na otimização da transmissão de sequências de imagens de altíssima qualidade (até 8K). O JPEG XS permite reduzir significativamente a largura de banda necessária sem perdas de qualidade perceptíveis para o olho humano.
- Adicionada a possibilidade de substituição e extração de legendas ocultas para os formatos H.264 e H.265.
- Melhorado o suporte à transmissão adaptativa baseada nos protocolos HLS (HTTP Live Streaming) e DASH (Dynamic Adaptive Streaming over HTTP). Novos sinks de dados multimídia hlscmafsink e hlssink3 foram adicionados para a saída de fragmentos CMAF (fMP4) e MPEG-TS, além do hlsmultivariantsink para saída variável.
- O empacotador e desempacotador de contêineres multimídia MPEG-TS agora suporta os codecs H.266, JPEG XS, AV1 e VP9, além de metadados SMPTE ST-2038 e ID3.
- Foram adicionados empacotadores e desempacotadores para o codec H.266/VVC nos formatos Matroska e ISO MP4. O MP4 agora inclui desempacotadores para vídeo nos formatos Hap e Lagarith.
- Adicionada a suporte ao SMPTE 2038, um sistema para anexar dados e metadados adicionais a contêineres multimídia.
- Melhorada a integração com a API gráfica Vulkan. Ampliadas as capacidades de gerenciamento de memória, seleção de espaço de cor, controle de dispositivos e operação em modo de tela cheia. Suporte adicionado para extensões Vulkan que aceleram a decodificação de vídeo H264 e H265. Melhorado o desempenho do codificador que utiliza Vulkan.
- Melhorada a integração com OpenGL. Suporte adicionado para formatos adicionais de conversão de cores e formatos de pixel. Adicionada a suporte à importação de fluxos usando DMABufs.
- Melhorada a integração com a biblioteca Qt6 e QML.
- Expandidos os componentes para integração com CUDA e NVIDIA Video Codec SDK. Adicionador codificador do formato AV1 baseado na API NVCODEC.
- Implementada a biblioteca gst-d3d12 com codificadores e decodificadores baseados na API Direct3D 12.
- Adicionada a suporte ao gerenciamento de chaves MIKEY no lado do cliente no stack RTSP.
- Suporte à reorganização de canais de áudio adicionado ao audioconvert.
- Adicionada a suporte ao OpenGL/WGL na plataforma Windows no plugin baseado na biblioteca GTK3.
- Suporte para formatos JPEG e PNG adicionado ao elemento imagefreeze.
- No elemento pitch, implementada a opção de reprodução reversa.
- Melhorados os mecanismos de autenticação no elemento rtmp2 para servidores RTP. Suporte à autenticação no CDN Limelight adicionado.
- Adicionaram-se elementos para acelerar a decodificação de H.266 (VVC) e para codificação de VP8 e JPEG no plugin de integração com VA-API.
- Elementos para trabalhar com fluxos baseados no protocolo QUIC (raw QUIC, RTP-over-QUIC e WebTransport) foram adicionados.
- Adicionado 23 novos elementos ou plugins ao conjunto gst-plugins-rs, escritos na linguagem Rust. Plugins escritos em Rust podem ser usados em programas de qualquer linguagem e seu funcionamento é análogo ao uso de plugins em C e C++.
Fonte: opennet.ru
