답변:
PulseAudio에서 각 사운드 카드에는 연결된 프로필 세트가 있습니다. 프로파일 세트에는 여러 개의 프로파일이 포함되어 있으며 이는 카드를 나열 할 때 (또는 다양한 PulseAudio GUI를 볼 때 표시되는) 프로파일입니다.
default
아날로그 사운드 출력에 유용한 것들이 포함 된 프로파일 이 있습니다 . extra-hdmi
일부 HDMI 출력에 자동으로 적용되는 프로파일 도 있으며 최대 5.1 개의 옵션을 제공합니다. 이 두 프로필은 모두 불행히도에 /usr/share/pulseaudio/alsa-mixer/profile-sets
있으므로 실제로 편집 할 수 없습니다 ( 이 문제 에 대해서는 디버그 버그 736708을 제출 했습니다). 설명서에 따르면 udev 기반 자동 검색을 비활성화하고 모든 것을 수동으로 구성 할 수 있습니다. 프로필의 전체 경로. 그러나 문서화되지 않은 동안 udev도 전체 경로를 지정할 수 있습니다.
PULSE_PROFILE_SET
udev 환경 변수를 설정하여 udev 규칙에 프로파일 세트를 지정 합니다. 위에서 언급 한 /usr
하위 디렉토리 의 파일 만 가져 오도록 문서화 되었지만 전체 경로도 작동합니다. 내 경우에는이 규칙을 만들었습니다.
# cat /etc/udev/rules.d/95-local-pulseaudio.rules
ATTRS{vendor}=="0x8086", ATTRS{device}=="0x1c20", ENV{PULSE_PROFILE_SET}="/etc/pulse/my-hdmi.conf"
에서 얻을 수있는 적절한 PCI 공급 업체 및 장치 번호를 사용해야합니다 lspci -nn
.
udev 규칙을 생성 한 후로 즉시 적용 할 수 있습니다 udevadm trigger -ssound
. 아마도 initramfs를 다시 빌드하고 싶을 것입니다 ( update-initramfs -u
)
udev 규칙이 적용되었는지 확인하십시오 udevadm info --query=all --path /sys/class/sound/card0
(물론 적절한 카드 번호를 사용하십시오). E: PULSE_PROFILE_SET=/etc/pulse/my-hdmi.conf
출력에서 볼 수 있습니다. 그렇지 않으면 계속하지 마십시오. 작동하지 않습니다. udev 규칙에 문제가 있거나 트리거하지 않았을 수 있습니다. 항상 재부팅을 시도 할 수 있습니다.
참고 : 채널 맵은 시스템에 따라 다릅니다. 시스템에 적합하도록 실험해야합니다. 7.1 레이아웃은 5.1, 4.0 등을 빌드하기 위해 최종 항목을 삭제하는 것과 관련이 있습니다. 지침은 다음과 같습니다.
이것은 주로 많은 복사 및 붙여 넣기입니다. 각 섹션은 (a) 이름, (b) 설명, (c) 채널 맵, (d) [선택 사항] 우선 순위가 다릅니다.
[General]
auto-profiles = yes
[Mapping hdmi-stereo]
device-strings = hdmi:%f
channel-map = front-left,front-right
description = Digital Stereo (HDMI)
priority = 4
direction = output
paths-output = hdmi-output-0
[Mapping hdmi-surround-40]
device-strings = hdmi:%f
channel-map = front-left,front-right,rear-left,rear-right
description = Digital Quadrophonic (HDMI)
priority = 1
direction = output
paths-output = hdmi-output-0
[Mapping hdmi-surround-51]
device-strings = hdmi:%f
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
description = Digital Surround 5.1 (HDMI)
priority = 2
direction = output
paths-output = hdmi-output-0
[Mapping hdmi-surround-71]
description = Digital Surround 7.1 (HDMI)
device-strings = hdmi:%f
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right
priority = 3
direction = output
paths-output = hdmi-output-0
이제 이것을 테스트하려면 :
pulseaudio -k
사용자 별 데몬 (기본값)을 사용한다고 가정하면 PulseAudio :를 일반 사용자로 다시 시작하십시오 . 다시 시작하면 간단한 aplay -l
것 조차 효과 가 있습니다.pactl set-card-profile 0 "output:hdmi-surround-71"
했지만 GUI도 완벽하게 작동합니다.speaker-test -c 8 -t w
. 스피커 이름을 알리기 시작해야합니다. 각 스피커에서 올바른 이름이 나오기를 바랍니다. 이름이 올바른 스피커에서 나오지 않으면 채널 맵을 변경하여 이름을 올바르게 지정해야합니다. 각 채널 맵 변경 후 PulseAudio를 다시 시작해야합니다.에서 /etc/pulse/daemon.conf
, 몇 가지 설정이 있습니다 당신은 변경할 수 있습니다 :
enable-remixing
— 켜져 있으면 스테레오 신호에 왼쪽 채널 3 개 모두에서 왼쪽 채널이 재생되고 오른쪽 스피커에서 오른쪽 채널이 재생됩니다. 꺼져 있으면 앞면 2 개만 나옵니다. 프로파일을 스테레오로 변경할 수도 있습니다 (HDMI 포트로 스테레오 사운드 만 전송하고 수신기가 스피커에 매핑하는 방법을 결정하게 함).
enable-lfe-remixing
— 유사하지만 LFE (서브 우퍼) 채널로 리믹스합니다.
default-sample-format
— HDMI 설정이 16 비트보다 큰 오디오를 지원하면이 값을 s32le
(기본값에서 s16le
) 늘리십시오 .
default-sample-rate
, alternate-sample-rate
— 일반적으로 48KHz 인 DVD 소스 자료를 주로 사용하는 경우 이들을 바꾸거나 44.1KHz를 완전히 비활성화 할 수도 있습니다. 또는 HDMI 수신기가 지원하는 경우 최대 192KHz까지 갈 수 있습니다. 176KHz는 44.1과 48KHz의 짝수 배수라는 좋은 특성을 가지고 있습니다. 수신기가 지원하는 것을 결정하는 방법은 아래를 참조하십시오.
default-sample-channels
— 문제가되지 않는 것 같습니다. 프로필이 아마도 그것을 무시할 것입니다 ...
당연히이 파일을 변경 한 후에 PulseAudio를 다시 시작해야합니다.
HDMI 링크의 다른 쪽 끝에서 지원한다고 주장하는 eld.*
파일 이 있습니다 /proc/asound
. 예를 들면 다음과 같습니다.
# cat /proc/asound/card0/eld#3.0
monitor_present 1
eld_valid 1
monitor_name TX-SR606
connection_type HDMI
eld_version [0x2] CEA-861D or below
edid_version [0x3] CEA-861-B, C or D
manufacture_id 0xcb3d
product_id 0x863
port_id 0x0
support_hdcp 0
support_ai 1
audio_sync_delay 0
speakers [0x4f] FL/FR LFE FC RL/RR RLC/RRC
sad_count 8
sad0_coding_type [0x1] LPCM
sad0_channels 2
sad0_rates [0x1ee0] 32000 44100 48000 88200 96000 176400 192000
sad0_bits [0xe0000] 16 20 24
sad1_coding_type [0x1] LPCM
sad1_channels 8
sad1_rates [0x1ee0] 32000 44100 48000 88200 96000 176400 192000
sad1_bits [0xe0000] 16 20 24
sad2_coding_type [0x2] AC-3
sad2_channels 8
sad2_rates [0xe0] 32000 44100 48000
sad2_max_bitrate 640000
sad3_coding_type [0x7] DTS
sad3_channels 8
sad3_rates [0xc0] 44100 48000
sad3_max_bitrate 1536000
sad4_coding_type [0x9] DSD (One Bit Audio)
sad4_channels 6
sad4_rates [0x40] 44100
sad5_coding_type [0xa] E-AC-3/DD+ (Dolby Digital Plus)
sad5_channels 8
sad5_rates [0xc0] 44100 48000
sad6_coding_type [0xb] DTS-HD
sad6_channels 8
sad6_rates [0x1ec0] 44100 48000 88200 96000 176400 192000
sad7_coding_type [0xc] MLP (Dolby TrueHD)
sad7_channels 8
sad7_rates [0x1480] 48000 96000 192000
따라서 수신기가 최대 8 개의 채널, 192KHz, 24 비트 사운드에서 LPCM (Linear PCM, 즉 압축되지 않은 오디오)을 지원함을 알 수 있습니다. 또한 AC3, DTS, DSD, DD +, DTS-HD 및 Dolby TrueHD도 지원합니다. 따라서 인코딩 된 파일이 있으면 해당 형식을 통과 할 수 있습니다 (미디어 플레이어가 지원하는 경우 물론 가능합니다 mpv
).