1. 루프백 모듈 로드

1. 루프백 모듈 로드

저는 하나의 USB 헤드셋으로 두 대의 컴퓨터에서 작업합니다. Linux가 아닌 컴퓨터의 출력을 Linux 컴퓨터의 라인 입력(파란색 오디오 잭)에 연결하고 PulseAudio를 사용하여 신호를 Linux 컴퓨터의 헤드셋 출력에 믹싱하여 두 가지 모두를 듣고 싶습니다.

오디오 하드웨어 다이어그램

pavucontrol은 "라인 입력"(선택됨), "전면 마이크", "후면 마이크"와 같은 포트를 선택할 수 있는 "내장 오디오 아날로그 스테레오" 입력 장치를 보여줍니다. Linux가 아닌 시스템에서 오디오 재생에 반응하는 장치의 볼륨 미터를 볼 수 있습니다.

내장 오디오 아날로그 스테레오

PulseAudio가 해당 오디오 신호를 내가 선택한 출력 장치로 재생하도록 하려면 어떻게 해야 합니까?

답변1

1. 루프백 모듈 로드

pacmd load-module module-loopback latency_msec=5

재생 및 녹음 장치를 만듭니다.

2. pavucontrol에서 장치 구성

pavucontrol에서는녹음탭에서 "루프백" 장치의 설정~에서입력 장치는 라인 입력 신호를 수신하는 장치입니다.

녹음 설정

에서재생탭에서 "루프백" 장치의 설정~에라인 입력 신호를 듣고자 하는 장치에 출력 장치를 연결합니다.

재생 설정

3. 문제 해결

오디오 신호에 문제가 있는 경우 모듈을 제거 pacmd unload-module module-loopback하고 더 높은 latency_msec=값을 다시 시도하십시오.

추가 참고사항

최신 중급 컴퓨터는 다음 latency_msec=1옵션을 사용하여 대기 시간을 쉽게 관리할 수 있습니다.

pacmd load-module module-loopback latency_msec=1

이 답변은 다음을 통해 가능해졌습니다.이 포럼 게시물. 감사해요!

답변2

에 명시된 바와 같이선호하는 답변

pacmd load-module module-loopback latency_msec=5

재생 및 녹음 장치를 생성해야 하지만 모든 경우에 작동하지 않는 것 같습니다. 이 경우 시도할 수 있습니다.

pactl load-module module-loopback latency_msec=5

pactl을 사용하여 비슷한 주장을 확인하세요.

나에게는 pacmd에서는 작동하지 않았고 pactl에서는 작동했습니다.

참고: 이 두 옵션은 모두 Pulse Audio에만 해당되며 Pipewire에는 해당되지 않습니다.

답변3

나는 여기서 매우 비슷한 상황에 처해 있습니다! PC 2대, Linux 시스템(기본) 1개, Windows 시스템 1개. Linux 시스템 및 Pulseaudio와 함께 헤드셋을 사용하여 양방향 오디오 연결을 자동화하기 위해 좋은 것을 설정했습니다. 둘 다 Windows 시스템의 소리를 듣고 Linux를 통해 다시 Windows 시스템 마이크에 대고 말할 수 있습니다. 안에.

분명히 이를 위해서는 1개가 아닌 2개의 AUX 케이블을 기기 사이에 연결해야 합니다. 하지만 한 번 알아낸 이후로 매력처럼 작동합니다. 동일한 작업에 관심이 있는 사람이 쉽게 사용할 수 있도록 여기에 스크립트를 공유하겠습니다. 작동시키기 위해 해야 할 일은 컴퓨터에 대한 두 개의 특정 오디오 싱크 이름을 찾아 스크립트 변수에 넣는 것입니다(내 것과 다른 경우).

#!/usr/bin/env bash

