我有三个显示器连接到我的电脑,并使用 RTX 2060。
aplay -l
结果pactl list sinks
如下。
如何使用 PulseAudio 配置以下内容:
- 左显示器为仅左侧通道。
- 中间的显示器为中央声道。
- 合适的监视器对应合适的频道。
我目前正在运行 Ubuntu 18.04.05。
Sink #10
State: SUSPENDED
Name: alsa_output.pci-0000_01_00.1.hdmi-stereo
Description: HDA NVidia Digital Stereo (HDMI)
Driver: module-alsa-card.c
Sample Specification: s16le 2ch 44100Hz
Channel Map: front-left,front-right
Owner Module: 7
Mute: no
Volume: front-left: 30148 / 46% / -20.23 dB, front-right: 30148 / 46% / -20.23 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor Source: alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor
Latency: 0 usec, configured 0 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY SET_FORMATS
card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 10: HDMI 4 [HDMI 4]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 11: HDMI 5 [HDMI 5]
Subdevices: 1/1
Subdevice #0: subdevice #0
非常感谢您的帮助。
答案1
好的,经过几天的研究、测试等,我终于找到了答案,回答了自己的问题。这真是太棒了。我的 3 个显示器感觉就像价值百万美元的扬声器。感谢 @nusch 的提示,为我指明了正确的方向。
以下是一般步骤。
按照以下指南将 PulseAudio 替换为 pipewire.3.xhttps://pipewire-debian.github.io/pipewire-debian/
将 HDMI 切换到 Pro Audio 配置文件,这样 gpu 上的所有子 HDMI 端口都会显示在 qpwgraph 上
通过执行以下命令创建重映射接收器:
#不要忘记用 alsa_output.pci-alsa_output.pci-0000_01_00.1.hdmi-stereo 替换设备名称
pactl load-module module-remap-sink master_device=alsa_output.pci-alsa_output.pci-0000_01_00.1.hdmi-stereo master_channel_map=front-left,front-right,front-center channel_map=front-right,front-left,front-center remix=false
通过选择默认音频输出作为 GUI 输出,将 ubuntu gnome 声音控制中的默认音频输出切换为重新映射接收器。
构建并安装 qpgraphhttps://gitlab.freedesktop.org/rncbc/qpwgraph。
git clone [email protected]:rncbc/qpwgraph.git
#>=Ubuntu 21.x sudo apt install libasound2-dev libpipewire-0.3-dev libalsaplayer-dev libqt6svg6-dev libgl1-mesa-dev libqt6widgets6 libqt6gui6 qt6-base-dev qt6-base-dev g++ cmake libglx-dev pavucontrol #<=Ubuntu 20.04 sudo apt install libasound2-dev libpipewire-0.3-dev libalsaplayer-dev libqt5svg5-dev libgl1-mesa-dev libqt5widgets5 libqt5gui5 g++-8 cmake libglx-mesa0 mesa-common-dev qt5-default pavucontrol #before build export CC=/usr/bin/gcc-8 export CXX=/usr/bin/g++-8 cmake -B build cmake --build build
- 使用 qpwgraph 将重映射接收器映射到 HDMI 上的每次播放上,如下所示(无需重新启动服务进行通道映射。):
6.1 您可以使用 gnome 声音控制来测试前、中和右。这使得绘图变得更容易。
有用的命令和链接
cat /proc/asound/pcm pactl info #restart pipewire service systemctl --user restart pipewire-pulse.service
https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/ https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Virtual-Devices#remap-sink
您可以根据需要使用管道线将任何音频辅助设备映射到源。这真是太棒了。qpwgraph 的作者建议“彻底抛弃 PulseAudio”。
尽情享受吧,别忘了点赞并改进我的答案,这样更多的人可以享受这些很棒的 Linux 功能。
奖励积分,
1. 很棒的音乐,可以测试前置、中置、右声道 -https://www.youtube.com/watch?v=3xt8Mp8oWzc
使用此视频测试您的扬声器https://www.youtube.com/watch?v=ijSYp6N5Yrs&ab_channel=4KClipsAndTrailers
您可以将虚拟接收器作为音频设备传递给 KVM/Qemu,这样您就可以在 Windows/macOS 上玩游戏并使用重映射接收器作为音频设备。
为了使更改永久生效,如果有人能根据 qpwgraph 导出文件改进我的答案就太好了。
一切顺利。
答案2
这可以通过在 Pulse Audio 中创建适当的虚拟接收器/源来实现,但我发现它很耗时,用 Pipewire 替换 PulseAudio 要容易得多,并且使用它的图形界面可以匹配不同的输入通道和每个应用程序 - 请参阅此处的屏幕截图:https://github.com/rncbc/qpwgraph