왜 4채널이나 6채널 사운드를 재생할 수 없는데 스피커 테스트는 할 수 있나요?

왜 4채널이나 6채널 사운드를 재생할 수 없는데 스피커 테스트는 할 수 있나요?

현재 Soundblaster 카드(CA106 칩셋)를 4채널로 출력하도록 설정하려고 합니다.

플러그를 사용하여 4개의 스피커를 아날로그 출력에 연결했습니다.

유틸리티를 사용하여 pseaker를 테스트하면 speaker-test제대로 작동하지만 유틸리티를 사용하여 4채널(직접 만든 것)이나 다중 채널 사운드(웹에서 검색한 것)를 재생하려고 할 때마다 aplay작동하지 않습니다.

내 하드웨어 설정에 대한 정보는 다음과 같습니다.

[root@server SurroundTestFiles]# aplay -L
default:CARD=CA0106
CA0106, CA0106
Default Audio Device
front:CARD=CA0106,DEV=0
CA0106, CA0106
Front speakers
rear:CARD=CA0106,DEV=0
CA0106, CA0106
Rear speakers
center_lfe:CARD=CA0106,DEV=0
CA0106, CA0106
Center and Subwoofer speakers
side:CARD=CA0106,DEV=0
CA0106, CA0106
Side speakers
surround40:CARD=CA0106,DEV=0
CA0106, CA0106
4.0 Surround output to Front and Rear speakers
surround41:CARD=CA0106,DEV=0
CA0106, CA0106
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=CA0106,DEV=0
CA0106, CA0106
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=CA0106,DEV=0
CA0106, CA0106
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=CA0106,DEV=0
CA0106, CA0106
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=CA0106,DEV=0
CA0106, CA0106
IEC958 (S/PDIF) Digital Audio Output
null
Discard all samples (playback) or generate zero samples (capture)
default:CARD=Intel
HDA Intel, AD198x Analog
Default Audio Device
front:CARD=Intel,DEV=0
HDA Intel, AD198x Analog
Front speakers
surround40:CARD=Intel,DEV=0
HDA Intel, AD198x Analog
4.0 Surround output to Front and Rear speakers
surround41:CARD=Intel,DEV=0
HDA Intel, AD198x Analog
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Intel,DEV=0
HDA Intel, AD198x Analog
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Intel,DEV=0
HDA Intel, AD198x Analog
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Intel,DEV=0
HDA Intel, AD198x Analog
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
hdmi:CARD=Intel,DEV=0
HDA Intel
HDMI Audio Output

[root@server SurroundTestFiles]# alsacard
0

[root@server SurroundTestFiles]# cat /proc/asound/cards
0 [CA0106         ]: CA0106 - CA0106
                  Audigy SE [SB0570] at 0xcce0 irq 169
1 [Intel          ]: HDA-Intel - HDA Intel
                  HDA Intel at 0xf7ffc000 irq 82

두 경우 모두에 사용한 명령(및 해당 출력)은 다음과 같습니다.

스피커 테스트:

speaker-test -c 4 -D surround40:CA0106 -t wav

그러면 올바른 사운드가 올바른 스피커(4채널 ~ 4스피커)로 출력됩니다.

aplay동일한 가상 장치(surround40)를 사용하여 4채널 사운드를 재생하려고 할 때의 출력은 다음과 같습니다 .

[root@epr-servmcs-40 SurroundTestFiles]#  aplay -v -D surround40:CA0106 -c 4 test-4-channels.wav
Playing WAVE 'test-4-channels.wav' : Signed 24 bit Little Endian in 3bytes, Rate 44100 Hz, Channels 4
aplay: set_params:954: Sample format non available

장치를 명시적으로 지정하지 않고 사용 하려고 하면 aplay2개의 스피커에서만 소리가 재생됩니다. 이 테스트의 출력을 참조하세요.

