Servidor multimídia PipeWire 0.3 está disponível, substituindo PulseAudio

publicado lançamento significativo do projeto PipeWire 0.3.0, desenvolvendo um servidor multimídia de nova geração para substituir o PulseAudio. PipeWire amplia os recursos do PulseAudio com processamento de stream de vídeo, processamento de áudio de baixa latência e um novo modelo de segurança para controle de acesso em nível de dispositivo e stream. O projeto é suportado no GNOME e já é usado ativamente no Fedora Linux para gravação e compartilhamento de tela em ambientes baseados em Wayland. O código do projeto é escrito em C e distribuído por licenciado sob LGPLv2.1.

O principal mudanças no PipeWire 0.3:

  • O agendador de processamento de threads foi completamente redesenhado. As alterações possibilitaram a execução de uma camada para garantir compatibilidade com o servidor de som JACK, cujo desempenho é comparável ao JACK2.
  • Retrabalhado e declarado estável API. Todas as alterações adicionais na API estão planejadas para serem feitas sem quebrar a compatibilidade retroativa com os aplicativos existentes.
  • Inclui um gerenciador de sessões que permite gerenciar o gráfico de nós multimídia no PipeWire, bem como adicionar novos fluxos. Por enquanto, o gerenciador fornece apenas um conjunto simples de funções básicas e no futuro será ampliado ou substituído por uma opção mais funcional e flexível, como Encanador.
  • As bibliotecas incluídas foram aprimoradas para fornecer compatibilidade com PulseAudio, JACK e ALSA, permitindo que o PipeWire seja usado com aplicativos existentes projetados para funcionar com outros sistemas de áudio. A biblioteca para ALSA está quase pronta, mas as bibliotecas para JACK e PulseAudio ainda precisam de trabalho. O PipeWire ainda não está pronto para substituir completamente o PulseAudio e o JACK, mas problemas de compatibilidade serão uma prioridade em versões futuras.
  • Estão incluídos alguns plug-ins do GStreamer para interagir com o PipeWire. O plugin pipewiresrc, que usa PipeWire como fonte de áudio, funciona sem problemas na maioria das situações. O plugin pipewiresink para saída de áudio via PipeWire ainda não apresenta alguns problemas conhecidos.
  • Suporte para PipeWire 0.3 integrado no gerenciador de janelas Mutter desenvolvido pelo projeto GNOME.

Lembramos que o PipeWire expande o escopo do PulseAudio processando qualquer fluxo de multimídia e é capaz de mixar e redirecionar fluxos de vídeo. PipeWire também oferece recursos para controlar fontes de vídeo, como dispositivos de captura de vídeo, câmeras web ou conteúdo da tela de aplicativos. Por exemplo, PipeWire permite que vários aplicativos de webcam trabalhem juntos e resolva problemas com captura segura de tela e acesso remoto à tela no ambiente Wayland.

PipeWire também pode atuar como um servidor de áudio, fornecendo latência mínima e combinando funcionalidade PulseAudio и JACK, inclusive levando em consideração as necessidades de sistemas de processamento de áudio profissionais, que a PulseAudio não poderia reivindicar. Além disso, o PipeWire oferece um modelo de segurança avançado que permite o controle de acesso no nível do dispositivo e do fluxo e facilita o roteamento de áudio e vídeo de e para contêineres isolados. Um dos principais objetivos é oferecer suporte a aplicativos Flatpak independentes e rodar em uma pilha gráfica baseada em Wayland.

O principal capacidades:

  • Capture e reproduza áudio e vídeo com atrasos mínimos;
  • Ferramentas para processamento de vídeo e áudio em tempo real;
  • Arquitetura multiprocesso que permite organizar o acesso compartilhado ao conteúdo de diversas aplicações;
  • Um modelo de processamento baseado em um gráfico de nós multimídia com suporte para loops de feedback e atualizações de gráficos atômicos. É possível conectar manipuladores tanto dentro do servidor quanto em plugins externos;
  • Uma interface eficiente para acessar streams de vídeo através da transferência de descritores de arquivos e acessar áudio através de ring buffers compartilhados;
  • Capacidade de processar dados multimídia de qualquer processo;
  • Disponibilidade de plugin para GStreamer para simplificar a integração com aplicações existentes;
  • Suporte para ambientes isolados e Flatpak;
  • Suporte para plugins no formato SPA (Simple Plugin API) e a capacidade de criar plugins que funcionam em tempo real;
  • Sistema flexível para coordenação de formatos multimídia utilizados e alocação de buffers;
  • Usando um único processo em segundo plano para rotear áudio e vídeo. A capacidade de trabalhar na forma de um servidor de áudio, um hub para fornecer vídeo para aplicativos (por exemplo, para a API gnome-shell screencast) e um servidor para gerenciar o acesso a dispositivos de hardware de captura de vídeo.

Fonte: opennet.ru

Adicionar um comentário