Confira nessa matéria como ativar o Loopback ou Mixer de som na sua distribuição Linux que usa o servidor de áudio PipeWire-Pulse, muito útil para APPs como OBS, SSR e similares.
O Loopback
A ativação do modulo Loopback é algo bem particular e depende totalmente da necessidade de cada um.
O Loopback é conhecido no Windows como o "Mixer de som" que tem uma ativação de forma gráfica nas referencias de som.
A sua utilização pode ser para:
- Realizar gravação de áudio de jogos.
- Ouvir o som do seu microfone.
- Realizar mixagens.
Mais informações do modulo Loopback.
Fonte
module-loopback
Since 0.9.16. This allows one to route audio from a source directly back to a sink.
source
The name of the input source to connect to. If not specified the source will be picked automatically. You can use a tool like pavucontrol to move the loopback stream to the right source.
sink
The name of the sink the audio is forwarded to. If not specified the sink will be picked automatically.
adjust_time
How often to readjust the sample rates in seconds. Defaults to 10.
latency_msec
The desired latency in milliseconds, from 1 to 2000. Defaults to 200. (Note that this is only a friendly request, the actual latency might be higher or lower than this value.)
format
The sample format. Defaults to that of specified sink.
rate
The sample rate. Defaults to that of specified sink.
channels
Number of source channels to use. Defaults to that of specified sink.
channel_map
List of the channels to connect to the sink.
sink_input_properties
Since 1.0. Property list for the playback stream object.
source_output_properties
Since 1.0. Property list for the capture stream object.
source_dont_move
Since 1.0. Takes a boolean value. Disallows moving the capture stream to some other than the initial source. Defaults to "false".
sink_dont_move
Since 1.0. Takes a boolean value. Disallows moving the playback stream to some other than the initial sink. Defaults to "false".
remix
Since 1.0. Takes a boolean value. If the channel map of the capture stream doesn't match the source's channel map, or the channel map of the playback stream doesn't match the sink's channel map, the mismatch has to be handled somehow. If remixing isn't disabled in the global server configuration, by default the audio will get remixed. This parameter can be used to disable remixing for the loopback streams (but if remixing is disabled in the global server configuration, this parameter can't be used for forcing remixing - setting this parameter simply has no effect at all).
PipeWire
PipeWire é um servidor para lidar com streams de áudio e vídeo e hardware no Linux. Foi criado por Wim Taymans da Red Hat. Ele lida com roteamento de multimídia e processamento de pipeline. Alguns de seus objetivos são: Trabalhar com aplicativos Flatpak em sandbox. Wikipédia
Atualmente sendo adotado em conjunto com o Alsa e Pulseaudio nas distribuições Linux.
Ativar o modulo de escuta loopback no PipeWire-Pulse
Antes de fazer alguma alteração você precisa confirmar se o seu sistema operacional usa o Pipewire, execute o comando abaixo no terminal.
pactl info
Na saída deve ter.
Nome do servidor: PulseAudio (on PipeWire 0.3.40)
Caso tenha apenas "Nome do servidor: PulseAudio" você deve seguir essa matéria especifica para o PulseAudio.
Ativar ou desativar o modulo de escuta loopback no PulseAudio
Tendo confirmado que o seu sistema utiliza o PipeWire crie o diretório para as configurações como usuário comum, não use o root.
mkdir ~/.config/pipewire
Copie o arquivo de configurações com o comando.
cp -r /usr/share/pipewire/pipewire-pulse.conf ~/.config/pipewire/
Abra o arquivo de configurações com o nano.
nano ~/.config/pipewire/pipewire-pulse.conf
Localize "context.modules"
Cole as linhas abaixo no final do bloco do "context.modules"
{ name = libpipewire-module-loopback
args = {
audio.position = [ FL FR ]
capture.props = {
media.class = Audio/Sink
node.name = Loopback
node.description = "Loopback"
#node.latency = 1024/48000
#audio.rate = 44100
#audio.channels = 2
#audio.position = [ FL FR ]
#node.target = "my-default-sink"
}
playback.props = {
#media.class = Audio/Source
node.name = Loopback
node.description = "Loopback"
#node.latency = 1024/48000
#audio.rate = 44100
#audio.channels = 2
#audio.position = [ FL FR ]
node.target = "my-default-sink"
}
}
}
Basta colar acima do ] que fecha o "context.modules" como na imagem.
Salve teclando ctrl + x tecle s e tecle Enter para fechar o nano.
Faça o processo com atenção, se errar vai ficar sem som e vai ter que fazer novamente.
Reinicie o computado.
sudo reboot
Ai está ele no applete de áudio.
No SSR.
No OBS.
Excelente tutorial, Ricardo. Fiz aqui no Fedora 36 e deu certo, inclusive, já fiz meus testes, está tudo funcionando perfeitamente. Muito obrigado pela ajuda. Abraço
ResponderExcluir