1. 루프백 모듈 로드

1. 루프백 모듈 로드

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

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

pavucontrol은 "Line In"(선택됨), "전면 마이크", "후면 마이크" 등과 같은 포트를 선택할 수 있는 "내장 오디오 아날로그 스테레오" 입력 장치를 보여줍니다. 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에서는 작동합니다.

참고: 이 두 가지 옵션은 Pipewire가 아닌 Pulse Audio에서만 작동합니다.

답변3

나는 여기서 매우 비슷한 상황에 처해 있습니다! PC 2대, Linux 컴퓨터(내 메인 컴퓨터) 및 Windows 컴퓨터. 양방향 오디오 연결을 자동화하기 위한 멋진 설정이 있고 Linux 시스템 및 Pulseaudio와 함께 헤드폰을 사용하면 Windows 시스템의 소리를 듣고 Linux를 통해 마이크에 말할 수 있으며 Windows 시스템으로 다시 돌아갈 수 있습니다. 마이크 켜짐.

분명히 이것은 기계 사이에 1개의 AUX 케이블이 필요하지 않고 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'

관련 정보