如何通过 HDMI 发送/流式传输 AC3/A52 编码音频?

如何通过 HDMI 发送/流式传输 AC3/A52 编码音频?

我需要对我的多通道(游戏)音频进行 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-a52ffmpeg-libs我所知,这应该足够了。

答案1

简短的回答是你不知道,据我所知。这是相互冲突的需求的产物。

HDMI 只支持未压缩的 PCM 数据,不能进行任何形式的直通,但它确实支持大量的通道(如 16 或 32 或其他),因此它可以承载 5.1 或 7.1 流......只是在使用电视的光纤输出时不支持,因为“低速”toslink 需要超过 2 个频道的压缩流,并且没有电视具有内置编码器。

相关内容