Alsa: 모니터링을 위해 특정 입력에서 특정 출력 스트림으로 오디오 가져오기

Alsa: 모니터링을 위해 특정 입력에서 특정 출력 스트림으로 오디오 가져오기

현재 헤드폰 포트와 라인 출력의 마이크 입력과 라인 입력을 각각 모니터링하려고 합니다.

aplay/arecord를 사용해 보았지만 alsamixer 구성을 사용해도 작동하지 않습니다.

어떻게 해야 하나요?

이것은 aplay -l and arecord -l나에게 다음을 제공합니다:

aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC662 rev1 Analog [ALC662 rev1 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC662 rev1 Digital [ALC662 rev1 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0


arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC662 rev1 Analog [ALC662 rev1 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 2: ALC662 rev1 Alt Analog [ALC662 rev1 Alt Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

alsamixer에 "line out"이 있지만 aplay -l에는 나열되지 않습니다.

자세한 내용을 보려면 다음을 출력하세요.

고양이/proc/asound/카드*/코덱#*:

https://pastebin.com/embed_js/X0Yir5mr

믹서:

https://pastebin.com/embed_js/r2B8X21V

답변1

좋아요, 코덱을 살펴보겠습니다. 코덱 설명은 코덱 칩의 아날로그 부분을 그래픽으로 표현한 것입니다. 노드별로 설명 노드를 살펴보고 이 작업을 수행하는 동안 그림을 만드십시오( connection입력 노드 설명). 이 작업이 필요합니다.

코덱에는 실제로 라인 출력, 스피커 및 헤드폰(노드 0x02, 0x03 및 0x04)을 위한 3개의 D/A 변환기가 있습니다. 그러나 기본 구성의 ALSA는 이유가 무엇이든 그 중 하나만 구동할 수 있습니다. 그런 다음 각 D/A Audio Output는 믹서(노드 0x0c, 0x0d 및 0x0e)로 공급됩니다. 각 믹서에 대한 또 다른 입력은 피드백 믹서(노드 0x0b)입니다. 피드백 믹서는 입력을 포함한 대부분의 핀에서 신호를 수신하며 이와 관련된 ALSA 믹서 컨트롤( XXX Mic Playback Volume, )을 갖습니다.XXX Mic Playback Switch

"라인 입력"이 없고 단순히 "마이크" 입력만 있으므로 "라인 입력"이 마이크 중 하나이고 "마이크"가 다른 마이크라고 가정합니다.

그래서: 및 을 열고 및 의 볼륨을 설정해 보십시오 Front Mic Playback Switch. Rear Mic Playback Switch이렇게 하면 alsamixer두 입력을 모두 모니터링할 수 있습니다.Front Mic Playback VolumeRear Mic Playback Volume놀면서라인 출력이나 헤드폰으로. 이 값을 올바르게 해석하면 ALSA가 세 개의 2입력 믹서 중 하나를 활성화하지 않았기 때문에 마지막 부분이 중요해 보입니다. 출력 에 따르면 amixer시도해 본 것처럼 보이지만 놓치지 않도록 볼륨을 높이십시오.

그래도 작동하지 않으면 /proc/asound/card*/codec\#*작동하는 설정으로 Pastebin의 다른 복사본을 만드십시오.그리고 놀이 활동, 무엇이 잘못되었는지 디버깅할 수 있습니다.

관련 정보