lançamento significativo do projeto O PipeWire está desenvolvendo um servidor multimídia de última geração para substituir o PulseAudio. Ele amplia as capacidades do PulseAudio com recursos de streaming 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 de fluxo. O projeto é suportado pelo GNOME e já está em uso ativo no Fedora. Linux para gravação de tela (screencasting) e compartilhamento de tela em ambientes baseados em Wayland. O código do projeto foi escrito em C e licenciado sob LGPLv2.1.
O principal Em PipeWire 0.3:
- O agendador de processamento de fluxo foi completamente redesenhado. Essas mudanças permitem o lançamento de uma camada de compatibilidade com o servidor de áudio JACK, com desempenho comparável ao JACK2.
- Reformulado e declarado estável. Todas as alterações futuras na API serão feitas sem quebrar a compatibilidade com versões anteriores dos aplicativos.
- O pacote inclui um gerenciador de sessões que permite gerenciar o grafo de nós multimídia no PipeWire e adicionar novos fluxos. Atualmente, o gerenciador oferece apenas um conjunto rudimentar de funções básicas e será expandido ou substituído no futuro por uma opção mais funcional e flexível, como... .
- As bibliotecas incluídas foram aprimoradas para garantir a compatibilidade com PulseAudio, JACK e ALSA, permitindo que o PipeWire seja usado com aplicativos existentes projetados para outros sistemas de áudio. A biblioteca ALSA está quase completa, mas as bibliotecas JACK e PulseAudio ainda precisam de desenvolvimento adicional. O PipeWire ainda não está pronto para substituir completamente o PulseAudio e o JACK, mas as questões de compatibilidade serão uma prioridade em versões futuras.
- O pacote inclui vários plugins do GStreamer para interação com o PipeWire. O plugin pipewiresrc, que usa o PipeWire como fonte de áudio, funciona sem problemas na maioria das situações. O plugin pipewiresink, que envia áudio via PipeWire, ainda apresenta alguns problemas conhecidos.
- Suporte para PipeWire 0.3 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.
O PipeWire também pode funcionar como um servidor de áudio de baixa latência, oferecendo funcionalidades que combinam os recursos de и Incluindo uma funcionalidade que atende às necessidades de sistemas profissionais de processamento de áudio, algo que o PulseAudio não conseguia igualar. Além disso, o PipeWire oferece um modelo de segurança avançado que permite o controle de acesso em nível de dispositivo e de fluxo, simplificando o roteamento de áudio e vídeo de e para contêineres isolados. Um dos principais objetivos é dar suporte a aplicativos autocontidos no formato Flatpak e executá-los em uma pilha gráfica baseada em Wayland.
:
- 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 (API de Plugin Simples) e a capacidade de criar plugins que funcionam em modo de tempo real rígido;
- 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
