lançamento significativo do projeto , um servidor multimídia de nova geração que substitui o PulseAudio. O PipeWire expande as capacidades do PulseAudio com recursos para trabalhar com fluxos de vídeo, permitindo o processamento de áudio com latências mínimas e um novo modelo de segurança para gerenciar o acesso em nível de dispositivos e fluxos individuais. O projeto é suportado pelo GNOME e já está sendo amplamente utilizado no Fedora Linux para gravação de conteúdo de tela (screencasting) e compartilhamento de tela em ambientes baseados no Wayland. O código do projeto é escrito na linguagem C e licenciado sob LGPLv2.1.
Principais no PipeWire 0.3:
- O planejador de processamento de fluxos foi completamente reestruturado. As mudanças possibilitaram a execução de uma camada para garantir a compatibilidade com o servidor de áudio JACK, cuja performance é comparável à do JACK2.
- Foi reestruturado e declarado estável . Todas as alterações futuras na API estão previstas para serem feitas sem quebrar a compatibilidade reversa com aplicativos existentes.
- Foi incluído um gerenciador de sessões, permitindo gerenciar o grafo de nós multimídia no PipeWire, além de adicionar novos fluxos. Por enquanto, o gerenciador oferece apenas um conjunto básico de funções e será expandido ou substituído por uma opção mais funcional e flexível no futuro, como .
- As bibliotecas incluídas foram aprimoradas para garantir compatibilidade com PulseAudio, JACK e ALSA, permitindo que o PipeWire funcione com aplicativos existentes que dependem de outros sistemas de áudio. A biblioteca para ALSA está quase pronta, mas as bibliotecas para JACK e PulseAudio ainda precisam de melhorias. O PipeWire ainda não está pronto para substituir totalmente o PulseAudio e o JACK, mas questões de compatibilidade serão uma prioridade em lançamentos futuros.
- Alguns plugins do GStreamer foram incluídos para interação com o PipeWire. O plugin pipewiresrc, que usa o PipeWire como fonte de áudio, na maioria das situações funciona sem problemas. O plugin pipewiresink para saída de áudio através do PipeWire ainda tem alguns problemas conhecidos.
- O suporte ao PipeWire 0.3 no gerenciador de janelas Mutter, desenvolvido pelo projeto GNOME.
Cabe lembrar que o PipeWire expande a aplicação do PulseAudio ao processar quaisquer fluxos multimídia e é capaz de misturar e redirecionar fluxos de vídeo. O PipeWire também oferece recursos para gerenciar fontes de vídeo, como dispositivos de captura de vídeo, webcams ou conteúdo de tela produzido por aplicativos. Por exemplo, o PipeWire permite que vários aplicativos trabalhem juntos com a webcam e resolve problemas com a captura segura de conteúdo de tela e acesso remoto à tela em um ambiente Wayland.
O PipeWire também pode atuar como um servidor de áudio, proporcionando latências mínimas e oferecendo funcionalidade que combina recursos e , incluindo as necessidades de sistemas profissionais de processamento de áudio, nas quais o PulseAudio não poderia competir. Além disso, o PipeWire oferece um modelo de segurança avançado que permite gerenciar o acesso em nível de dispositivos individuais e fluxos específicos, facilitando a organização do encaminhamento de áudio e vídeo de e para contêineres isolados. Um dos principais objetivos é o suporte a aplicativos autossuficientes no formato Flatpak e a operação na pilha gráfica baseada em Wayland.
:
- Captura e reprodução de áudio e vídeo com latências mínimas;
- Recursos para processamento de vídeo e áudio em tempo real;
- Arquitetura multiprocessada que permite o compartilhamento de conteúdo entre múltiplos aplicativos;
- Modelo de processamento baseado em um gráfico de nós multimídia com suporte a ciclos de feedback e atualizações atômicas do gráfico. É permitido conectar manipuladores tanto dentro do servidor quanto plugins externos;
- Interface de acesso eficiente a streams de vídeo através da transmissão de descritores de arquivos e acesso ao áudio através de buffers circulares compartilhados;
- Capacidade de processamento de dados multimídia de quaisquer processos;
- Disponibilidade de um plugin para GStreamer para facilitar a integração com aplicativos existentes;
- Suporte para ambientes isolados e Flatpak;
- Suporte a plugins no formato (Simple Plugin API) e a capacidade de criar plugins que operam em modo de tempo real rígido;
- Sistema flexível de negociação de formatos multimídia utilizados e alocação de buffers;
- Uso de um único processo em segundo plano para roteamento de áudio e vídeo. Capacidade de operar na forma de um servidor de áudio, hub para fornecer vídeo a aplicativos (por exemplo, para a API de screencast do gnome-shell) e servidor para gerenciar o acesso a dispositivos de captura de vídeo.
Fonte: opennet.ru
