我需要对我的多通道(游戏)音频进行 AC3(或 DTS)编码并通过 HDMI 发送(不想让您厌倦这些细节)。我尝试遵循多种方法,例如https://help.ubuntu.com/community/DigitalAC-3Pulseaudio,但总是达不到要求。
我已将其添加到我的/etc/asound.conf
:
pcm.a52 {
@args [CARD]
@args.CARD {
type string
}
type rate
slave {
pcm {
type a52
bitrate 448
channels 6
card $CARD
}
rate 48000 #required somehow, otherwise nothing happens in PulseAudio
}
}
它将 AC3 虚拟设备(?)添加到我的系统中,例如:
$ aplay -L
…
a52:CARD=NVidia
HDA NVidia
Plugin to convert multichannel stream to A52 (AC3) bitstream
…
然后我尝试在新的pulseaudio配置文件中添加输出配置文件,以/usr/share/pulseaudio/alsa-mixer/profile-sets/ac3.conf
将AC3音频映射到我的HDMI端口,例如:
[Mapping hdmi-ac3-surround]
description = Digital Surround 5.1 (HDMI/AC3)
device-strings = a52:%f
paths-output = hdmi-output-0
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 6
direction = output
但该个人资料甚至没有出现pavucontrol
,我不知道还能做什么。这就是我被困住的地方。我为此安装的软件包:alsa-plugins-freeworld-a52
据ffmpeg-libs
我所知,这应该足够了。
答案1
简短的回答是你不知道,据我所知。这是相互冲突的需求的产物。
HDMI 只支持未压缩的 PCM 数据,不能进行任何形式的直通,但它确实支持大量的通道(如 16 或 32 或其他),因此它可以承载 5.1 或 7.1 流......只是在使用电视的光纤输出时不支持,因为“低速”toslink 需要超过 2 个频道的压缩流,并且没有电视具有内置编码器。