PipeWire (Português)

PipeWire é um novo framework low-level de multimídia. Seu objetivo é oferecer a captura e a reprodução tanto para áudio quanto para vídeo com latência mínima e suporte para PulseAudio-, JACK-, ALSA- e programas baseados em GStreamer.

Translation Status: This article is a localized version of PipeWire. Last translation date: 2021-05-19. You can help to synchronize the translation, if there were changes in the English version.

O daemon baseado no framework pode ser configurado para ser tanto um servidor de áudio (com funcionalidades do JACK e PulseAudio) quanto um servidor de captura de vídeo.

PipeWire também oferece suporte para containers como Flatpak e não depende dos user groups audio e vídeo, e em seu lugar usa us sistema de segurança similar ao Polkit, pedindo permissão para Flatpak ou Wayland para poder gravar a tela ou áudio.

Instalação

Instale o pacote pipewire através dos repositórios oficiais.

Pipewire usa systemd/User para a manutenção do servidor e da ativação automática dos sockets.

Opcionalmente, instale pipewire-docs para revisar a documentação. Outros pacotes, como pipewire-alsa, pipewire-pulse, e pipewire-jack normalmente não são necessários, a menos que o usuário queira usar Pipewire como um substituto para PulseAudio/JACK. Outros pacotes disponíveis são lib32-pipewire, e lib32-pipewire-jack para suporte a multilib.

