如何在环绕输出的多个通道上输出立体声?

如何在环绕输出的多个通道上输出立体声?

我的电脑有 4 个声音输出插孔,用于 7.1 环绕输出。但是,我只能播放立体声。我想将扬声器连接到一个插孔,将耳机连接到另一个插孔,同时将相同的立体声输出输出到两个插孔。这样,我只需打开/打开我想要使用的任何一个。我不需要更改连接或通过软件选择正确的输出。

此外,我还有一个低音炮来补充扬声器。我可以将它连接到另一个插孔的一个声道(例如右声道),但它需要将右声道和左声道混合到这个声道中,因为低音炮只有一个单声道输入。

我在 Ubuntu 20.10 上使用 Pulseaudio 13.99。

如何将立体声复制到多个输出插孔,并将两侧的声音混合成一个用于低音炮?

答案1

解决方案

通过pavucontrol(PulseAudio 音量控制),我将声卡设置为 4.1 输出。这样,frontrear插孔就可以完全启用,并且center-subwoofer插孔有一个通道。完全符合我的需要。如果我想连接 3 个以上的设备,我也可以使用 7.1 输出来启用所有 4 个插孔。

pavucontrol:启用 4.1 输出

我添加了一个自定义的 pulsaudio 配置文件~/.config/pulse/default.pa

# load the system defaults
.include /etc/pulse/default.pa

# create a stereo sink, duplicating to front, and rear jack,
# as well as mixing into the right channel of
# center-subwoofer jack (i.e. the subwoofer channel)
load-module module-remap-sink sink_name=duplicate sink_properties="device.description='duplicate to front, rear, and subwoofer'" master=alsa_output.pci-0000_00_1b.0.analog-surround-41 channels=6 master_channel_map=front-left,front-right,rear-left,rear-right,lfe,lfe channel_map=front-left,front-right,front-left,front-right,front-left,front-right remix=no

set-default-sink duplicate

参数master=指定了我通过 找到的 4.1 输出的名称pacmd list-sinks,它还显示了 的所有可用通道的名称master_channel_map=lfe代表“低频发射器”,即低音炮。

3 sink(s) available.
    index: 0
    name: <alsa_output.pci-0000_00_1b.0.analog-surround-41>
    driver: <module-alsa-card.c>
    channel map: front-left,front-right,rear-left,rear-right,lfe
             Surround 4.1

强制重启 PulseAudio 后pulseaudio -k,我可以选择新创建的虚拟输出,并且声音可以根据需要在三个插孔上播放。

参数详细信息

设置的虚拟接收器名称sink_name=可以是任何未被其他接收器使用的名称。中的描述sink_properties=是可选的,可以是任何内容。

master_channel_map=指定我想要映射到的原始接收器的通道。我指定了lfe两次,因为我想要将左通道和右通道都映射到它。channels=指定中的通道数master_channel_map=

channel_map=指定新创建的虚拟接收器应具有哪些通道,以及它们映射到原始接收器的哪个通道。必须有与 中完全相同的条目数master_channel_map=

remix=no禁用频道之间不必要的重新混合,如PulseAudio 文档

相关内容