我在 Ubuntu 11.04 上遇到了环绕声问题。我设法通过 HDMI 播放声音,但声道颠倒了。例如,当 Pulse Audio 在中央扬声器上播放时,它会通过我的 LFE。声音偏好设置频道中包含的扬声器测试也出现了同样的情况。
在搜索有关此问题的主题时,我尝试通过更改通道映射设置来编辑 /etc/pulse/daemon.conf - 但无济于事。也许我没有正确使用它?
有什么办法可以交换这些频道并使我的 5.1 正常工作吗?
System specs :
Ubuntu 11.04
AsRock aion330
HDMI amp
提前致谢!
aplay -L
给出结果:
default
Playback/recording through the PulseAudio sound server
pulse
Playback/recording through the PulseAudio sound server
front:CARD=NVidia,DEV=0
HDA NVidia, VT1708S Analog
Front speakers
surround40:CARD=NVidia,DEV=0
HDA NVidia, VT1708S Analog
4.0 Surround output to Front and Rear speakers
surround41:CARD=NVidia,DEV=0
HDA NVidia, VT1708S Analog
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=NVidia,DEV=0
HDA NVidia, VT1708S Analog
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=NVidia,DEV=0
HDA NVidia, VT1708S Analog
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=NVidia,DEV=0
HDA NVidia, VT1708S Analog
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=NVidia,DEV=0
HDA NVidia, VT1708S Digital
IEC958 (S/PDIF) Digital Audio Output
hdmi:CARD=NVidia,DEV=0
HDA NVidia, HDMI 0
HDMI Audio Output
dmix:CARD=NVidia,DEV=0
HDA NVidia, VT1708S Analog
Direct sample mixing device
dmix:CARD=NVidia,DEV=1
HDA NVidia, VT1708S Digital
Direct sample mixing device
dmix:CARD=NVidia,DEV=3
HDA NVidia, HDMI 0
Direct sample mixing device
dsnoop:CARD=NVidia,DEV=0
HDA NVidia, VT1708S Analog
Direct sample snooping device
dsnoop:CARD=NVidia,DEV=1
HDA NVidia, VT1708S Digital
Direct sample snooping device
dsnoop:CARD=NVidia,DEV=3
HDA NVidia, HDMI 0
Direct sample snooping device
hw:CARD=NVidia,DEV=0
HDA NVidia, VT1708S Analog
Direct hardware device without any conversions
hw:CARD=NVidia,DEV=1
HDA NVidia, VT1708S Digital
Direct hardware device without any conversions
hw:CARD=NVidia,DEV=3
HDA NVidia, HDMI 0
Direct hardware device without any conversions
plughw:CARD=NVidia,DEV=0
HDA NVidia, VT1708S Analog
Hardware device with all software conversions
plughw:CARD=NVidia,DEV=1
HDA NVidia, VT1708S Digital
Hardware device with all software conversions
plughw:CARD=NVidia,DEV=3
HDA NVidia, HDMI 0
Hardware device with all software conversions
gnome-volume-control 确实设置为数字环绕 5.1 HDMI 输出。不过,扬声器测试受到声道问题的影响。
答案1
当通道配置不正确时,要在 HDMI 5.1 声音中设置正确的映射,您应该在命令行中尝试以下命令
pulseaudio -k
gksu gedit /usr/share/pulseaudio/alsa-mixer/profile-sets/extra-hdmi.conf
- 找到该文件中的 HDMI 环绕部分。将错误的扬声器切换为通道映射并保存文件。
- 跑步
speaker-test -c6 -twav
- 如果仍然不正确,请返回步骤1。
在带有 NVIDIA ION(zotac 主板)的 Ubuntu 12.04 上进行了测试。
答案2
如果不了解您当前的 ALSA 和 PulseAudio 设置,我们只能猜测这里可能出了什么问题。
要解决声音输出问题,请
- 检查 ALSA 映射是否正确(通过
aplay -L
终端调用) - 确保您的硬件配置文件设置为 5.1。在 gnome-volume-control 中音频设置 -> 硬件
尝试将混音设置更改为
/etc/pulse/daemon.conf
:enable-remixing = yes
也可以尝试no
enable-lfe-remixing = no
也可以尝试yes
通道映射daemon.conf
仅在以下情况下有效:没有其他存在通道图(另请参阅pulseaudio 票号 #825)。
ALSA HDMI 声音输出可能是数字的,因此 - 与模拟通道不同 - 5.1 环绕输出的混合由所连接的硬件完成。
答案3
@Takkat :NVM 我找到了解决方案。
我尝试了你的建议,但没有成功...然后我搜索了有关显卡配置文件的更多信息。最后我查看了 pulseaudio 加载的预设文件,发现有一个从 nvidia.conf 加载的 Nvidia 配置文件。
我在这个 nvidia.conf 文件中发现了许多 hdmi 环绕 5.1 预设。
反转了一些频道(例如 lfe 和左前),保存了文件,关闭了 pulseaudio,效果很好。
谢谢您的帮助 :)
答案4
我可以像这样重新映射模拟卡的通道
cp /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf ~/.pulse/rotatedProfile.conf
我编辑了该文件,以便我的配置的通道图符合我的要求
[Mapping analog-surround-51]
device-strings = surround51:%f
channel-map = front-right,rear-right,front-left,rear-left,front-center,lfe
paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-lfe-on-mono
priority = 8
direction = output
然后我不得不强制 pulseaudio 手动加载 alsa 卡,而不是自动加载,并将配置文件设置为我刚刚创建的文件。我不知道是否有办法强制配置文件自动检测卡,或者强制只手动检测一张卡。我注释掉了并#load-module module-udev-detect
添加了以下行到文件末尾#load-module module-detect
/etc/pulse/default.pa
load-module module-alsa-card device_id=Intel profile_set=/home/silent/.pulse/rotatedProfile.conf
其中device_id
可以是数字或字符串。您可以通过以下方式查看您的卡名和 ID:
cat /proc/asound/cards
作为参考,我的输出是这样的
0 [Intel ]: HDA-Intel - HDA Intel
HDA Intel at 0xf9ff8000 irq 44
所以device_id=0
工作以及device_id=Intel
我见过有关数字 ID 在重启后更换位置的报告,因此如果您没有同名的不同卡,我会选择字符串表示。
编辑:在 13.04 中,修改extra-hdmi.conf
而不是default.conf
直接修改default.pa
就可以了。另一方面,这存在在升级过程中被覆盖的风险(是吗?)。