# 2-way audio connection - Slaves 2nd device audio through this device:
# - Directs AUX in to default speakers (connect 2nd device -> AUX).
# - Directs Mic to AUX out (connect AUX out -> 2nd device AUX in).
# 
# Then sleeps forever. Stops audio redirection when killed.
# 
# Requires:
# sudo apt-get install pactl
# 
# Manual Process:
# 1) pavucontrol > Configuration > Built-in Audio > Analog Stereo Duplex
# 2) Find - look for "analog-stereo" (no frills) in both commands:
#    pacmd list-sources | grep name:
#    pacmd list-sinks | grep name:
# 3) Select - enter found name or ID in this command:
#    pactl load-module module-loopback source=$auxinsource source_dont_move=1 sink=$defaultsink
# 4) pavucontrol > Input > Built-in Analog Stereo > Line in (plugged in)
# 5) pavucontrol > Playback > Loopback from Built-in Analog Stereo > SELECT_SPEAKERS
# 6) pavucontrol > Output > Built-in Analog Stereo > Line Out (plugged in)
# 7) pavucontrol > Recording > Loopback to Built-in Analog Stereo > SELECT_HEADSET_MIC
#
# BREAKPOINT:
# read -n 1 -s -r -p 'BREAKPOINT'

auxinsource='alsa_input.pci-0000_00_1f.3.analog-stereo'                                                 # Get name of AUX in (Replace these with yours!)
micsink='alsa_output.pci-0000_00_1f.3.analog-stereo'                                                    # Get name of AUX out (Replace these with yours!)

set -e

printf '\n 1) Connect Audio IN (Win->)...'
defaultsink=$(pactl get-default-sink)                                                                   # Get name of currently selected speakers
modulein=$(pactl load-module module-loopback source=$auxinsource source_dont_move=1 sink=$defaultsink)  # Locked from manual selection in GUI, will not jump around
#modulein=$(pactl load-module module-loopback source=$auxinsource sink=$defaultsink)                    # Unlocked for manual selection in GUI, but may jump around
#echo ' ' $defaultsink ' connected!'                                                                    # Debug output
echo ' connected!'


printf '\n 2) Connect Audio OUT (<-Mic)...'
modulemic=$(pactl load-module module-loopback latency_msec=10 source_dont_move=1 sink=$micsink)         # Locked from manual selection in GUI, will not jump around
#modulemic=$(pactl load-module module-loopback latency_msec=10 sink=$micsink)                           # Unlocked for manual selection in GUI, but may jump around
#echo ' ' $micsink ' connected!'                                                                        # Debug output
echo ' connected!'


printf '\n CTRL+C to stop'                                                                              # Flavor text.


function cleanup
{
  pactl unload-module $modulemic
  if [ ! -z ${modulein+x} ]; then
    pactl unload-module $modulein
  else
    echo
  fi
}

trap cleanup EXIT

sleep infinity

이 설정의 단계별 문제 해결을 안내하려면(선택 사항),

#!/usr/bin/env bash

# Troubleshooting steps for audioconnect
#
# Requires:
# sudo apt-get install pactl
# 
# BREAKPOINT:
# read -n 1 -s -r -p 'BREAKPOINT'


printf ' 1) pavucontrol > Configuration > Built-in Audio > Analog Stereo Duplex'
read -n 1 -s -r -p ''
echo ': OK'
printf ' 2) pavucontrol > Input > Built-in Analog Stereo > Line in (plugged in)'
read -n 1 -s -r -p ''
echo ': OK'
printf ' 3) pavucontrol > Playback > Loopback from Built-in Analog Stereo > SELECT_SPEAKERS'
read -n 1 -s -r -p ''
echo ': OK'
printf ' 4) pavucontrol > Output > Built-in Analog Stereo > Line Out (plugged in)'
read -n 1 -s -r -p ''
echo ': OK'
printf ' 5) pavucontrol > Recording > Loopback to Built-in Analog Stereo > SELECT_MIC'
read -n 1 -s -r -p ''
echo ': OK'

관련 정보