链接管道水槽以进行流式传输设置

链接管道水槽以进行流式传输设置

晚上好!

我正在尝试创建一个流媒体设置,供我和我的朋友通过 Skype 闲逛,但我在音频部分确实遇到了困难。有两个问题:

  1. 麦克风仅在左声道上传输。我希望我的麦克风能够传输到两个音频通道。为此,根据文档,(https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Virtual-Devices)我需要创建一个mono-sink倒入麦克风的位置,然后将其传输到我的friend sink.这篇博文(https://blogshit.baka.fi/2021/07/pipewire-microphone/)似乎涵盖了这个用例,但我没有 media-session.d 文件。
  2. 我想倒入一些应用程序和其他音频源,例如我的吉他,friend sink我想听听其中的内容,除了我的麦克风(也许只听我的麦克风作为一次性测试)。

我该如何实现这一目标?我如何知道如何命名配置文件,因为它们在文档中似乎有特定的名称?如何倒入我的应用程序音频?我自己需要一个单独的水槽吗?如何查找 pipelinewire 的设备名称?

这是我的pactl info输出

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

如果有帮助,这是我的arecord -l输出

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

这是我的aplay -l输出:

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

我只使用 Steinberg UR22mkII 进行吉他录音和麦克风,而 SDAC 则是我聆听的地方。

答案1

当然,一旦你提出了自己的问题,你就会知道要注意什么。首先,我需要创建两个虚拟设备作为操作基础。该文件将被命名为~/.config/pipewire/pipewire.conf.d/10-coupled-skype-stream.conf.你可能会问,我是如何得出这个结论的?真理的源头就在/usr/share/pipewire!现在,进入文件内容:

context.modules = [
    {   name = libpipewire-module-loopback
            args = {
                node.description = "Steinberg Front Left"
                capture.props = {
                    node.name = "capture.mono-micorphone"
                    audio.position = [ FL ]
                    target.object = "alsa_input.usb-Yamaha_Corporation_Steinberg_UR22mkII-00.analog-stereo"
                    stream.dont-remix = true
                    node.passive = true
                }
                playback.props = {
                    media.class = "Audio/Source"
                    node.name = "mono-microphone"
                    audio.position = [ MONO ]
                }
            }
    }
    {   name = libpipewire-module-loopback
        args = {
            audio.position = [ FL FR ]
            capture.props = {
                media.class = Audio/Sink
                node.name = skype_sink
                node.description = "Virtual Skype sink"
            }
        }
    }
]

我在一个名为 的简单程序的帮助下找到了设备的名称Simple Wireplumber GUI。第一对将做的是,它将创建从源的左通道到新的虚拟单通道的系绳。

配置文件的第二部分创建了一个名为 a 的东西sink,它只是一个转储你希望每个人都能听到的音频内容的地方。

现在,您使用一款名为qpwgraph或 的软件Helvum将您希望每个人听到的内容绑定到接收器。左声道转到左声道,右声道转到右声道。对于 MONO 源,它会进入两个通道。

一旦您听够了自己的声音以进行测试,请在上述程序中查找环回系绳并将其切断。

希望这对其他人有帮助。

相关内容