[root@epr-servmcs-40 SurroundTestFiles]#  aplay -v -c 4 test-4-channels.wav
Playing WAVE 'test-4-channels.wav' : Signed 24 bit Little Endian in 3bytes, Rate 44100 Hz, Channels 4
Plug PCM: Route conversion PCM (sformat=S24_3LE)                                                     
  Transformation table:                                                                              
    0 <- 0                                                                                           
    1 <- 1                                                                                           
Its setup is:                                                                                        
  stream       : PLAYBACK                                                                            
  access       : RW_INTERLEAVED                                                                      
  format       : S24_3LE                                                                             
  subformat    : STD                                                                                 
  channels     : 4                                                                                   
  rate         : 44100                                                                               
  exact rate   : 44100 (44100/1)                                                                     
  msbits       : 24                                                                                  
  buffer_size  : 7526                                                                                
  period_size  : 940                                                                                 
  period_time  : 21333                                                                               
  tstamp_mode  : NONE                                                                                
  period_step  : 1                                                                                   
  avail_min    : 940                                                                                 
  period_event : 0                                                                                   
  start_threshold  : 7526                                                                            
  stop_threshold   : 7526                                                                            
  silence_threshold: 0                                                                               
  silence_size : 0                                                                                   
  boundary     : 986447872                                                                           
Slave: Rate conversion PCM (48000, sformat=S32_LE)                                                   
Its setup is:                                                                                        
  stream       : PLAYBACK
  access       : MMAP_INTERLEAVED
  format       : S24_3LE
  subformat    : STD
  channels     : 2
  rate         : 44100
  exact rate   : 44100 (44100/1)
  msbits       : 24
  buffer_size  : 7526
  period_size  : 940
  period_time  : 21333
  tstamp_mode  : NONE
  period_step  : 1
  avail_min    : 940
  period_event : 0
  start_threshold  : 7526
  stop_threshold   : 7526
  silence_threshold: 0
  silence_size : 0
  boundary     : 986447872
Slave: Direct Stream Mixing PCM
Its setup is:
  stream       : PLAYBACK
  access       : MMAP_INTERLEAVED
  format       : S32_LE
  subformat    : STD
  channels     : 2
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 32
  buffer_size  : 8192
  period_size  : 1024
  period_time  : 21333
  tstamp_mode  : NONE
  period_step  : 1
  avail_min    : 1024
  period_event : 0
  start_threshold  : 8192
  stop_threshold   : 8192
  silence_threshold: 0
  silence_size : 0
  boundary     : 1073741824
Hardware PCM card 0 'CA0106' device 0 subdevice 0
Its setup is:
  stream       : PLAYBACK
  access       : MMAP_INTERLEAVED
  format       : S32_LE
  subformat    : STD
  channels     : 2
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 32
  buffer_size  : 8192
  period_size  : 1024
  period_time  : 21333
  tstamp_mode  : ENABLE
  period_step  : 1
  avail_min    : 1024
  period_event : 0
  start_threshold  : 1
  stop_threshold   : 1073741824
  silence_threshold: 0
  silence_size : 1073741824
  boundary     : 1073741824

내 목표는 aplay다중 채널 사운드(실제로는 4채널 사운드만)를 올바르게 재생하도록 강제(또는 허용)하는 것입니다. 즉, 4개의 스피커를 사용하는 것입니다.

답변1

.wav 파일은 하드웨어에서 지원하지 않는 샘플 형식을 사용합니다.

장치 이름을 사용하여 plug:surround40:CA0106자동 샘플 형식 변환을 활성화합니다 .

기본 장치로 만들려면 /etc/asound.conf또는에서 다음과 같은 것을 사용하십시오 ~/.asoundrc.

pcm.!default {
    type asym
    playback.pcm {
        type plug
        slave.pcm "surround40:CA0106"
    }
    capture.pcm {
        type plug
        slave.pcm "hw:CA0106"
    }
}

관련 정보