GUI

    Uso

    Compartilhamento de tela por WebRTC

    A maioria dos navegadores costumava depender do X11 para a captura do desktop (ou de programas individuais) ao usar WebRTC (por exemplo, no Google Hangouts). Com Wayland, o mecanismo de compartilhamento é lidado de maneira diferente por motivos de segurança. PipeWire permite o compartilhamento de conteúdo usando Wayland com controles de acesso bem definidos.

    Isso requer e um de seus backends para ser instalado. Os backends disponíveis são:

    Firefox (84+) oferece suporte para esse método por padrão, enquanto que no Chromium (73+) o usuário precisa habilitar suporte a WebRTC PipeWire habilitando a flag correspondente (experimental) na seguinte URL:

    chrome://flags/#enable-webrtc-pipewire-capturer

    Para xdg-desktop-portal-wlr funcionar você precisa instalar e garantir que está ativado na sessão .

    Lembrando que a única funcionalidade suportada é o compartilhamento do deskop inteiro e não de um app/janela específicos .

    Vídeo

    Por mais que o software ainda não esteja pronto para produção, é totalmente seguro de se usar. A maioria dos programas que dependem do GStreamer para lidar, por exemplo, com transmissões de vídeo devem funcionar perfeitamente graças ao plugin GStreamer PipeWire. Programas como, por exemplo são capazes de compartilhar vídeo capturado ao serem usados por conta disso.

    Áudio

    PipeWire pode ser utilizado como um servidor de áudio, similar ao PulseAudio e JACK. Seu objetivo é substituir tanto o PulseAudio quanto o JACK, ao prover uma implementação de servidor compatível com PulseAudio e bibliotecas compatíveis com clients JACK. Ver esta entrada no blog para mais informações.

    ALSA/Programas legados

    Instale pipewire-alsa para rotear todos os programas que usem a API ALSA através do PipeWire.

    Clients PulseAudio

    Instale pipewire-pulse. O mesmo irá substituir e . Normalmente não é necessária mais nenhuma ação, já que o serviço de usuário deve ser habilitado automaticamente pelo pacote. Se o PipeWire não funcionar corretamente na inicialização do sistema, confirme que os serviços Systemd/User pipewire-pulse.service, pipewire.service, e estão funcionando.

    Reinicie ou encerre e entre novamente na sessão para surtir efeito.

    Para conferir se a substituição está funcionando, rode o seguinte comando e confira o resultado:

    Clients JACK

    Instale pipewire-jack e use para abrir clients JACK com as bibliotecas compatíveis ao invés da original :

    pw-jack application

    Também é possível requerir um tamanho de buffer customizado ao definir um quociente de tamanho de buffer/taxa de amostra (o qual define a latência de bloco em segundos):

    PIPEWIRE_LATENCY="128/48000" pw-jack application

    Dispositivos Bluetooth

    PipeWire lida com dispositivos de áudio Bluetooth se o pacote pipewire-pulse estiver instalado. Mais especificamente, o deamon de sessão de mídia checa por , e habilita seu módulo automaticamente se o arquivo existir.

    Rodar PipeWire em cima do JACK nativo

    PipeWire também pode ser usado como um client JACK em cima do daemon JACK nativo se desejado. Ver JACK and PipeWire para mais informações.

    Pós-processamento de áudio

    PulseEffects

    PulseEffects é um programa em GTK que disponibiliza uma vasta quantidade de efeitos e filtros de áudio para transmissões de saída de áudio e de entrada de microfone em programas individuais. Efeitos notáveis incluem um equalizador de entrada/saída, equalizador de volume de entrada e melhorias de grave, além de um de-esser para entrada de um plug-in de redução de ruído. Ver a página no GitHub para uma lista completa de efeitos.

    Para usar o PulseEffects com PipeWire, instale [link quebrado: replaced by easyeffects] ou .

    Nota: Isto também instalará pipewire-pulse e substituir PulseAudio por PipeWire. Ver FS#69437 para mais detalhes. Para a versão legada ver PulseAudio#PulseEffects.

    Ver Community Presets para uma coleção de configurações de presets.

    Solução de problemas

    Microfone não é detectado por PipeWire

    O módulo do PipeWire usa para detectar dispositivos por padrão. Se isso não estiver funcionando para você, tente desligar , ou opcionalmente ligue em , embaixo de -> a primeira regra -> -> update-props:

    ...
    update-props = {
        api.alsa.use-acp = false
    ...

    Então reinicie o pipewire e confira os dispositivos disponíveis:

    Sem som após conectar um dispositivo Bluetooth

    Até 07-12-2020, se não houver som após conectar um dispositivo Bluetooth, você pode precisar trocar o sink padrão e/ou mover um input de sink para o sink correto. Use para listar os sinks disponíveis e para trocar o sink padrão para o dispositivo Bluetooth. Isso pode ser automatizado via udev usando um script similar a este.

    Ver essa discussão no Reddit para mais informações sobre o problema. De acordo com o autor do script, o perfil de headset (HSP) pode ainda apresentar problemas.

    Volume baixo

    Caso, após substituir PulseAudio com PipeWire, seu som funcionar corretamente mas após reiniciar o volume estiver intoleravelmente baixo:

    Abra , aperte para selecionar a placa de som correta, e confirme que os volumes ALSA estão em 100%. deve manter essa configuração após reiniciar o sistema.

    Aumentar RLIMIT_MEMLOCK

    Dec 13 11:11:11 HOST pipewire-pulse[99999]: Failed to mlock memory 0x7f4f659d8000 32832: This is not a problem but for best performance, consider increasing RLIMIT_MEMLOCK

    Instale realtime-privileges e adicione seu usuário ao grupo .

    Outra alternativa é aumentar o memlock de 64kB para 128kB, o que parece ser o suficiente para corrigir isso. Se você estiver usando sob systemd/User, adicione:

    username	soft	memlock	64
    username	hard	memlock	128

    em /etc/security/limits.d/username.conf

    Modificar a taxa de amostra

    Por padrão PipeWire define uma taxa de amostra global de 48kHz. Se você precisar modificá-la (por exemplo, se possuir um DAC que suporte um valor maior) você podê fazê-lo modificando a linha no arquivo de configuração . Por exemplo, se você quiser 192kHz, descomente e modifique a linha para .

    Placa de som externa não é ativada após reconectar

    Cheque se possui alguma entrada com o perfil padrão "off" e a remova. Se isso não ajudar, remova todos os arquivos de e reinicie PipeWire usando .

    Sem som ou pactl info mostra Failure: Connection refused

    Isso significa que os programas não estão sendo capazes de conectar com o serviço PipeWire-Pulse, confirme que /etc/pipewire/pipewire-pulse.conf existe e não é está vazio, e reinicie PipeWire-Pulse usando .

    Se isso não resolver o problema, rode o comando strace -f -o /tmp/pipe.txt pactl info e cole em para ajudar na busca por ajuda no IRC (OFTC #pipewire) ou em listas de mensagens.

    Qualidade de áudio baixa usando Bluetooth

    No caso de a reprodução via Bluetooth travar ou cortar, confira pipewire.service usando . Se houver erros como este,

    Feb 17 18:23:01 HOST pipewire[249297]: (bluez_input.18:54:CF:04:00:56.a2dp-sink-60) client too slow! rate:512/48000 pos:370688 status:triggered

    confira o codec atualmente selecionado usando e tente modificá-lo configurando para usar um dentre em

    Tente habilitar suporte a mSBC (fixes mic on Sony 1000XM3):

    Reinicie PipeWire usando para as mudanças fazerem efeito.

    Sem dispositivos detectados após atualizar PipeWire e reiniciar (git / >=0.3.23)

    Até o commit 012a68f8 um novo serviço do systemd foi adicionado, desabilitado por padrão, significando que não há rodando ao inicializar o sistema. Para habilitar o serviço, rode: systemctl --user enable --now pipewire-media-session.service

    Se o usuário do gerenciador de pacotes não tiver preparado as mudanças no arquivo de configuração após a atualização, então outra instância de possa estar rodando em pipewire.service. Para conferir, rode:

    Se o resultado mostrar pipewire e pipewire-media-session rodando, atualize as configurações do seu sistema e/ou usuário:

    Atraso no áudio notável ao começar a tocar áudio

    Isso é causado pela suspensão dos nós quando inativo. Isso pode ser desabilitado editando dependendo de onde o atraso ocorre e mudar para 0 para desabilitar ou experimentar com outros valores e encontrar o que funciona para você. Outra alternativa é comentar a linha em . Reinicie os serviços do systemd pipewire e para aplicar as mudanças ou reinicie o sistema.

    Áudio cortando quando várias fontes de áudio começam a tocar

    Esse problema pode ser tipicamente diagnosticado ao rodar e procurar por linhas similares a:

    pipewire-pulse[21740]: pulse-server 0x56009b9d5de0: [Nightly] UNDERFLOW channel:0 offset:370676 underrun:940

    De acordo com o https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Troubleshooting#underrununderflow-and-broken-pipe-errors guia oficial de solucão de problemas do PipeWire], para resolver esse problema edite , descomente a linha e modifique seu valor para .

    O microfone soa distorcido

    Esse problema as vezes é causado pelas configurações de "boost" do microfone. Experimente navegar até a placa de som que está tendo problemas após rodar e use as setas do teclado para reduzir as possíveis opções de "Mic Boost" ou "Internal Mic Boost".

    Ver também

    gollark: I put in `v=spf1 mx -all`, now to wait for the DNS to propagate or whatever.
    gollark: Oh dear.
    gollark: Hold on while I log into mythic beasts.
    gollark: ... wait, is this one of those things where I need empty ones or everything is horrible?
    gollark: osmarks.net doesn't send email, so it's fine.
    This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.