Boa noite!
Estou tentando criar uma configuração de streaming para eu e meus amigos sairmos via Skype e estou realmente tendo dificuldades com a parte de áudio. Existem dois problemas:
- O microfone transmite apenas no canal esquerdo. Gostaria que meu microfone fosse transmitido para ambos os canais de áudio. Para isso, de acordo com a documentação, ( https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Virtual-Devices ) preciso criar um
mono-sink
onde eu despejo o microfone e depois transmito para o meufriend sink
. Esta postagem do blog ( https://blogshit.baka.fi/2021/07/pipewire-microphone/ ) parece cobrir esse caso de uso, mas não tenho nenhum arquivo media-session.d. - Gostaria de adicionar alguns aplicativos e outras fontes de áudio, como minha guitarra,
friend sink
e gostaria de ouvir o que há nele, exceto meu microfone (talvez ouvir meu microfone apenas como um teste único).
Como faço para conseguir isso? Como posso saber como nomear o arquivo de configuração, já que eles parecem ter nomes específicos na documentação? Como faço para despejar o áudio do meu aplicativo? Preciso de uma pia separada para mim? Como encontro os nomes dos dispositivos para pipewire?
Aqui está minha pactl info
saída
shaddox@pop-os:/usr/share/pipewire$ pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 660
Tile Size: 65472
User Name: shaddox
Host Name: pop-os
Server Name: PulseAudio (on PipeWire 0.3.79)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.usb-Grace_Design_SDAC-00.iec958-stereo
Default Source: alsa_input.usb-Yamaha_Corporation_Steinberg_UR22mkII-00.analog-stereo
Cookie: 3fff:d574
Se ajudar, aqui está minha arecord -l
saída
shaddox@pop-os:/usr/share/pipewire$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC887-VD Analog [ALC887-VD Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 2: ALC887-VD Alt Analog [ALC887-VD Alt Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 3: Webcam [C922 Pro Stream Webcam], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 4: UR22mkII [Steinberg UR22mkII], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
E aqui está minha aplay -l
saída:
shaddox@pop-os:/usr/share/pipewire$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC887-VD Analog [ALC887-VD Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC887-VD Digital [ALC887-VD Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: SDAC [SDAC], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 3: HDMI 0 [22M35]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 4: UR22mkII [Steinberg UR22mkII], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
Eu só uso o Steinberg UR22mkII para gravação de guitarra e microfone, enquanto o SDAC é onde eu ouço.
É claro que, depois de formular sua própria pergunta, você terá uma ideia do que procurar. Primeiramente precisei criar dois dispositivos virtuais que servirão de base de operações. Este arquivo será nomeado
~/.config/pipewire/pipewire.conf.d/10-coupled-skype-stream.conf
. Como cheguei a essa conclusão, você pode perguntar? A fonte da verdade se encontra em/usr/share/pipewire
! Agora, sobre o conteúdo do arquivo:Encontrei o nome dos dispositivos com a ajuda de um programa simples chamado
Simple Wireplumber GUI
. O que o primeiro par fará é criar uma ligação do canal esquerdo da fonte para um novo canal MONO virtual.A segunda parte do arquivo de configuração cria algo chamado
sink
, que é apenas um lugar onde você despeja o material de áudio que deseja que todos ouçam.Agora, você usa um software chamado
qpwgraph
ouHelvum
para conectar o que deseja que todos ouçam na pia. O canal esquerdo vai para o canal esquerdo, o canal direito vai para a direita. Para a fonte MONO, vai para ambos os canais.Depois que você ouvir sua voz o suficiente para testar, procure no programa mencionado uma ligação de loopback e corte-a.
Espero que isso seja útil para outras pessoas.