Após um ano e meio de desenvolvimento, foi lançado o GStreamer 1.20, um conjunto de componentes multiplataforma escrito em C 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 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 1.20, gst-plugins-good 1.20, gst-plugins-bad 1.20, gst-plugins-ugly 1.20, assim como a biblioteca gst-libav 1.20 e o servidor de streaming gst-rtsp-server 20 também estão disponíveis. A nível de API e ABI, a nova versão é compatível retroativamente com a versão 1.0. Versões binárias em breve estarão disponíveis para Android, iOS, macOS e Windows (no Linux, recomenda-se usar pacotes do repositório).
Melhorias principais do GStreamer 1.20:
- O desenvolvimento no GitLab foi transferido para o uso de um repositório único, compartilhado entre todos os módulos.
- Uma nova biblioteca de alto nível GstPlay foi adicionada, substituindo a API GstPlayer e oferecendo funções semelhantes para reprodução de conteúdo, com a diferença de que agora usa um barramento de mensagens para notificar os aplicativos em vez de sinais GObject.
- Adicionada a suporte para decodificação de informações de transparência no formato WebM, permitindo reproduzir vídeos VP8/VP9 com áreas transparentes.
- Adicionada a suporte a configurações de propriedades adicionais específicas para aplicações nos perfis de codificação.
- O Compositor agora suporta transformação e mistura de vídeo em modo multithread.
- Unificada a suporte a trabalhar com cabeçalhos adicionais RTP (Extensões de Cabeçalho RTP) nas classes depayloader e payloader.
- Adicionada a suporte para o mecanismo de correção de erros preditiva SMPTE 2022-1 2-D (Forward Error Correction).
- No encodebin e transcodebin, para codecs VP8, VP9 e H.265, implementado um modo de codificação inteligente ('smart encoding'), onde a recodificação ocorre somente quando necessário, e em outros momentos, o fluxo existente é passado diretamente.
- Assegurada a compatibilidade do plugin souphttpsrc com libsoup2 e libsoup3.
- Adicionada a possibilidade de decodificação de dados de entrada a nível de quadros intermediários (sub-frame), permitindo iniciar a decodificação sem esperar pelo recebimento do quadro completo. O suporte para essa otimização é utilizado nos decodificadores OpenJPEG JPEG 2000, FFmpeg H.264 e OpenMAX H.264/H.265.
- A decodificação de vídeo para protocolos RTP, WebRTC e RTSP oferece processamento automático para perda de pacotes, corrupção de dados e solicitações de quadros-chave.
- Os empacotadores de contêineres de mídia mp4 e Matroska agora suportam a mudança de dados de codec em tempo real, permitindo alterar o perfil, nível e resolução para fluxos de entrada H.264/H.265.
- Adicionado o modo de criação de contêineres de mídia mp4 fragmentados.
- Suporte a áudio foi adicionado ao porto baseado em WPE (WebKit Port for Embedded).
- Adicionada a opção de usar CUDA para conversão de espaço de cores, escalonamento de elementos e carregamento de elementos.
- O suporte à memória NVMM (NVIDIA Memory Module) foi adicionado para os elementos OpenGL glupload e gldownload.
- Apoio melhorado para WebRTC.
- Um novo plugin para VA-API (Video Acceleration API) foi proposto, suportando mais decodificadores e elementos de pós-processamento.
- O API AppSink agora tem suporte a eventos além de buffers e listas de buffers.
- Novas configurações de filas internas foram adicionadas ao AppSrc.
- Vínculos na linguagem Rust foram atualizados e 26 novos plugins escritos em Rust (gst-plugins-rs) foram adicionados.
- Foram adicionados os elementos aesdec e aesenc para criptografia e descriptografia usando o algoritmo AES.
- Elementos fakeaudiosink e videocodectestsink foram adicionados para testes e depuração.
- Melhorias nos recursos de criação de builds minimalistas do GStreamer.
- Adicionada a capacidade de compilar com FFmpeg 5.0.
- Para Linux, codecs MPEG-2 e VP9 foram implementados, funcionando sem a necessidade de manter estado (Stateless).
- Para Windows, o decodificador baseado em Direct3D11/DXVA adicionou suporte a AV1 e MPEG-2.
Fonte: opennet.ru
