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

/usr/share/pulseaudio/alsa-mixer/profile-sets/ac3.conf그런 다음 AC3 오디오를 HDMI 포트에 매핑하기 위해 새 pulseaudio 프로필에 출력 프로필을 추가해 보았습니다 . 예를 들면 다음과 같습니다.

[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 스트림을 전달할 수 있습니다. TV "저속" toslink에는 압축 스트리밍 채널이 2개 이상 필요하고 인코더가 내장된 TV가 없기 때문에 광 출력이 지원되지 않습니다.

관련 정보